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

阳泉网站开发企业网络营销推广案例

阳泉网站开发,企业网络营销推广案例,北京网站建设那家好,男人和女人做哪个网站在MFC框架下,有很多系统已经定义好的消息,例如ON_WM_LBUTTONDOWN()、ON_WM_MBUTTONDOWN()等等。我们在使用的时候只需要声明并调用就可以了,最简单的用法。 提升了一点难度的用法就是自己设置自定义消息,再提升一点难度的就是如何…

在MFC框架下,有很多系统已经定义好的消息,例如ON_WM_LBUTTONDOWN()、ON_WM_MBUTTONDOWN()等等。我们在使用的时候只需要声明并调用就可以了,最简单的用法。

提升了一点难度的用法就是自己设置自定义消息,再提升一点难度的就是如何模拟系统消息了,一般情况下只是做普通的项目开发功能是用不到的。

在这里,我首先讲解下如何实现自定义消息,再深层次的讲述如何模拟系统消息,有需要的可以了解下哟~

自定义消息

在有些时候系统定义的消息不能完全满足程序的应用,这时候就需要进行消息自定义了,那么该如何实现自定义消息呢?

第一步:定义自定义消息名称以及ID

在MFC框架下,分配了WM_USER之后的消息都是开发人员可以自定义的消息ID。

假设,定义一个选中触发消息:

#define WM_USER_CLICKED WM_USER+1

这种写法就代表了定义了一个自定义消息,消息名称叫做:WM_USER_CLICKED,消息ID号是:WM_USER+1

在这里,温馨提示一句:在做大型的绘图开发程序当中,为了方便管理自定义消息,一般都不会直接使用WM_USER进行编号自增,而是使用自定义宏代替WM_USER,为了后续方便管理,格式如下:

#define  UIXML_WM_BASE   WM_USER + 20000#define  WM_USER_CLICKED1		UIXML_WM_BASE +0
#define  WM_USER_CLICKED2		UIXML_WM_BASE+1
#define  WM_USER_CLICKED3		UIXML_WM_BASE+2
#define  WM_USER_CLICKED4		UIXML_WM_BASE+3

如果要是你的程序中只存在了一两个自定义消息,就没有必要写成上面的格式了。

这种格式的好处:

可以根据功能划分自定义消息区域。假设你目前正在开发一个仅供公司内部使用的基础框架类,在自定义消息的时候,需要区分哪些是自己开发使用的,哪些是对外开发者调用的。分工明确,不容易消息错乱。

第二步:发送自定义消息

想要在哪里触发自定义消息,就需要在哪里发送消息。

在MFC框架中,有两种发送消息机制:SendMessage、PostMessage。

::SendMessage(GetParent()->GetSafeHwnd() , WM_USER_CLICKED ,参数2 , 参数1);

只是举例子说明,具体的根据实际功能来确定~

第三步:自定义消息映射

ON_MESSAGE(WM_USER_CLICKED1, OnCustomClicked1)

参数一:定义的自定义消息

参数二:实际窗口中响应的映射消息

第四步:自定义消息实现

afx_msg LRESULT OnCustomClicked1(WPARAM  wParam , LPARAM lParam); 

具体的操作应用可以在OnCustomClicked1中编写了,这要根据实际的需求应用了,这里不再做过多的说明,到这里,应该都知道该如何应用了吧~

模拟系统消息

简单的自定义消息方法已经在自定义消息中讲述了,下面来一个更深层次的提高吧!如何模拟系统消息,为了通俗易懂的讲解,这里我们模拟ComboBox控件CBN_SELCHANGE消息。

使用过MFC框架下控件开发的人都知道,该消息是由系统发送的,平时我们只是应用下就可以了,要是让自己写一个这样的触发消息,该如何实现呢?

前提条件:继承CWnd类模拟ComboBox控件,这时候,所有的控件消息都需要自己内部模拟,那么,想要让外部开发人员调用起来与系统的ComboBox中的消息一致,该怎么实现呢?

假设我们应用SendMessage进行消息发送,此时也是需要发送消息,但是需要发送命令消息:WM_COMMAND

WM_COMMAND在什么时候被触发呢?

1:当用户从菜单中选择命令项时

2:当控件向其父窗口发送消息时

3:当加速键击被翻译时

其实,在WINDOW9X以上都是在发送WM_NOTIFY,但是为了做成兼容基类,所以,依旧采用的是WM_COMMAND消息。

一旦指定了使用WM_COMMAND来进行消息发送,这时候wParam以及lParam该发送什么数据呢?

wParam参数

在发送自定义消息中,wParam参数是分成了高字节与低字节之分的,需要采用MAKEWPARAM进行发送。

该宏创建了一个32位的无符号值,用作消息中的wParam参数,该宏连接两个指定的16位值。

在传递参数时,高位是当前模拟发送的ID号,每个窗口甚至是每个控件都有属于自己的编号,不难获取到。

低位是需要触发的系统消息,前面说到了模拟的是CBN_SELCHANGE消息,所以wParam参数的写法,如下:

MAKEWPARAM( GetDlgCtrlID(),CBN_SELCHANGE)

LPARAM参数

对于这个参数,就当对来说简单了,只需要传递当前窗口的HWND,转换成LPARAM参数就可以了。

整体的模拟系统发送格式:

::SendMessage(pwnd->GetSafeHwnd(), WM_COMMAND, MAKEWPARAM( GetDlgCtrlID(),CBN_SELCHANGE), (LPARAM)GetSafeHwnd());

对于模拟系统发送消息来说,最重要的就是SendMessage的第二个参数以及第三个参数了。同样的道理,也可以使用PostMessage的方式发送。

消息发送出去之后,在外界的使用方式是如何呢?

既然我们模拟的是系统消息,在外部窗口调用的地方与MFC自带的控件消息方法是一致的

消息映射:

ON_CBN_SELCHANGE(ID_CUSTOMCOMBOBOXID, &CTestComboboxDlg::OnCbnSelchangeComboSd)

看着这个方法是不是很熟悉?与自带的ComboBox方式是不是一模一样?后续的使用方式都是一致的啦!

我是糯诺诺米团,一名C++开发程序媛~

http://www.dinnco.com/news/86496.html

相关文章:

  • 网站建设怎么样工作韩国热搜榜
  • 邢台做网站推广找谁杭州seo网站建设靠谱
  • 海兴网站建设如何发布自己的广告
  • 南宁做网站 的合肥seo服务商
  • 怎样靠做网站赚钱2345网址导航手机版
  • php网站开发实战58同城网站推广
  • 做网站的企划书小学培训机构
  • 免费品牌网站制作哪些浏览器可以看禁止访问的网站
  • WordPress站点地图html代码免费十大软件大全下载安装
  • 泰安网站建设公司网络营销知名企业
  • 网站建设移交确认书百度指数是怎么计算的
  • 江西威乐建设集团有限公司企业网站网络营销师报考条件
  • 关于建设网站的需求分析google推广一年的费用
  • 德州聊城网站建设seo文章关键词怎么优化
  • 广东营销型网站建设多少钱百度刷排名百度快速排名
  • 网站建设论文结尾湖南平台网站建设设计
  • 做黑彩网站赚钱吗网络营销的特点有
  • 网站建设学校网站宁波seo网站服务
  • 百度软件seo怎么优化软件
  • 网站备案证书0kb怎么制作网址
  • 济南网站设计公司排名企业网站管理系统
  • 顺德龙江做网站搜索引擎app
  • 专门做进口产品的网站实事新闻热点
  • 网页开发语言有哪几种泰州百度seo公司
  • 免费小程序制作网站杭州云优化信息技术有限公司
  • 汤唯梁朝伟做的视频网站百度一下你就知道搜索引擎
  • 开发公司成本费用表格上海关键词优化报价
  • 网络营销专业的职业生涯规划北京官方seo搜索引擎优化推荐
  • 做网站流程内容怎么做蛋糕
  • 福州网站建设发布seo资源咨询