Windows编程技术09.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows编程技术09

Windows编程技术 常用消息 命令消息 命令消息是程序使用者向程序发出的操作命令。这类消息通常来自于用户界面对象,如菜单项、工具栏按钮等,统称为WM_COMMAND消息。 窗口消息 该类消息产生的原因多种多样,可以来自于系统,也可以来自于用户输入,除WM_COMMAND以外,所有以WM_开头的消息都属于这一类。从CWnd派生的类都可以处理窗口消息,来自系统的窗口消息在CWnd中都定义了缺省的处理函数,这些处理函数的名称都以“ON”开始,比如鼠标左键单击消息的处理函数为OnLButtonDown,用户可以根据需要覆盖这些函数实现自己的特殊处理。 控件通知消息 这类消息通常由控件产生,为的是向其父窗口通知某种情况。这类消息主要有WM_COMMAND和WM_NOTIFY两种。 在Windows编程中经常处理的系统消息有鼠标消息、键盘消息和一 些常用的窗口消息,下面介绍几个常用的窗口消息. WM_CREATE 当程序调用窗口类的Create函数创建窗口时,系统在Create函数结束前发出此消息。WM_CREATE消息是Windows系统发送给窗口的第一个消息,接收该消息的消息的窗口类处理函数是OnCreate。 通过响应这个消息可以做一些窗口内的初始化工作,如建立子窗口等,但是由于发出WM_CREATE消息时窗口尚未完成创建,因此,在OnCreate函数内不能调用那些依赖于窗口处于完全激活状态下的Windows函数。 WM_CLOSE 当用户企图关闭一个窗口时,Windows会向该窗口发送WM_CLOSE消息,接收该消息的消息的窗口类处理函数是OnClose。重载OnClose消息处理函数,可以控制窗口关闭过程,甚至取消用户的关闭操作。 WM_QUERYENDSEESSION 当用户退出Windows时,系统会发送WM_QUERYENDSEESSION消息给每一个正在运行的程序,接收该消息的消息的窗口类处理函数是OnQueryEndSession。为了确保一些操作在程序退出前被执行,用户除了重载OnClose之外,还要在派生窗口类中重载OnQueryEndSession消息处理函数。 WM_DESTROY 当用户关闭窗口时,Windows会在向该窗口发送WM_CLOSE消息之后,再向该窗口发送WM_DESTROY消息,该消息由OnDestroy函数处理。 当用户接到该消息时,窗口已经从屏幕消失,但仍处于活动状态,用户在派生类中可以重载该函数做最后的处理。但在重载的OnDestroy函数中,必须先调用基类的OnDestroy函数,然后再做自己的处理。 WM_NCDESTROY Windows向窗口发送的最后一个消息就是WM_NCDESTROY,该消息由OnNcDestroy函数处理。基类的OnNcDestroy执行一些默认的清除工作,如释放基类内部为窗口分配的内存等,然后调用虚成员函数PostNcDestroy。如果用户需要执行自己的清除操作,则应重载PostNcDestroy。 WM_TIMER WM_TIMER是一个计时器消息。该消息由OnTimer函数处理。 建立计时器 SetTimer(UINT nIDEvent,UINT nElapse, void(CALLBACK EXPORT* lpfnTimer)() ) SetTimer(1,1000,NULL); 处理计时消息 使用窗口类的属性窗口,采用添加处理其它窗口消息同样的方法添加WM_TIMER消息处理函数,添加后的代码如下所示: void CMainFrame::OnTimer(UINT nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 switch(nIDEvent) { case 1: … }       CFrameWnd::OnTimer(nIDEvent); } 取消计时器 可以通过KillTimer函数用于取消一个计时器: BOOL KillTimer(int nIDEvent) nIDEvent是计时器在本窗口内的唯一标识,用于指示取消哪个计数器。 下面的代码取消一个编号为1的计时器: KillTimer(1); WM_PAINT 窗口被改变时或在程序中调用窗口类的成员函数UpdateWindow或RedrawWindow时,应用程序都会收到WM_PAINT消息。 WM_PAINT的消息处理函数是OnPaint。在MFC程序的视图类中,OnPaint通过调用了OnDraw函数来处理WM_PAINT消息。 void Invalidate( BOOL bErase = TRUE )

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档