Windows API一日一练(4)MessageBox函数
主目录传送门https://blog.csdn.net/zb774095236/article/details/108291755本次学习的源码模板下载:1、 百度云:https://pan.baidu.com/s/1TcucnwQq8-gdVHuHSLSOYw提取码:1utm重大修改的地方因为可以重复使用模板的缘故后期将Win32API-xx统一为Win32API学习目标:在上一个工程的基础上认
主目录传送门
https://blog.csdn.net/zb774095236/article/details/108291755
本次学习的源码模板下载:
1、 百度云:https://pan.baidu.com/s/14XoBHrtVVvvN_zaiv-ebmg 提取码:kvbq
学习目标:
在Windows API一日一练(1)-弹出按钮的基础源码版本上更加详细的学习 MessageBox
因为本次的按钮类型较多所以将直接在代码中调试体现
学习内容:
一、 项目参考
1. https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox Microsoft官方解释文档
2. https://blog.csdn.net/caimouse/article/details/1683543 大牛的Win32系列
二. 在往期模板上修改和新增的步骤
1.代码段
//库文件
#include "Windows.h"
#include "tchar.h"
//定义WinMain的入口
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
//没有这些参数也不会发生警告
UNREFERENCED_PARAMETER(hInstance);
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
//获取桌面的句柄。
HWND hWnd = GetDesktopWindow();
//显示一行消息
//MessageBox(hWnd, _T("第一个应用程序"), _T("例子"), MB_OK);//注释 下面是更加详细的实验
//对于按钮的类型如果你有需求你可以查询微软的文档进行更多的实验
#define MessageBoxTest_1 //新增 方便调试如果你想调试某个按钮请修改后面的数字
int ret = IDCANCEL;//
//#if defined(xxx)如果宏存在则对应代码会被执行
#if defined(MessageBoxTest_1)
ret=MessageBox(NULL, _T("MB_ABORTRETRYIGNORE"),
_T("按钮样式实验"), MB_ABORTRETRYIGNORE );
#elif defined(MessageBoxTest_2)
ret = MessageBox(NULL, _T("MB_CANCELTRYCONTINUE|MB_DEFBUTTON1|MB_HELP"),
_T("按钮样式实验"), MB_CANCELTRYCONTINUE | MB_DEFBUTTON1 | MB_HELP | MB_ICONEXCLAMATION);
#elif defined(MessageBoxTest_3)
ret = MessageBox(NULL, _T("MB_OK|MB_DEFBUTTON3|MB_HELP"),
_T("按钮样式实验"), MB_OK | MB_DEFBUTTON3 | MB_HELP | MB_ICONWARNING);
#elif defined(MessageBoxTest_4)
ret = MessageBox(NULL, _T("MB_YESNOCANCEL|MB_DEFBUTTON2|MB_HELP"),
_T("按钮样式实验"), MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_HELP | MB_ICONINFORMATION);
#elif defined(MessageBoxTest_5)
ret = MessageBox(NULL, _T("MB_RETRYCANCEL|MB_DEFBUTTON3|MB_HELP"),
_T("按钮样式实验"), MB_RETRYCANCEL | MB_DEFBUTTON3 | MB_ICONQUESTION);
#elif defined(MessageBoxTest_6)
ret = MessageBox(NULL, _T("MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP"),
_T("按钮样式实验"), MB_YESNOCANCEL | MB_DEFBUTTON4 | MB_HELP | MB_ICONSTOP);
#elif defined(MessageBoxTest_7)
ret = MessageBox(NULL, _T("MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP"),
_T("按钮样式实验"), MB_YESNOCANCEL | MB_DEFBUTTON4 | MB_ICONHAND);
#endif
/*
返回值是一个整数,如果有取消按钮,并且按下ESC键就返回IDCANCEL。如果有其它按钮,并且按下,就返回相应的值。主要的值如下:
IDABORT 放弃按钮
IDCANCEL取消按钮
IDCONTINUE 继续按钮
IDIGNORE 忽略按钮
IDNO 否按钮
IDOK 确定按钮
IDRETRY 重试按钮
IDTRYAGAIN 重试按钮
IDYES 是按钮
*/
switch (ret)
{
case IDABORT:
MessageBox(hWnd, _T("中止"), _T("刚刚您的操作"), MB_OK);
break;
case IDCANCEL:
MessageBox(hWnd, _T("取消"), _T("刚刚您的操作"), MB_OK);
break;
case IDCONTINUE:
MessageBox(hWnd, _T("继续"), _T("刚刚您的操作"), MB_OK);
break;
case IDIGNORE:
MessageBox(hWnd, _T("忽略"), _T("刚刚您的操作"), MB_OK);
break;
case IDNO:
MessageBox(hWnd, _T("否定"), _T("刚刚您的操作"), MB_OK);
break;
case IDOK:
MessageBox(hWnd, _T("确定"), _T("刚刚您的操作"), MB_OK);
break;
case IDRETRY:
MessageBox(hWnd, _T("重试"), _T("刚刚您的操作"), MB_OK);
break;
case IDTRYAGAIN:
MessageBox(hWnd, _T("重试"), _T("刚刚您的操作"), MB_OK);
break;
case IDYES:
MessageBox(hWnd, _T("是"), _T("刚刚您的操作"), MB_OK);
break;
default:
break;
}
return 0;
}
项目下载地址:
1.百度云:https://pan.baidu.com/s/1SrBt-sCJPY51HWLYkATE2A 提取码:5cco
留在最后
按钮的样式组合太多了 所以我最后放弃了全部的实验如果项目上有要求我会在重新实验的 哈哈 这个懒家伙
更多推荐
所有评论(0)