更改Windows系统下的MessageBox按钮显示内容

        在实际开发中,可能会碰到这样一个场景:使用Windows系统下的MessageBox给出提示信息时,按钮的显示内容是Windows已经设定好的,无法更改。比如,在中文系统下,IDOK对应的按钮内容为“确定”,IDCANCLE对应的按钮内容为“取消”。在实际应用开发中,有时候需要MessageBox按钮上显示我们自己想要显示的内容,这时候就得想办法更改Windows系统默认的MessagBox按钮内容了。当然,你也可以重新制作一个自己的MessageBox,本文在这里只介绍一个更改Windows系统下默认的MessageBox按钮内容的方法。贴一段代码如下:

LRESULT CALLBACK CBTHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	HWND hwnd = (HWND)wParam;
	if(nCode == HCBT_ACTIVATE)
	{
		if(... ...)
		{
			SetDlgItemText(hwnd,IDOK,L"按钮内容");
			SetDlgItemText(hwnd,IDCANCEL,L"按钮内容");
		}
		else
		{
			SetDlgItemText(hwnd,IDOK,L"按钮内容");
			SetDlgItemText(hwnd,IDCANCEL,L"按钮内容");
		}
		
	}
	return 0;
}

int MyMessageBox(HWND hwnd, TCHAR *szText, TCHAR *szCaption, UINT uType)
{   
	int ret;
	HHOOK hHook = SetWindowsHookEx(
		WH_CBT, 
		CBTHookProc, 
		NULL, 
		GetCurrentThreadId()
		);
	ret = MessageBox(hwnd, szText, szCaption, uType);
	UnhookWindowsHookEx(hHook);
	return ret;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值