当前位置: 首页 > news >正文

秦皇岛做网站seo的西安企业网站seo

秦皇岛做网站seo的,西安企业网站seo,合肥大型网站设计公司,舆情监测系统永久免费在MFC开发中,主要核心机制就是消息机制。QT与之类似的机制就是信号与槽。QT中的信号与槽是非常容易自定义的,MFC也是如此,自定义也是比较方便,况且自定义消息或者控件在整个GUI图形化界面开发中也是非常重要的部分,上篇…

在MFC开发中,主要核心机制就是消息机制。QT与之类似的机制就是信号与槽。QT中的信号与槽是非常容易自定义的,MFC也是如此,自定义也是比较方便,况且自定义消息或者控件在整个GUI图形化界面开发中也是非常重要的部分,上篇文章我们介绍了QT中自定义信号与槽,这篇文章就来带着大家来实现一下MFC的自定义消息

在实现之前,我们先来了解一下MFC中的消息机制

消息机制

消息机制既消息映射,就像映射表一样,消息映射是一个将消息和成员函数相互关联的表

这种映射要得益于MFC的底层封装,他屏蔽了代码的底层逻辑,用户只需要进行消息id与函数的绑定就能实现指定按钮的事件触发

消息机制由系统管理,可以将消息精准投放到对应窗口的消息队列中

自定义消息实现

自定义消息主要分为以下几个步骤

  • 自定义消息id

  • 自定义消息响应函数

  • 指定对话框注册消息

  • 实现消息响应函数

  • 触发自定义消息

详细步骤

  1. 自定义消息id

    自定义消息id一般用define进行宏定义,注意ID一定是大于WM_USER,因为WM_USER之前的已经被系统占用了,用了可能会出现未知的错误

  2. 自定义消息响应函数

    我们在注册消息时,一般使用ON_MESSAGE这个宏进行注册,所以消息的响应函数要符合ON_MESSAGE参数所规定的函数规范

  3. 指定对话框注册消息

    在MFC中每个对话框都对应这一个消息注册表,需要把消息id和响应函数结合起来用ON_MESSAGE(message, memberFxn)指示哪个函数将处理用户定义的消息(与映射表的功能相似),参数一消息ID、参数二为消息的响应函数

  4. 实现消息响应函数

    注册成功后,用户发送的对应消息就会传到我们的响应函数里面,具体业务实现就需要大家自己实现了

  5. 触发自定义消息

    自定义消息一般通过SendMessage或PostMessage函数进行消息触发

代码实现

自定义消息id

#define WM_TEST (WM_USER + 1)  // 自定义消息

自定义消息响应函数

自定义消息响应函数,这里我们来参考以下ON_MESSAGE宏里面的函数要求

可以看到ON_MESSAGE的函数要求是返回值类型为LRESULT,参数有两个类型分别为WPARAM和LPARAM

这里我们要说明以下,MFC的做法就没有QT的方便,QT是允许用户自定义信号与槽函数的参数的,所以这一点可以看出QT还是要比MFC方便的

// 自定义消息响应函数
afx_msg LRESULT OnTest(WPARAM wParam, LPARAM lParam);

指定对话框注册消息

下面就可以在对应对话框的消息注册表中,使用ON_MESSAGE宏进行自定义消息的注册了

BEGIN_MESSAGE_MAP(MainDlg, CDialog)ON_BN_CLICKED(IDOK, &MainDlg::OnBnClickedOk)ON_BN_CLICKED(IDCANCEL, &MainDlg::OnBnClickedCancel)ON_MESSAGE(WM_TEST, &MainDlg::OnTest)  // 自定义消息注册
END_MESSAGE_MAP()

实现消息响应函数

这里我们也没有主要业务场景,所以这里我们就打印一下日志,并输出一下这两个形参的值好了

LRESULT MainDlg::OnTest(WPARAM wParam, LPARAM lParam)
{TRACE(_T("自定义消息被触发 wParam:%s lParam:%d\r\n"), wParam, lParam);return 0;
}

触发自定义消息

我们就在点击确定按钮时利用SendMessage或PostMessage函数触发我们的自定义消息

void MainDlg::OnBnClickedOk()
{// 在此添加控件通知处理程序代码// CDialog::OnOK();::SendMessageA(GetSafeHwnd(), WM_TEST, (WPARAM)L"Mr.Lu", 666);CWinThread* thread = AfxGetThread();::PostMessageA(GetSafeHwnd(), WM_TEST, (WPARAM)L"Mr.Lu", 666);
}

测试

下面我们就来实际运行测试一下我们的代码

预期结果:自定义消息函数触发两次

如我们所料点击确定按钮,自定义消息函数被触发了两次

到这里,MFC自定义消息就介绍完了

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!

http://www.hengruixuexiao.com/news/39809.html

相关文章:

  • 网站建设与管理(第2版)搭建网站的步骤和顺序
  • 网站开发做原型吗论述搜索引擎优化的具体措施
  • 已认证网站服务费怎么做行者seo
  • 陈塘庄做网站公司智能建站系统
  • 做网站用到的软件百度搜索引擎的原理
  • 公众号微信商城seo网络推广师招聘
  • 使用三剑客做网站惠州市seo广告优化营销工具
  • 贵阳查房子备案的网站热点事件营销案例
  • 郑州网站建设开发公司舆情网站直接打开的软件
  • 做二手的网站有哪些百度关键词排名点击
  • 网页显示网站正在建设中怎么做武汉整站seo数据上云
  • 温州网站优化排名推广关键字排名优化公司
  • 做网站推广要注意什么google国际版入口
  • 做情侣网站天津seo管理平台
  • 哪些网站可以做公司制度网站维护推广的方案
  • 西班牙外贸网站百度网站优化
  • 网站数据丢失怎么办免费建站平台
  • 车公庙网站建设软文推广新闻发布
  • 宁波网络建站公司seo外包品牌
  • 苏州市建设局网站首页流量网站
  • 单位网站建设目的百度经验悬赏任务平台
  • 网站打不开被拦截怎么办爱站工具seo综合查询
  • seo推广人员最新黑帽seo培训
  • 设计坞网站怎么样太原互联网推广公司
  • 第一次做网站做后感谷歌搜索引擎网址
  • 唐山网站建设公司论坛软文案例
  • 物流公司合肥seo推广外包
  • 写作网站一稿多投的后果巨量算数数据分析
  • 10有免费建网站百度竞价推广技巧
  • 做网站如何对接支付百度推广客户端怎么登陆