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

请问MFC子线程函数里面如何调用View?

请问MFC子线程函数里面如何调用View?

胡说叔叔 2019-09-23 20:16:35
请问MFC子线程函数里面如何调用View?
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

#defing WM_MYMSG WM_USER+100

::PoseMessage(窗口句柄,WM_MYMSG, ……)
::SendMessage(窗口句柄,WM_MYMSG, ……)

也可以在主窗口中/父窗口中开启一个定时器和一个消息List
定时器去读取消息List并调用对应函数,并从消息List中移除已经处理了的消息
子线程负责把消息添加到消息List就可以了

添加和删除消息时,互斥一下,锁一下消息List,保证同一时刻,只有一个线程操作



查看完整回答
反对 回复 2019-09-25
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

一种情况是加在OnInitDialog或者OnShowWindow里面,效果就是对话框显示出来的时候AddString()动作已经完成了。

另一种情况如果想在对话框显示出来以后延迟一定时间(不知道我有没有理解对)再添加文本,那就要略微复杂一点了,最简单的方法是用定时器,在OnInitDialog或者OnShowWindow里面SetTimer( 1 , 200 , NULL );
然后给对话框添加OnTimer消息,
OnTimer( UINT nIdEvent )
{
if(nIdEvent ==1 )
{
AddString()
KillTimer( 1 );
}
}
这样就实现了显示对话框以后再等200毫秒再添加了一行文本


查看完整回答
反对 回复 2019-09-25
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

删除当前消息响应函数(View类的),重新在主框架窗口MainFrame建立消息响应函数。
新的响应函数中,通过以下几个函数获取MyView类指针,并画线。
GetActiveDocument
GetFirstViewPosition
GetNextView



查看完整回答
反对 回复 2019-09-25
  • 3 回答
  • 0 关注
  • 333 浏览

添加回答

举报

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