您的位置:首页 > 其它

对话框程序接收另一个线程发送的消息

2014-04-17 18:03 239 查看
建立一个对话框程序,启动了一个线程来处理数据,得到特定的数据就向对话框程序发送信息。

今天又遇到了这样的问题。以前遇到的时候,给处理了,但是没有记录下来。这次一定要探索一下给记录下来。

我一直在尝试用

PostThreadMessage

来处理

BOOL PostThreadMessage(

  DWORD idThread, // thread identifier

  UINT Msg,       // message to post

  WPARAM wParam,  // first message parameter

  LPARAM lParam   // second message parameter

);

但是各种获取 线程ID都没有成功。我尝试在APP,和主Dlg中用GetCurrentThreadId()获得,但都不成功。后来网上找到如下的文章

vc++ 不同对话框中传递信息的方法(基于自定义消息SendMessage)
http://blog.csdn.net/myj0513/article/details/6827360
最后采用SendMessage终于实现了这个功能。

LRESULT SendMessage(

  HWND hWnd,      // handle of destination window

  UINT Msg,       // message to send

  WPARAM wParam,  // first message parameter

  LPARAM lParam   // second message parameter

);

 

做法如下:在主窗口初始化用 hWnd = this->GetSafeHwnd();获得hWnd,作为全局变量,然后再在其他线程使用就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐