您好,请问该如何使用vc++ SendMessage触发函数?

比如有一个函数test(),怎么用SendMessage触发它啊!
下面一段话是我在网上找到的,我遇见了同样的问题,想试试它的方法

我在线程里调用一个函数test()test里有调用对话框domadal一运行到这个就出现错误,程序意外终止,domodal不出现!test里的代码CDlginput;if(input.DoModal()!=IDOK).................把tset改成消息响应函数也不行.domodal窗口能出现点确定按钮之后出错!在线程里怎么才能调用domodal???? 
________________________________________
答:这种用工作线程不好搞一样,用界面线程,应该可以吧 
________________________________________
答:我把test函数改成消息响应函数了用SendMessage触发test函数试了几次不出错了.不知道为啥在线程里直接调用test函数为啥出错
我是用MFC做的,希望是能够说的具体一点,初学者,没办法……

不负相思意
浏览 277回答 1
1回答

萧十郎

初学者经常犯得错误,就是在一个线程中调用如AfxMessageBox的对话框,这样你的线程就死了。在线程中,你必须向一个窗口发送一个消息,那个窗口接收到消息后,让它去掉用DoModal之类的函数。你可以在CreateThread,将那个窗口的 m_hWnd当成LPVOID lpParameter,传递进去,那么在DWORD WINAPI ThreadProc( LPVOID lpParameter );的lpParameter 就是那个窗口句柄了。这样你就可以向那个窗口SendMessage了。
打开App,查看更多内容
随时随地看视频慕课网APP