为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++ C
不负相思意 2021-11-03 19:07:34
比如有一个函数test(),怎么用SendMessage触发它啊!下面一段话是我在网上找到的,我遇见了同样的问题,想试试它的方法我在线程里调用一个函数test()test里有调用对话框domadal一运行到这个就出现错误,程序意外终止,domodal不出现!test里的代码CDlginput;if(input.DoModal()!=IDOK).................把tset改成消息响应函数也不行.domodal窗口能出现点确定按钮之后出错!在线程里怎么才能调用domodal???? ________________________________________答:这种用工作线程不好搞一样,用界面线程,应该可以吧 ________________________________________答:我把test函数改成消息响应函数了用SendMessage触发test函数试了几次不出错了.不知道为啥在线程里直接调用test函数为啥出错我是用MFC做的,希望是能够说的具体一点,初学者,没办法……
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

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

查看完整回答
反对 回复 2021-11-07
  • 1 回答
  • 0 关注
  • 276 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信