MessageBoxEx用法
来源:互联网 发布:软件开发基础 编辑:程序博客网 时间:2024/06/03 17:52
今天突然碰到一个来自HUAWEI的“变态”需求,一个自解压小工具,同事是用NSIS做的,就释放了几个文件,然后弹一个对话框提示修复完成,但是HUAWEI要求该对话框不论是在中文操作系统还是英文操作系统上都要显示为英文。同事开始问我NSIS如何设置语言,后来看了下,NSIS的语言设置是处理其安装向导页面的显示语言的,而现在要求的是用MsgBox 弹窗提示文字全部为英文,于是感觉到,::MessageBox应该有高级点的用法,可以设置显示语言的,
查阅MSDN,发现
int WINAPI MessageBox( _In_opt_ HWND hWnd, _In_opt_ LPCTSTR lpText, _In_opt_ LPCTSTR lpCaption, _In_ UINT uType);
这里只有四个参数,没有设置语言选项的参数,于是看了下跟这个相关的APISee also
- Reference
- MessageBoxEx
- MessageBoxIndirect
- SetForegroundWindow
int WINAPI MessageBoxEx( _In_opt_ HWND hWnd, _In_opt_ LPCTSTR lpText, _In_opt_ LPCTSTR lpCaption, _In_ UINT uType, _In_ WORD wLanguageId);
要的正是这个,于是接着看wLanguageId相关的
To specify a language other than the current language, use the MAKELANGID macro to create this parameter. For more information, see MAKELANGID.
WORD MAKELANGID( USHORT usPrimaryLanguage, USHORT usSubLanguage);
0x0004Chinese (zh)0x04LANG_CHINESE_SIMPLIFIEDSimplified (Hans)0x02SUBLANG_CHINESE_SIMPLIFIED0x7C04Chinese (zh) LANG_CHINESE_TRADITIONALTraditional (Hant)0x01SUBLANG_CHINESE_TRADITIONAL0x0483Corsican (co)0x83LANG_CORSICANFrance (FR)0x01SUBLANG_CORSICAN_FRANCE0x001ACroatian (hr); see note 20x1ALANG_CROATIANNeutral 0x101ACroatian (hr)0x1aLANG_CROATIANBosnia and Herzegovina, Latin (BA)0x04SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN0x041A Croatia (HR)0x01SUBLANG_CROATIAN_CROATIA0x0405Czech (cs)0x05LANG_CZECHCzech Republic (CZ)0x01SUBLANG_CZECH_CZECH_REPUBLIC0x0406Danish (da)0x06LANG_DANISHDenmark (DK)0x01SUBLANG_DANISH_DENMARK0x048CDari (prs)0x8CLANG_DARIAfghanistan (AF)0x01SUBLANG_DARI_AFGHANISTAN0x0465Divehi (dv)0x65LANG_DIVEHIMaldives (MV)0x01SUBLANG_DIVEHI_MALDIVES0x0813Dutch (nl)0x13LANG_DUTCHBelgium (BE)0x02SUBLANG_DUTCH_BELGIAN0x0413 Netherlands (NL)0x01SUBLANG_DUTCH0x0C09English (en)0x09LANG_ENGLISHAustralia (AU)0x03SUBLANG_ENGLISH_AUS0x2809 Belize (BZ)0x0ASUBLANG_ENGLISH_BELIZE0x1009 Canada (CA)0x04SUBLANG_ENGLISH_CAN0x2409 Caribbean (029)0x09SUBLANG_ENGLISH_CARIBBEAN0x4009 India (IN)0x10SUBLANG_ENGLISH_INDIA0x1809 Ireland (IE);see note 30x06SUBLANG_ENGLISH_EIRE0x1809 Ireland (IE);see note 30x06SUBLANG_ENGLISH_IRELAND0x2009 Jamaica (JM)0x08SUBLANG_ENGLISH_JAMAICA0x4409 Malaysia (MY)0x11SUBLANG_ENGLISH_MALAYSIA0x1409 New Zealand (NZ)0x05SUBLANG_ENGLISH_NZ0x3409 Philippines (PH)0x0DSUBLANG_ENGLISH_PHILIPPINES0x4809 Singapore (SG)0x12SUBLANG_ENGLISH_SINGAPORE0x1c09 South Africa (ZA)0x07SUBLANG_ENGLISH_SOUTH_AFRICA0x2C09 Trinidad and Tobago (TT)0x0BSUBLANG_ENGLISH_TRINIDAD0x0809 United Kingdom (GB)0x02SUBLANG_ENGLISH_UK0x0409 United States (US)0x01SUBLANG_ENGLISH于是做了个简单的测试
::MessageBoxEx(NULL, NULL, NULL, NULL, MAKELANGID (LANG_ENGLISH, SUBLANG_ENGLISH));
管用,“确定”显示为OK,要的就是这个效果
兴奋中,本能的想法就是写个NSIS的插件,调用下这个带EX的API,
后来上了个厕所回来发现自己刚才傻了,直接在NSIS调用这个API就行了嘛
1 0
- MessageBoxEx用法
- 用法
- ,, 用法
- 用法
- 用法
- #用法
- ??用法
- !!用法
- CustDialog用法 SimpleAdapter 用法
- hibernate_Restrictions用法 hibernate_Restrictions用法
- extern用法+assert用法
- getParameterValues用法
- rpm用法
- Log4j用法
- NameSpace用法
- sp_executesql 用法
- ShellExecute用法
- getParameterValues用法
- 常用Java静态代码分析工具的分析与比较
- C. Anya and Smartphone Codeforces Round #293 (Div. 2)
- java代码行数统计工具
- MyEclipse恢复已删除的文件
- ibatis对存储过程的调用
- MessageBoxEx用法
- Linux和 Unix 查看文件及文件夹大小
- mysql占用CPU过高的解决办法(添加索引)
- 图的表示javascript
- 如何让ListCtrl的CheckBox只有一个处于选中状态
- MYSQL中常用的强制性操作(例如强制索引)
- JAVA菜鸟入门(16) callback函数
- 关于js的深拷贝
- 如何提高MYSQL数据库的查询统计速度 select 索引应用