Chủ đề: SendMessage function in MFC?
-
03-07-2010, 08:28 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
thanks cậu.
sở dĩ tớ làm như vậy vì vấn đề của tớ như sau:
chuơng trình của tớ có 1 tiến trình liên luôn lấy thông tin về Webcam(phần này nằm trong 1 file riêng) tớ sẽ cần hiển thị các thông tin này lên 1 Editbox.
thanks cậuView more random threads:
- Lỗi: VC++ 2010 ko tự add class cơ bản khi tạo project
- Dialog::DoModal trong MFC. Làm thế nào để tương tác với dialog bên dưới?
- Visual C++
- Xử lý chuỗi trong lập trình C++
- Giúp về một số lệnh trong Devccp 4.9!
- Convert BMP to RBG | Chuyển ảnh từ Bitmap sang Vector. Giúp mình sửa lỗi???
- Cách hiển thị Form C++.NET với opacity tự động tăng dần?
- VC++2008 - lổi Error spawning rc.exe, giúp mình với !!!
- hàm chuyển ký tự hoa sang thường
- Mô Tả Tổ chức vùng nhớ của chương trình
-
03-07-2010, 09:04 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi Tadius
thanks
-
03-07-2010, 10:03 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
"The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message"
Trích nguyên bản từ MSDN.
1.Cái SendMessage bác truyền vô tham số thứ 2 là số hiệu thông điệp chứ ko phải ID của cửa sổ. Vì cửa sổ được đã được phân biệt bởi handle là HWND rồi.
2.Nếu trong MFC thì bác nên tạo biến CEdit control kết nối đến TextBox là công cụ điều khiển để sau này dễ sử lý hơn.
3.Khi đã kết nối biến điều tới control. Giả sử biến là m_wndEdit, khi đó bác chỉ cần gọi m_wndEdit.SendMessage. Đây là method đã được wrap Api bởi MFC trong đó tham số HWND đã được loại bỏ vì bản thân m_wndEdit là đối tượng chủ thể của method này.
5.Theo giải thích của MSDN sau khi gọi SendMessage thì message sẽ được đưa vào hàng đợi chờ tới message được sử lý thì lúc đó hàm SendMessage mới thực sự kết thúc và thực hiện lệnh tiếp theo. Vì thế em ko hiểu ở đây tại sao bác lại đưa cái SendMessage vào while lặp vô tận???
6.Ở đây em cũng không rõ bác muốn truyền cái message gì. Tuy nhiên theo em đoán thì ý định của bác ở đây là muốn đặt Text cho cái EditBox
Để thiết lập Text cho Edit box em xin liệt kê ra một số hàm:
a. m_wndEdit.SetWindowText(L"Hello");
b. Dùng API SetWindowText(m_wndEdit.m_hWnd,L"Hello");
c. Dùng hàm khác SetDlgItemTextW(HWND hwndDlg,UINT nID,LPCWSTR string); Trong đó hwndDlg là Handle của Dialog, nID là ID của TextBox và string là xâu mà bác muốn xét.
7.Khi bác gọi tham gọi _beginthread(SendMSM,0,NULL); thì cái tham số được truyền trong hàm void SendMSM(PVOID Plam) là Plam=NULL.
Việc gửi một thông điệp đến cửa số có Handle là NULL do đó
Mã:void SendMSM(PVOID Plam){//No loi o day, help me? thanks PPARAMS pparams ; //Chỗ này bác đang cố gắng lấy handle của Edit pparams = (PPARAMS) Plam ; //Ở đây ép kiểu ko gẫy lỗi while(true){ //Xong chỗ này gây lỗi vì pparams là NULL. Truy xuất trái phép vùng nhớ NULL SendMessage(pparams->hwnd,IDC_EDIT1,(WPARAM)0,(LPARAM)"asdasdas"); Sleep(1000); }}
-
03-07-2010, 11:09 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Vì bác muốn cập nhật thông tin từ Child Dialog cho Parent Dialog nên có 2 cách thực hiện:
1.Cách một là sử dụng Child Dialog như theo kiểu Modal bằng cách gọi phương thức DoModal():
Cách này thường là làm với các hộp thoại kiểu Option trong ứng dụng. Lúc đó khi Child Dialog được hiện thị, thì người dùng chỉ được phép tương tác trực tiếp chuột và bàn phím với Dialog này
2.Cách khác là sử dụng Child Dialog theo kiểu Modeless bằng cách gọi phương thức ShowWindow():
Cách này thường sử dụng trong các ứng dụng vẽ, với việc chọn một màu trên Dialog chứa dải màu. Khi modeless child dialog hiển thị thì người dùng vẫn có thể tương tác trực tiếp với chuột và bàn phím với cả parent dialog
Code em đính kèm sử dụng cách 2. Vì em nghĩ bác lấy thông tin hiển thị về WC trên một cửa sổ nhưng đồng thời lại vẫn muốn tương tác với cửa sổ còn lại nên xem chọn phương án Modeless Dialog cho bác.
Nick em là YM: Tadius_ff10.
Nếu bác có nhã ý có vấn gì anh em cùng trao đổi. Vì em vẫn chưa đi làm bao giờ nên chưa hề biết yêu cầu thực tế công việc ra sao. Mong bác giúp đỡ.
Chúc bác thành công [IMG]images/smilies/2.gif[/IMG].
-
03-07-2010, 07:31 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
SendMessage function in MFC?
Minh muốn làm Click vào nút OK thì hệ thống sẽ tạo 1 Thread và gửi 1 Msg tới 1 EditText mà nó bị lỗi như Project mình gửi kèm, mong các bận giúp
thanks
Ngoại trừ một số ít trường hợp rãnh mũi - má và “râu rồng silicon” xuất hiện sớm, có khi từ tuổi thanh niên do cơ địa, còn lại, đại đa số do căn do lão hoá đã gây nên ba diễn biến: Giảm mô xương gò...
Cách thẩm mỹ má ở tuổi trung niên...