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++键盘与鼠标的消息处理

  • 2013年03月04日 22:35
  • 69KB
  • 下载

VC++ 添加加速键消息处理的方法

一:创建加速键表。 添加加速键有几种办法,最直接的就是在资源文件中添加,然后使用 LoadAccelerators 加载。 这篇文字说明了如何在运行时创建加速键表。 // accelera...
  • dxzysk
  • dxzysk
  • 2012年02月05日 18:38
  • 1034

VC 方向键消息处理

  • 2011年11月22日 18:04
  • 4.08MB
  • 下载

vc定制控件消息处理函数

一、概述 控件的消息处理函数是由系统定义好了的,通常情况下,不需要自己提供。 但当需要对控件进行特殊控制时,可以提供一个消息处理函数,替换原来的消息处理函数。 自己的处理完成后,再调用控件的缺省...
  • rankun1
  • rankun1
  • 2016年04月21日 16:45
  • 511

VC增加窗口消息处理

Project -- Class View -- CMyTestDlg -- 右键 Add Virtual Function -- find PreTranslateMessage   BOOL CM...

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

在SDK编程中,对消息的获取与分发是通过消息循环来完成。而在MFC编程中则是通过采取消息映射的方式对其进行处理。相比而言,这样的处理方式要简单得多,这也是符合面向对象编程中尽可能隐含实现细节的原则。一...

mfc自动创建按钮消息处理并清除

  • 2015年08月27日 10:58
  • 131KB
  • 下载

Android中的消息处理实例之二

  • 2015年06月22日 09:19
  • 3.39MB
  • 下载

VC++实现Vista和Win7系统低权限程序向高权限程序发消息

Windows 7已经隆重发布,但是很多程序员已经通过RTM等版本尝到了Windows 7的甜处。那么在Windows 7下用户界面特权隔离,将是本文我们介绍的重点。我们介绍了操作系统服务的Sessi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++中的消息处理
举报原因:
原因补充:

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