在多线程中如何使用自定义的消息

Ray_czh 2000-08-14 02:59:00
我现在的问题是:

在dialog based 的应用程序中,有一个线程,这个线程要向主对话框的CEdit控件输出内容,向CEdit控件输出内容的函数是主对话框的成员函数为
void OutMessage(LPCSTR msg)
当运行时有错误。

我想原因可能是由于我错误的调用了主对话框的成员函数。我是这样调用的:
((CMchatDlg *)AfxGetMainWnd())->OutMessage(s)

现在我想改成用用户自定义消息的方法来调用这个函数,可是不知道改怎么做。

请大家指点一二。

...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzh 2000-08-14
  • 打赏
  • 举报
回复
在主对话框中定义一自定义消息,在此消息响应函数中实现向该对话框中输出。然后在线程中用函数PostMessage()来发送消息。这样就可以实现了。
U皮特U 2000-08-14
  • 打赏
  • 举报
回复
可以在对话框中生成线程时将对话框的窗口指针传给线程来调用。
对自定义消息的方法也需要得到对话框窗口的句柄,用上面的方法也可行。

#DEFINE WM_MYMESSAGE WM_USER + 1

BEGIN_MESSAGE_MAP
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
END_MESSAGE_MAP()

void CMyClass::OnMyMessage(UINT lParam, LONG wParam)
{
...
}

Areslee 2000-08-14
  • 打赏
  • 举报
回复
SendDlgItemMessage(对话框句柄,控件ID,WM_SETTEXT,0,数据缓冲区指针)

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧