MessageBox 按钮显示英文或其他语言

article/2025/9/22 14:47:04

由于特殊原因我们需要将 MessageBox 或 Dialog 的按钮“确定”、“取消”用英文或其他语言显示。在网上查找了很多相关内容,但很多要么很麻烦,要么根本就不能实现所需效果。最后发现还是MSDN最好用。
首先是MessageBox中如何将按钮中的文字显示为其他语言。MessageBox要使用 MessageBoxEx才可以,其定义如下:

int WINAPI MessageBoxEx(_In_opt_  HWND hWnd,_In_opt_  LPCTSTR lpText,_In_opt_  LPCTSTR lpCaption,_In_      UINT uType,_In_      WORD wLanguageId
);

最后一个参数MSDN上给出的解释是:

wLanguageId [in]
Type: WORD
The language for the text displayed in the message box button(s). Specifying a value of zero (0) indicates to display the button text in the default system language. If this parameter is MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), the current language associated with the calling thread is used.
To specify a language other than the current language, use the MAKELANGID macro to create this parameter. For more information, see MAKELANGID.

意思就是我们需要用函数MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),来生成最后一个参数。它的定义为

WORD MAKELANGID(USHORT usPrimaryLanguage,USHORT usSubLanguage
);

微软给我们提供了足够多的语言支持,关于这两个参数可以参见微软提供的Language Identifier Constants and Strings表格。从表格中查找相应的语言的PrimaryLanguage和SubLanguage即可。如英语为:LANG_ENGLISH 和 SUBLANG_ENGLISH_US ,可以写成MAKELANGID(LANG_ENGLISH , UBLANG_ENGLISH_US );
最后举一个例子:

MessageBoxEx(NULL,L"This is an English MessageBox!",L"Alert",MB_OKCANCEL,MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));

MessageBox示例

下面介绍一下如何修改Dialog中的默认按钮上的文字,这里只介绍系统定义的Dialog,如:CFileDialog。(Customer Dialog 也没有做这些的意义了,因为直接修改按钮的Caption 属性即可)。修改Dialog的默认按钮文字只需要在创建Dialog前加上一句:

SetThreadUILanguage(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));

即可,参数中MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)的使用和上文的使用方法中一样。


http://chatgpt.dhexx.cn/article/TYgj0nNr.shtml

相关文章

小程序在安卓手机时间格式显示英文的坑

今天说一个关于toLocaleDateString()的坑。 安卓手机picker 时间选择 默认时间显示英文 toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果。 但是这个方法有毒,在不同浏览器返回的格式是不一样的。 我这里是用来做了一个小程序里面…

element-UI中分页组件显示英文的解决方案

element-UI中分页组件显示英文的解决方案 写vue项目的时候 使用elementUI框架搭建模板 做了一个表格 发现分页控件是英文的 先看图 在看解决方法 出现的问题 解决方法 在main.js中引入中文 第一个是英文 第二个是中文 import locale from element-ui/lib/locale/lang/en im…

解决Echarts的toolbox只显示英文的问题

1、问题描述: echarts的toolbox只显示英文,前几天还是中文,很奇怪。 2、解决方案: 我们为toolbox中每一个配置项都添加title属性,title属性的值就是你想显示的值,随便写。toolbox的配置代码如下&#x…

搜狗输入法明明输入中文却显示英文怎么办

问题情况,下面明明是中文,打出来却显示英文 解决办法: 点击按键shift ctrl e,就可以解决了

在LCD上显示英文和汉字

LCD工作时会在内存中的显存(framebuffer)中取出若干个字节来表示一个像素点,如此循环的把显存中的点阵显示出来 下面直接贴出代码,在代码中有详细的注释: int main(int argc,char **argv) {unsigned char str[] &quo…

Element Plus的分页组件el-pagination显示英文

问题:使用Element Plus的分页组件el-pagination,切换每页显示数量时显示的是英文。原因:Element Plus 组件默认使用的是英语,显示中文的话需要做下配置,就是要引入element-plus里面的中文包。 解决: 第一种…

antd表格分页控件显示英文page

antd:【2021-1-26】解决表格分页控件英文显示的问题--使用之表格与分页控件的使用: 官网描述: Table组件pagination属性描述:object为Pagination组件api的属性与值,按官网指示查看Pagination配置表格的pagination Pagination组件…

解决element-UI中分页组件显示英文

问题: 在写vue项目的时候,发现分页控件显示英文 解决方案: src/main.js // 注释掉英文,替换成中文即可 import locale from element-ui/lib/locale/lang/en // 英文 import locale from element-ui/lib/locale/lang/zh-CN …

单片机控制LCD1602显示英文句子

LCD1602简介: 1602字符型液晶也叫1602液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。字符型液晶,能够同时显示16x02即32个字符。 它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符&…

引入ant组件分页时显示英文问题

1、在main.js中引入 import ant-design-vue/dist/antd.css Vue.prototype.zhCNzhCN 2、在APP.vue中写入全局组件 这样分页显示的就是中文啦 哈哈哈

Matlab编程之混沌系统李雅普诺夫指数分析

简介 李雅普诺夫指数是衡量混沌系统的一个重要参数,下面截图是对其具体解释。 代码实现: clc; clear; global kk;e0ina10;final210;for kkina1:1:final2kk InitialTime0; %Initial time FinalTime500; %Final time TimeStep0.1; %Time step RelTol1e-5…

李雅普诺夫指数

1. 李雅普诺夫指数 Lyaponuv(李雅普诺夫)指数表示相空间相邻轨迹的平均指数发散率的数值特征。又称李雅普诺夫特征指数,是用于识别混沌运动若干数值的特征之一。 李雅普诺夫指数常常被用来判定一个系统的混沌性,通过图像可以直观…

李雅普诺夫函数定义

李雅普诺夫函数-维基百科

李雅普诺夫优化定义

李雅普诺夫优化-维基百科

关于Lyapunov李雅普诺夫判据——系统原点平衡状态大范围渐近稳定

研一上学期在现代控制理论课程学习中,接触到了一种题型,“用李雅普诺夫判据判断系统稳定性”,其中判断给定非线性系统大范围渐近稳定上来就是四个步骤,记录一下自己的理解。 不论述完整内容,仅表达一些问题看法和思考…

求最大李雅普诺夫指数(Largest Lyapunov Exponents,LLE)的 Rosenstein 算法

文章目录 原始论文python 相关代码混沌系统的常见指标最大李亚普诺夫指数的含义算法流程图python 代码模块最近邻maximum Lyapunov exponentRANSAC 拟合曲线 例子:计算洛伦兹系统的最大李雅普诺夫指数 原始论文 M.T. Rosenstein, J.J. Collins, and C.J. De Luca. …

李雅普诺夫稳定性

在数学和自动控制领域中,李雅普诺夫稳定性(英语:Lyapunov stability,或李亚普诺夫稳定性)可用来描述一个动力系统的稳定性。如果此动力系统任何初始条件在 {\displaystyle x_{0}}转存失败重新上传取消 附近的轨迹均能维…

现代控制理论——李雅普诺夫第一方法

李雅普诺夫关于系统的稳定性的方法对于线性系统和非线性系统都是适用的 李雅普诺夫关于稳定性的定义 注意:运动轨迹与平衡状态之间的距离小于 对于完全能观或能控的系统,内部稳定和外部稳定其实是等价的。

李雅普诺夫定理及条件的解释

大数定律包含几个主要的定理: 弱大数定理(辛钦大数定理)以及伯努利大数定理。独立同分布的中心极限定理。李雅普诺夫定理。利莫夫-拉普拉斯大数定理。 其中最核心的定理便是李雅普诺夫定理。但是,该定理的前提条件晦涩难懂&…