我有一个使用AfxMessageBox来显示消息框的MFC应用程序。该应用程序本身允许最终用户更改用户界面语言。在内部,它是通过使用LCID(或FindResourceEx API)加载资源来实现的。我的问题是我似乎无法使AfxMessageBox接受LCID来更改OK,Cancel按钮等的语言。这也影响了Fil​​e和“文件夹打开”对话框窗口。

任何想法如何做到这一点?

PS。此方法必须在Windows XP及更高版本下有效。

最佳答案

根据this SO article的解释,没有标准功能,有指向CodeProject文章“ Localizing System MessageBox”的链接,该文章带有DLL的源代码(在c#中,但看起来很简单,可以用C ++重写),该文件使用Windows Hook这样您就可以为MessageBox按钮提供自己的文本;在同一篇文章的讨论部分甚至对sizing buttons to the text提出了建议。

08-27 01:52