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

来源:互联网 发布:爱淘宝 一元红包 编辑:程序博客网 时间:2024/06/04 08:11


建立一个对话框程序,启动了一个线程来处理数据,得到特定的数据就向对话框程序发送信息。
今天又遇到了这样的问题。以前遇到的时候,给处理了,但是没有记录下来。这次一定要探索一下给记录下来。
我一直在尝试用
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,作为全局变量,然后再在其他线程使用就可以了。

0 0
原创粉丝点击