本帖最后由 gms 于 2020-10-23 20:34 编辑
MessageBox函数的使用
课堂练习
创建Win32 Application
Win32 Application和Win32 Console Application区别:
https://zhIDAo.baidu.com/question/12596866.html
编写代码
[C] 纯文本查看 复制代码 #include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
int ret = MessageBox(NULL,TEXT("你超过18岁了吗?"),TEXT("提问"),MB_YESNO|MB_ICONQUESTION);
if(IDYES == ret) //变量放右边,常量值放左边
{
MessageBox(NULL, TEXT("你是成年人了"),TEXT("回复"),MB_OK);
}
else
{
MessageBox(NULL, TEXT("你是未成年人"),TEXT("回复"),MB_OK);
}
return 0;
}
注:Message(NULL, TEXT(""), TEXT(""), ME_YESNO|MB_ICONQUESTION);
第二个参数:正文 第三个参数:标题 第四个参数:按钮类型
- TEXT是宏,建议将所有字符串都用TEXT括起来
- 宏一般都是大写
- MessageBox的返回值是int类型
设置希望在对话框中显示的按钮 #define MB_OK
0x00000000L (0x是十六进制) #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
必备小知识“|”是什么意思?
*“|”是位运算里的“或”运算,只有对应的**两个二进制位**全为0,结果才为0。
例如:
MB_OK、MB_OKCANCEL 化为二进制 或运算 之后的结果可以看出,他们的低四位和高四位各自保留自己原来的特征
MB_YESNOCANCEL、MB_ICONQUESTION 化为二进制 或运算 之后的结果可以看出,他们的低四位和高四位也各自保留自己原来的特征这样“MB_OK、MB_OKCANCEL”组的数值与“MB_YESNOCANCEL、MB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。所以说按钮和图标可以通过此运算同时出现。
课后作业
运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你 是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一 个警告图标)“你看你就不像好人,点击【确定】开始格式化 C 盘!”;如果点 击【否】,则弹出对话框(有【重试】、【取消】两个按钮及问号图标)“尝试把你变成好 人失败,是否重试?”。
[C] 纯文本查看 复制代码 #include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
int ret = MessageBox(NULL,TEXT("你是好人吗?"),TEXT("询问"),MB_YESNO|MB_ICONQUESTION);
if(IDYES == ret)
{
MessageBox(NULL,TEXT("你看你就不像好人,点击【确定】开始格式化 C 盘"),TEXT("回答"),MB_OK|MB_ICONWARNING);
}
else
{
int ret1 = MessageBox(NULL,TEXT("尝试把你变成好人失败,是否重试?"),TEXT("挽救你"), MB_RETRYCANCEL|MB_ICONQUESTION);
if(IDRETRY == ret1)
{
MessageBox(NULL, TEXT("坏人就是换人,没法变成好人"), TEXT("没戏喽"), MB_OK|MB_ICONERROR);
} //还可以自行添加代码段
}
return 0;
}
注:- EXCLAMATION 或者 WARNING: 警告
- HAND: 错误提示
- ASTERISK: 星号,提示
附:代码整理快捷键
TAB: 向后缩进
SHIFT+TAB: 向前缩进
|