代码之家  ›  专栏  ›  技术社区  ›  anand

如何本地化win32对话框?

  •  0
  • anand  · 技术社区  · 15 年前

    我正在使用各种控件(如静态文本、复选框等)开发Win32对话框,所有字符串都需要针对不同的语言进行本地化。 我为我们国际设计了对话。但当我放置本地化字符串时,这些字符串不合适,我必须更改每个intl的布局。

    有更好的办法吗?

    我可以用一个布局创建一个对话框来处理所有Intsl吗???

    2 回复  |  直到 15 年前
        1
  •  1
  •   Chris Becke    15 年前

    我记得在某个地方读到过,在MS的GUI资源的初始布局中,他们最初用德语创建对话框,然后至少用英语和日语复查布局。

    一旦对话框布局容纳了这三种语言,它通常不需要进一步的布局更改。

    你可以考虑使用 ShowHTMLDialog . 如果你能想出让数据进出对话框的黑魔法,HTML确实有自动伸缩以适应文本边界的控件的优势。

        2
  •  0
  •   Brian R. Bondy    15 年前

    在过去,我实现了以下派生类 CDialog 打电话 CLanguageDialog . 然后我打电话来 loadLanguage() OnInitdialog() . 那么我的应用程序中的所有对话框都将从 语言对话 而不是 C对话框 .

    void CLanguageDialog::loadLanguage()
    {
        CWnd *pChild = this->FindWindowEx(this->m_hWnd, NULL, NULL, NULL);
    
        while(pChild)
        {
            theApp.languageLoader.loadStringForWnd(pChild);
            pChild = pChild->GetNextWindow();
        }
    }
    
    推荐文章