修改window下的MessageBox中默认文字

本文介绍了一种通过钩子函数CBTHookProc修改系统默认对话框标题的方法,使用SetWindowsHookEx设置钩子,然后在收到HCBT_ACTIVATE消息时调用SetDlgItemText修改按钮文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.方法是修改系统的下的默认名称。放在博客上就当我记住了哈哈!

#include <windef.h>

LRESULT CALLBACK CBTHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	HWND hwnd = (HWND)wParam;
	if (nCode == HCBT_ACTIVATE)
	{
		SetDlgItemText(hwnd, IDOK, "终于把你改了");
		SetDlgItemText(hwnd, IDCANCEL, "哈哈,开心");
	}
	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;
}

main函数中调用
MyMessageBox(NULL, "缺少系统组件,请重新安装", "提示", MB_OKCANCEL);

2.效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值