怎样把CFileDialog产生的Open或Save As对话框中的汉字如:"查找范围","文件名","文件类型","打开","取消",改成英文的?

解决方案 »

  1.   

    To : oyljerry(【勇敢的心】→ ㊣Yeah,又是T-Mac㊣
    你说的我不太明白?
      

  2.   

    我用的是中文的VC++,但是我的EXE要求支持多语言的,所以,必须想办法将中文的CFileDialog对话框界面改写成英文的,谁有办法?
      

  3.   

    我这边没有英语版本,不知道翻译的对不对
    class CFileDialogEng:public CFileDialog
    {
    public:
    CFileDialogEng(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
    LPCTSTR lpszDefExt = NULL,
    LPCTSTR lpszFileName = NULL,
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    LPCTSTR lpszFilter = NULL,
    CWnd *cWndParent = NULL):
    CFileDialog(bOpenFileDialog,lpszDefExt,lpszFileName,dwFlags,lpszFilter,cWndParent)
    {
    }
    void OnInitDone()
    {
    CWnd *pWnd,*pParent=GetParent();
    if(pParent)
    {
    pParent->SetWindowText(m_bOpenFileDialog?"Open":"Save as");
    #define SetEngText(id,txt) if(pWnd = pParent->GetDlgItem(id))pWnd->SetWindowText(txt)
    SetEngText(1,"&OK");
    SetEngText(2,"&Cancel");
    SetEngText(1089,"File &Name");
    SetEngText(1090,"File &Type");
    SetEngText(1091,"Find &In");
    } }
    };
      

  4.   

    两个反了,呵呵
    SetEngText(1089,"File &Type");
    SetEngText(1090,"File &Name");
      

  5.   

    oyljerry说的是子类化这个CFileDialog,然后用控件ID逐个设置Button和Static的文字。ID分别是:"查找范围",0x00000443
    "文件名",0x00000442
    "文件类型",0x00000441
    "打开",0x00000001
    "取消",0x00000002
      

  6.   

    To:pomelowu(羽战士) 
    我不太明白"子类化这个CFileDialog",具体是什么意思?
    CFileDialog FlDlg(TRUE);
    FlDlg就是子类化吗?
    另外怎样用控件ID,怎样获得按钮控件的ID?
      

  7.   

    隐藏的还有
    0x410 以只读方式打开(&R) 
    0x40e 帮助(&H)
      

  8.   

    隐藏的还有
    0x410 以只读方式打开(&R) 
    0x40e 帮助(&H)
      

  9.   

    我不太明白"子类化这个CFileDialog",具体是什么意思?
    见以上代码
    另外怎样用控件ID,怎样获得按钮控件的ID?
    用工具spy++可获得
      

  10.   

    #define SetEngText(id,txt)中的id 和 txt都是在哪定义的?
      

  11.   

    子类化:写一个从CFileDialog派生出来的类,参见vcmute(横秋)的代码用控件ID:用GetDlgItem从控件ID获得对应的CWnd *指针,再调用SetWindowText就行了
    class CFileDialogEng:public CFileDialog
    {
    public:
    CFileDialogEng(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
    LPCTSTR lpszDefExt = NULL,
    LPCTSTR lpszFileName = NULL,
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    LPCTSTR lpszFilter = NULL,
    CWnd *cWndParent = NULL):
        CFileDialog(bOpenFileDialog, lpszDefExt, 
        lpszFileName, dwFlags, lpszFilter, cWndParent)
    {
    } void OnInitDialog()
    {
    CFileDialog::OnInitDialog();
    GetDlgItem(0x000000001)->SetWindowsText("Open");// open button
    ///...
    }
    };
      

  12.   

    你好,pomelowu(羽战士) ,请问以下这些东西是在什么地方查到的."查找范围",0x00000443
    "文件名",0x00000442
    "文件类型",0x00000441
    "打开",0x00000001
    "取消",0x00000002
      

  13.   

    http://blog.csdn.net/pomelowu/archive/2005/03/25/329728.aspx
    可以用Spy++查看的
      

  14.   

    创建工程时选择语言为英文的DLL