在MFC中使用PostMessage和SendMessage函式:
BOOL PostThreadMessage( UINT message , WPARAM wParam, LPARAM lParam );
Called to post a user-defined message to another CWinThread object
使用這個函式可以向一個CwinThread型別的類傳送訊息(即包括從CWindThrea中繼承而來的類),使用方法如下:
CWinThread *pUIThread = AfxBeginThread(RUNTIME_CLASS(CProgress));//CProgress是從CWindThead中繼承而來的類
CProgress *pUIThrd = (CProgress *)(pView->pUIThread); //pView是一個視類的例項,pUIThread是它的一個成員
pUIThrd->PostThreadMessage(WM_PROS,NULL,NULL); //向CProgress類傳送WM_PROS訊息,由該類中對應的訊息響應函式進行處理
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
Places a message in the window"s message queue and then returns without waiting for the corresponding window to process the message
使用這個函式可以向一個CWnd型別的類傳送你訊息(即包括從CWnd類中繼承而來的類),CView也是從中繼承而來的,使用方法如下:
CWinThread *pThread = AfxBeginThread(Calculate,this); //this代表的是一個從CView類中繼承而來的Demo4View類,Caculate是該執行緒的
//執行緒處理函式,把this傳遞給Caculate進行處理
CDemo4View *pView = (CDemo4View *)pParam;
pView->PostMessage(WM_RESULT,NULL,duration); //向這個CDemo4View類傳送WM_RESULT訊息,由該類對應的訊息響應函式進行處理
LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
它與PostMessage的用法相同個,不同支援是它只有在對應的類處理完傳送的訊息後才返回,這樣後面的程式碼可能要過一段時間才能執行;
而PostMessge是傳送完訊息就立即返回,不管訊息處理完沒有,這樣後面的程式碼就可以立即執行。
在MFC中使用PostMessage和SendMessage函式:
BOOL PostThreadMessage( UINT message , WPARAM wParam, LPARAM lParam );
Called to post a user-defined message to another CWinThread object
使用這個函式可以向一個CwinThread型別的類傳送訊息(即包括從CWindThrea中繼承而來的類),使用方法如下:
CWinThread *pUIThread = AfxBeginThread(RUNTIME_CLASS(CProgress));//CProgress是從CWindThead中繼承而來的類
CProgress *pUIThrd = (CProgress *)(pView->pUIThread); //pView是一個視類的例項,pUIThread是它的一個成員
pUIThrd->PostThreadMessage(WM_PROS,NULL,NULL); //向CProgress類傳送WM_PROS訊息,由該類中對應的訊息響應函式進行處理
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
Places a message in the window"s message queue and then returns without waiting for the corresponding window to process the message
使用這個函式可以向一個CWnd型別的類傳送你訊息(即包括從CWnd類中繼承而來的類),CView也是從中繼承而來的,使用方法如下:
CWinThread *pThread = AfxBeginThread(Calculate,this); //this代表的是一個從CView類中繼承而來的Demo4View類,Caculate是該執行緒的
//執行緒處理函式,把this傳遞給Caculate進行處理
CDemo4View *pView = (CDemo4View *)pParam;
pView->PostMessage(WM_RESULT,NULL,duration); //向這個CDemo4View類傳送WM_RESULT訊息,由該類對應的訊息響應函式進行處理
LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
它與PostMessage的用法相同個,不同支援是它只有在對應的類處理完傳送的訊息後才返回,這樣後面的程式碼可能要過一段時間才能執行;
而PostMessge是傳送完訊息就立即返回,不管訊息處理完沒有,這樣後面的程式碼就可以立即執行。