VC++中的消息处理

原创 2007年09月11日 16:09:00

  MessageBox()并没有什么多少功能,但是能够在屏幕上显示一个窗口,提出一个问题,并且等候用户的输入。下面是MessageBox()的原型:
  int MessageBox(HWND hwn,//handle of owner window
          LPCTSTR lptext,//address of text in message box
          LPCTSTR lpcaption,//address of title of message box
          UINT utype);//style of message box
  参数定义如下:
  hwnd——这是信息框连续窗口的句柄。目前我们还不能谈及窗口句柄,因此只能认为它是信息框的父窗口。在DEMO2_2.CPP,我们将它设置为空值NULL,因此使用Windows桌面作为父窗口。
  lptext——这是一个包含显示文本的空值终止字符串。
  lpcaption——这是一个包含显示文本框标题的空值终止字符串。
  utype——这大概是该簇参数中唯一令人激动的参数了,控制信息显示框的各类。
  表2.3列出了几种MessageBox()选项(有些删减)。

  表2.3 MessageBox()选项
  ─────────────────────────────────
           标志  描述
  ─────────────────────────────────
        下列设置控制信息框的一般类型
  ───────────┬─────────────────────
  MB_OK        │信息框含有一个按钮:OK,这是默认值
  MB_OKCANCEL     │信息框含有两个按钮:OK和Cancel
  MB_RETRYCANCEL   │信息框含有两个按钮:Retry和Cancel
  MB_YESNO      │信息框含有两个按钮:Yes和No
  MB_YESNOCANCEL   │信息框含有三个按钮:Yes、No和Cancel
  MB_ABORTRETRYIGNORE│信息框含有三个按钮:Yes、No和Cancel
  ───────────┴─────────────────────
       这一组控制在图标上添加一点“穷人的多媒体”
  ───────────┬─────────────────────
  MB_ICONEXCLAMATION │信息框显示一个惊叹号图标
  MB_ICONINFORMATION │信息框显示一个由圆圈中的小写字母I构成的图标
  MB_ICONQUESTION   │信息框显示一个问号图标
  MB_ICONSTOP     │信息框显示一个终止符图标
  ───────────┴─────────────────────
         该标志组控制默认时高亮的按钮
  ───────────┬─────────────────────
  MB_DEFBUTTONn    │其中n是一个指示默认按钮的数字(1-4),从左
             │到右计数
  ───────────┴─────────────────────
  注意:还有其他的高级OS级标志,我们没有讨论。如果希望了解更多细节的话,可以通过编译器Win32 SDK的在线帮助来查阅。

  可以同时使用表2.3中的值进行逻辑或运算,来创建一个信息框。一般情况下,只能从每一组中仅使用一个标志来进行或运算。
  当然,和所有Win2 API函数一样,MessageBox()函数返回一个值业通知编程者所发生的事件。但在这个例子中谁关心这个呢?通常情况下,如果信息框是yes/no提问之类的情况的话,就希望知道这个返回值。表2.4列出了可能的返回值。

      表2.4 MessageBox()的返回值
  ─────┬─────────────────────
    值  │ 按钮选择
  ─────┼─────────────────────
  IDABORT │Abort
  IDCANCEL │Cancel
  IDIGNORE │Ignore
  IDNO   │No
  IDOK   │OK
  IDRETRY │Retry
  IDYES  │Yes
  ─────┴─────────────────────

  最后,这个表已经毫无遗漏地列出了所有的返回值,正在已经完成了对我们第一个Windows程序——单击的逐行分析。

 

VC++如何处理自定义消息

ClassWizard不允许增加用户自定义消息,所以你必须手工输入。输入后,ClassWizard就可以象处理其它消息一样处理你自定义的消息了。 下面是增加自定义消息的步骤: 第一步:定义...
  • cytj129
  • cytj129
  • 2015年04月24日 17:45
  • 422

VC++ 消息处理

自定义的消息只能靠PostMessage()   AND   SendMessage()进行.     1.定义消息:#define   WM_YOURMESSAGE     WM_USER+N   ...
  • jing0611
  • jing0611
  • 2009年04月12日 20:00
  • 511

VC++中窗口过程函数及其消息发送、响应机制介绍

在VC++中,窗口过程函数是应用程序定义的一个函数,主要功能是处理发送给窗口的消息。窗口过程函数的定义是:virtual LRESULT WindowProc( UINT message, WPA...
  • margin1988
  • margin1988
  • 2013年10月16日 15:46
  • 1587

MFC消息处理流程概述

Win32下的消息流程清晰明了,但在MFC下,由于封装的缘故,隐藏的有点深,对一般的开发人员而言,就不甚明了喽。本文试图粗略展示出MFC下消息处理的基本流程。 一、先看一下Win32下的消息处理流程...
  • wangyao1052
  • wangyao1052
  • 2012年10月07日 13:59
  • 8388

VC++对于自定义消息处理

 无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用BOOL CDialog::Create( UINT nIDT...
  • jackyxwr
  • jackyxwr
  • 2009年11月24日 17:06
  • 881

VC++深入详解 - 消息处理

http://www.ieee.org.cn/dispbbs.asp?boardID=61&ID=41290
  • dadalan
  • dadalan
  • 2008年09月08日 09:26
  • 426

游戏内消息处理

发送消息有4种渠道 1. io 2. bus 3. stage 4. public 前面已经讲过了关于EasyManager的初始化。 public clas...
  • liyue1090041509
  • liyue1090041509
  • 2016年02月24日 11:27
  • 79

C++(24)消息处理示例

复制控制 --消息处理示例 说明:     有些类为了做一些工作需要对复制进行控制。为了给出这样的例子,我们将概略定义两个类,这两个类可用于邮件处理应用程序。...
  • u011225629
  • u011225629
  • 2015年08月08日 19:50
  • 1130

MFC 消息处理总结

梦想Sky MFC消息响应机制分析 ---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,我们在这里,对它的整...
  • jiangdewei2012
  • jiangdewei2012
  • 2014年03月21日 10:34
  • 361

handler——子线程中创建消息处理机制

转自http://blog.csdn.net/zlp1992/article/details/50295773 在线程的run()方法里调用Looper.prepare(),实例化一个Handler对...
  • chuntiandejiaobu10
  • chuntiandejiaobu10
  • 2016年08月25日 17:01
  • 767
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++中的消息处理
举报原因:
原因补充:

(最多只允许输入30个字)