2011年3月25日 星期五

SendMessage , PostMessage

SendMessage 和 PostMessage可以將message傳送到一個特定的window
兩者的不同在於 SendMessage必須等到收方做完 PostMessage則是只送

首先要define一個ID 最好是不要重複
#define ID_CHANGE_BMP WM_USER+399

在送方的function
::PostMessage(GetParent()->m_hWnd,ID_CHANGE_BMP,(WPARAM)1,(LPARAM)NULL);

[NOTE]::PostMessage是Windows的function, PostMessage是MFC, 兩者的參數不同
WPARAM是 UINT_PTR。16 bits in Win 3.1, 32 in wind32
LPARAM LONG_PTR, 32

 @收方
Message Map:
ON_MESSAGE(ID_CHANGE_BMP, OnChangeBMP)


LRESULT CIPCamTreeView::OnChangeBMP(WPARAM wParam, LPARAM lParam)
{

    bChangeBmp(wParam);
    return 0;
}

沒有留言:

張貼留言