Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Cách xử lý Message của MFC, nghĩa là khi gởi một message đến chính nó trong Dialog


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi theboy909
    Cách xử lý Message của MFC, nghĩa là khi gởi một message đến chính nó trong Dialog thì xử lý thông điệp nhận được ở chổ nào vậy.
    Mã:
    PostMessage(WM_EHIENTHONGBAODI, 1, 2);
    
    switch (usg)
    case WM_EHIENTHONGBAODI:
    Đọc thấy khó hiểu ý định của cậu quá, thằng WM_EHIENTHONGBAODI là cái gì vậy? Nó là một user message à? Làm rõ hơn tí đi!

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi theboy909
    Cách xử lý Message của MFC, nghĩa là khi gởi một message đến chính nó trong Dialog thì xử lý thông điệp nhận được ở chổ nào vậy.
    Mã:
    PostMessage(WM_EHIENTHONGBAODI, 1, 2);
    
    switch (usg)
    case WM_EHIENTHONGBAODI:
    Hàm post msg trong class MFC thì đương nhiên là post tới chính nó rồi. Muốn post cho đứa khác thì fải ::PostMessage [IMG]images/smilies/biggrin.png[/IMG]

  4. #4
    uh giờ mới để ý BEGIN_MESSAGE_MAP có chữ MESSAGE

    Cảm ơn tất cả mọi người!

    Đang viết auto Trian TLBB FPT vô test dùm
    http://autokitivn.wordpress.com/

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    WM_EHIENTHONGBAO đi là một kiểu đăng ký message loại gì thôi không quan trọng
    Mã:
    const UINT WM_EHIENTHONGBAO = RegisterWindowMessage(L"WM_EHIENTHONGBAO");
    Cái chính tở muốn hỏi là MFC xử lý các Message đó ở đâu. VÍ dụ trọng dll hook thì các message được xử lý tại :

    Mã:
    LRESULT CALLBACK NewWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    	if (uMsg == WM_HOOK_WRITE)
    	{
    		//Setting Parameters
    		switch (wParam)
    		{
    		case 1:
    			theClient.m_1 = (BOOL)lParam;
    			break;
    		case 2:
    			theClient.m_2 = (BOOL)lParam;
    			break;
    		}
    		return 0;
    	}
    	return CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam);
    }

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    <Trình duyệt lỗi>

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi theboy909
    Cách xử lý Message của MFC, nghĩa là khi gởi một message đến chính nó trong Dialog thì xử lý thông điệp nhận được ở chổ nào vậy.
    Mã:
    PostMessage(WM_EHIENTHONGBAODI, 1, 2);
    
    switch (usg)
    case WM_EHIENTHONGBAODI:
    Đăng ký trong MESSAGE_MAP là được



    Mã:
    BEGIN_MESSAGE_MAP(...)    ON_MESSAGE(WM_HIENTHI, &CYourClassDlg::OnHienthi)END_MESSAGE_MAP()

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •