PostMessage 后主对话框不响应消息

WK2015007 2017-07-14 08:51:17
MFC 对话框 工程,主界面启动线程 ,线程中实时读取串口数据,然后在主界面上显示实时接收的数据,接收数据正确,目前显示数据一直不更新,望大神指点迷津!!
贴出线程函数 和 postmessage 相应函数

void CDlg::AutoLissen(LPVOID pParam)
{
CDlg *pDlg;
pDlg = (CDlg *)pParam;

while(!m_bExitThread)
{
//读取串口数据
if(GetComData())
{
//UpdateData(false);
//pDlg->PostMessage(WM_UPDATEMY_DATA);
}

MyDelay(500); //自定义延迟函数 500ms 类似Sleep函数
}

return ;
}


LRESULT CDlg::OnUpdateMyData(WPARAM wParam, LPARAM lParam)
{
UpdateData( false );
return 0;
}
...全文
369 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2017-07-14
  • 打赏
  • 举报
回复
消息映射有没有绑定,消息函数没有被调用,那就是消息要么没收到,要么没有映射对
WK2015007 2017-07-14
  • 打赏
  • 举报
回复
急用,找不到哪个地方出问题了,没办法,只有设置个定时器 高频UpdateData 更新数据了 ,试了下 没有什么问题,基本还可以,结贴。多谢各个!
WK2015007 2017-07-14
  • 打赏
  • 举报
回复
引用 5 楼 cvbtvbwu 的回复:
试下在这个函数OnUpdateMyData断点看有没有调用
插入断点了 执行过PostMessage 后不进这个函数
叶恭介叶恭介 2017-07-14
  • 打赏
  • 举报
回复
试下在这个函数OnUpdateMyData断点看有没有调用
WK2015007 2017-07-14
  • 打赏
  • 举报
回复
引用 3 楼 cvbtvbwu 的回复:
不知道楼主自定义消息对不对,需要写3个地方,例如我自定义一个按钮消息: h文件 afx_msg LRESULT OnBTNLClick(WPARAM wParam, LPARAM lParam); cpp文件 BEGIN_MESSAGE_MAP(CTPReadDlg, XDialog) ON_MESSAGE(MSG_BTN_LCLICK, OnBTNLClick) END_MESSAGE_MAP() LRESULT CDlg::OnBTNLClick(WPARAM wParam, LPARAM lParam) { return 0; }
这3个都有,我还有个自定义消息 #define WM_UPDATEMY_DATA ((WM_USER) + 200) h文件中 LRESULT OnUpdateMyData(WPARAM wParam, LPARAM lParam); cpp文件中 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP ON_MESSAGE(WM_UPDATEMY_DATA, CDlg::OnUpdateMyData) END_MESSAGE_MAP() 后面还有函数 LRESULT CDlg::OnUpdateMyData(WPARAM wParam, LPARAM lParam) { UpdateData( false ); return 0; }
叶恭介叶恭介 2017-07-14
  • 打赏
  • 举报
回复
不知道楼主自定义消息对不对,需要写3个地方,例如我自定义一个按钮消息: h文件 afx_msg LRESULT OnBTNLClick(WPARAM wParam, LPARAM lParam); cpp文件 BEGIN_MESSAGE_MAP(CTPReadDlg, XDialog) ON_MESSAGE(MSG_BTN_LCLICK, OnBTNLClick) END_MESSAGE_MAP() LRESULT CDlg::OnBTNLClick(WPARAM wParam, LPARAM lParam) { return 0; }
WK2015007 2017-07-14
  • 打赏
  • 举报
回复
断点查看PostMessage 函数 返回值为1 ,就是程序不运行自定义那个更新数据函数,我postmessage函数的目的就是想让接收到的数据 在主界面上显示出来
zgl7903 2017-07-14
  • 打赏
  • 举报
回复
设置断点,查看运行状态 适当的添加 TRACE, 好观察程序的运行过程 PostMessage 都被屏蔽了 目的是?

15,979

社区成员

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

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