深入研究MessageBox

深入研究MessageBox

1MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);

    第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。

   MB_OK就是表示有一个OK按钮【确定】)

TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXTVC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T("问好"),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。暂时不用关心TEXT的细节。

               换个样子:

MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),MB_OKCANCEL);

可从设置希望在对话框中显示的按钮:

#define MB_OK                  0x00000000L

#define MB_OKCANCEL            0x00000001L

#define MB_ABORTRETRYIGNORE    0x00000002L

#define MB_YESNOCANCEL         0x00000003L

#define MB_YESNO               0x00000004L

#define MB_RETRYCANCEL         0x00000005L

也可以设置对话框中显示的图标:

#define MB_ICONHAND                       0x00000010L

#define MB_ICONQUESTION                0x00000020L

#define MB_ICONEXCLAMATION         0x00000030L

#define MB_ICONASTERISK                  0x00000040L

比如:MessageBox(NULL, TEXT("世界你好") ,TEXT("你好"), MB_ICONQUESTION);

2)可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢?

MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),MB_OKCANCEL| MB_ICONQUESTION);

MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),

MB_ABORTRETRYIGNORE | MB_ICONEXCLAMATION);

3)思考:

|”是什么意思?“|”是位运算里的“或”运算,只有对应的两个二进位有一位为1时,结果位才为1 ,否则为0MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0;MB_ICONHANDMB_ICONQUESTION等的低5至第8位不同,而其他位永远为0。这样“MB_OK、MB_OKCANCEL”组的数值与“MB_ICONHANDMB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。

这种风格叫“掩码”,在Windows编程中这种用法会经常用到。

4)返回值

MessageBox是有返回值的,返回值为用户点击的按钮:

#define IDOK                               1

#define IDCANCEL                       2

#define IDABORT                         3

#define IDRETRY                          4

#define IDIGNORE                        5

#define IDYES                               6

#define IDNO                                7

代码:

int ret = MessageBox(NULL, TEXT("你是人吗?"), TEXT("火星人"),

MB_YESNO | MB_ICONQUESTION);

if(ret==IDYES)

{

MessageBox(NULL, TEXT("火星人你好"), TEXT("问好"),MB_OK);

}

else

{

MessageBox(NULL, TEXT("欢迎回家来"), TEXT("问好"),MB_OK);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值