vs2010中,在线程中,调用SendMessage(AfxGetMainWnd()->m_hWnd,...)异常的问题:
DWORD WINAPI WordThreadFun(LPVOID lpParam)
{
//while(1)
{
OutputLog(LOG_DEBUG,"in WordThreadFun,working! \n");
Sleep(2000);
/*
vs 下的区别
//AfxGetMainWnd()->m_hWnd 有异常,区别:
1. AfxGetApp()获取的是主线程的窗口句柄。
2. AfxGetMainWnd()获取的是所在线程的窗口句柄。
在单线程下他们获得是同一个窗口,多线程下则不是。
*/
//SendMessage(AfxGetMainWnd()->m_hWnd,USER_MSG,100,CREATE_THEATH_SUCCESS_MSG);//异常
SendMessage(AfxGetApp()->m_pMainWnd->m_hWnd,USER_MSG,100,CREATE_THEATH_SUCCESS_MSG);//正确
}
return 0;
}