永发信息网

sendmessage 对话框不存在怎么办

答案:1  悬赏:70  手机版
解决时间 2021-11-20 11:42
sendmessage 对话框不存在怎么办
最佳答案
首先简单描述一下PostMessage和SendMessage的区别,让大家有个概念。
PostMessage:只是将消息放入到消息队列中,不管是否执行都返回。
SendMessage:将消息放入到消息队列中,并立即执行返回结果。
下面开始做一个基于对话框的MFC示例:
1)创建工程,并在对话框中插入一个STATIC控件,关联变量名m_staticPrompt
2)在对话框头文件中声明函数:
afx_msg LRESULT OnRefreshPrompt(WPARAM wPara,LPARAM lPara);//目的是接受到消息后,进行响应
3)在对话框头文件中定义一个自定义消息宏名称
#define WM_REFRESH WM_USER+1
4)在对话框源文件中添加消息映射
BEGIN_MESSAGE_MAP(CTestPostMsgDlg, CDialog)
...
ON_MESSAGE(WM_REFRESH, &CTestPostMsgDlg::OnRefreshPrompt)
...
END_MESSAGE_MAP()
5)在对话框源文件中写入如下代码:
//执行WM_REFRESH消息响应
LRESULT CTestPostMsgDlg::OnRefreshPrompt(WPARAMwPara,LPARAM lPara)
{
CString* str = (CString*)lPara;
if(str->Compare(_T("POST"))==0)
m_staPrompt.SetWindowText(_T("接受到传递的消息"));
UpdateData(FALSE);
//
return TRUE;
}

//
void CTestPostMsgDlg::OnBnClickedOk()
{
//第一步传递普通的消息看看区别
//如果调试以下两句代码,您会发现:先退出后更新
// PostMessage(WM_REFRESH);
// SendMessage(WM_CLOSE);
//如果调试以下两句代码,您会发现:先更新后退出
// PostMessage(WM_CLOSE);
// SendMessage(WM_REFRESH);

//第二步一个带字符串的消息看看效果
CString* strTemp = new CString("POST");
//如果使用PostMessage传递,您会发现:字符串已经析构了才执行消息响应,这样会造成死机
// PostMessage(WM_REFRESH,0,(LPARAM)strTemp);
//如果使用SendMessage传递,您会发现:显示正常
SendMessage(WM_REFRESH,0,(LPARAM)strTemp);
delete strTemp;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
少数派竞猜投的是永久积分,还是活动积分
为什么现在没有BOB心跳男孩的歌了?
两种蚊帐哪个与这个床更搭配好看,是圆的还是
什么是均价线?又怎么看个股的均价线?
趣联巧对下朕:微风燕子斜上朕是什么
驾校采集信息都采集什么?
岂敢盘桓,有所希翼的前两句
当u大于2f时,凸透镜成什么像,并且物与像在
求大神鉴别这双aj4黑紫是不是真的!😂
为:什么双方都有短号,为何给对方打显示的是长
引起组织兴奋刺激的必要条件是什么?
一般来说毕业论文答辩一辩没过,等二辩要等多
转录因子是什么?其与DNA结合的功能域(motif
天气热极了像什么似的
苹果手表从省电模式关机,开机后仍然是省电模
推荐资讯
2o2o年中国实行一妻二夫制
写一篇有关眼睛的作文有关谁的眼睛
生物高一
舟山普陀山佛国小院(农家乐)地址在什么地方
通过生辰起名字,女孩 属龙 2012年 阴历4月19
蓝色魅力私人发型定制地址在什么地方,想过去
按要求写句子。今天天气真好(把句子写具体)
去峨眉山一定要住金顶吗?住半山可以不?
准备去宜州和金城江,有好的住宿地方推荐吗
用豪和瑶做个网名!!!!
50年代经典老歌草原上升起不落的太阳原唱是谁
千一画院地址在什么地方,我要处理点事!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?