Windows API一日一练(4)MessageBox函数

主目录传送门

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

留在最后

按钮的样式组合太多了 所以我最后放弃了全部的实验如果项目上有要求我会在重新实验的 哈哈 这个懒家伙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值