C++ Build MessageBox将按钮的文字显示为英文

本文介绍如何使用 C++ 的 MessageBoxEx 函数显示带有英文按钮文字的消息框。通过设置语言参数,可以确保消息框中的 OK 按钮显示为英文。

C++ Build MessageBox将按钮的文字显示为英文。

MessageBoxEx(this->Handle,"11111","222",MB_OK,MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));

### 使用MessageBox自定义按钮文本 在标准 Windows API 中,`MessageBox` 函数本身并不支持直接修改按钮上的文字。然而可以通过使用 `MessageBoxIndirect` 结合 `MSGBOXPARAMS` 结构体来自定义消息框的行为和外观[^2]。 下面是一个简单的例子展示如何通过这种方式实现带有自定义按钮文本的消息框: ```cpp #include <windows.h> int main() { MSGBOXPARAMS mbp; mbp.cbSize = sizeof(MSGBOXPARAMS); mbp.hwndOwner = NULL; mbp.hInstance = GetModuleHandle(NULL); mbp.lpszText = TEXT("这是一个测试"); mbp.lpszCaption = TEXT("自定义消息框"); mbp.dwStyle = MB_OKCANCEL | MB_ICONINFORMATION; // OK 和 Cancel 按钮样式 // 定义自定义按钮文字 mbp.lpszIcon = MAKEINTRESOURCE(IDI_INFORMATION); mbp.dwLanguageId = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); TCHAR okButton[] = TEXT("确认"); TCHAR cancelButton[] = TEXT("取消"); // 将自定义按钮文字关联到对应的 ID HINSTANCE hInst = LoadLibrary(TEXT("USER32")); SetDlgItemText(hInst, IDCANCEL, cancelButton); SetDlgItemText(hInst, IDOK, okButton); int result = MessageBoxIndirect(&mbp); FreeLibrary(hInst); if(result == IDOK){ MessageBox(NULL,TEXT("您选择了'确认'"),TEXT("提示"),MB_OK|MB_ICONASTERISK); } else{ MessageBox(NULL,TEXT("您选择了'取消'"),TEXT("提示"),MB_OK|MB_ICONHAND); } return 0; } ``` 需要注意的是,在上述代码片段中尝试更改按钮标签的方式并不是完全有效的解决方案,因为 `SetDlgItemText` 需要在对话框创建之后调用才能生效,而这里是在调用之前执行的。对于更复杂的定制需求,可能需要考虑构建自己的对话框资源或者寻找第三方库的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值