自定義消息和全局變量:
#define WM_USERMSG WM_USER+100//自定義消息 volatile int SpeedControl;//定義全局變量
線程體:
UINT ThreadFunc(LPVOID lpParam) //線程函數 { NumInfo* pInfo=(NumInfo*)lpParam; //線程函數參數 int i=0; CString str; while(true) { if(SpeedControl==1) //低速計數 { str.Format("%d",i); pInfo->pedit->SetWindowText(str); Sleep(2000); i++; if((i%17)==0)//計數到了17的整數倍 { ::PostMessage(pInfo->hwnd,WM_USERMSG,0,0); //向主線程發送消息 } } if(SpeedControl==2) //高速計數 { str.Format("%d",i); pInfo->pedit->SetWindowText(str); Sleep(250); i++; if((i%17)==0)//計數到了17的整數倍 { ::PostMessage(pInfo->hwnd,WM_USERMSG,0,0); //向主線程發送消息 } } if(SpeedControl==0) //暫停 { str.Format("%d",i); pInfo->pedit->SetWindowText(str); Sleep(200); } } return 0; }
主線程接收消息:
LRESULT CMessageThreadDlg::OnMsg(WPARAM wParam,LPARAM lParam) { // TODO: Add your control notification handler code here AfxMessageBox("當前計數器的計數爲17的整數倍");//提示對話框 return true; }
Solved: http://stackoverflow.com/questions/4025967/cannot-use-managed-event-objects-in-unmanaged-code-error-c3265-c2811
文一:轉載(http://dev.csdn.net/htmls/28/28675.html) doc_view結構中讓窗口一開始就最大化探討 作者:enoloo 一般的做法是在 C**App::InitInstance()中,修改成
在VC++中不直接引入CTreeCtrl控件,而是直接用類來做的情況下,可以採用下面的方法實現style模式改變:CTreeCtrl& m_tree