我有一个使用 AfxMessageBox 显示消息框的 MFC 应用程序。该应用程序本身允许最终用户更改用户界面语言。在内部,它是通过使用 LCID(或FindResourceEx API)加载资源来实现的。我的问题是我似乎无法让 AfxMessageBox 采用 LCID 来更改确定、取消按钮等的语言。这也会影响文件和文件夹打开对话窗口。
任何想法如何做到这一点?
PS。这种方法必须在 Windows XP 及更高版本下工作。
我有一个使用 AfxMessageBox 显示消息框的 MFC 应用程序。该应用程序本身允许最终用户更改用户界面语言。在内部,它是通过使用 LCID(或FindResourceEx API)加载资源来实现的。我的问题是我似乎无法让 AfxMessageBox 采用 LCID 来更改确定、取消按钮等的语言。这也会影响文件和文件夹打开对话窗口。
任何想法如何做到这一点?
PS。这种方法必须在 Windows XP 及更高版本下工作。
根据这篇 SO 文章,没有为此的标准函数,有一个 CodeProject 文章“ Localizing System MessageBox ”的链接,其中包含使用 Windows Hook 的 DLL 的源代码(它在 c# 中,但似乎很简单,可以用 C++ 重写)这样您就可以为 MessageBox 按钮提供自己的文本;甚至在同一篇文章的讨论部分中还建议调整文本按钮的大小。