我想让我的工具栏上的一个按钮的提示有两种,一种中文的,一种英文的,可以切换,但是一个ID对应的字符串只有一个,怎么才能实现中英文提示的切换?最好不用新的按钮ID

解决方案 »

  1.   

    自己用SetButtonText逐个按钮设置。
      

  2.   

    将英文字符串资源封装到DLL中,切换时载入DLL,设置并重新更新一下就可以啦。
      

  3.   

    那怎么对应起来呢?
    我插入了一个string table的副本,把ID_FILE_NEW改成英文,但提示还是中文啊,ID_FILE_NEW对应的还是中文string table
      

  4.   

    使用多语言的资源时,系统会根据当前操作系统的默认语言来读取相应的语言资源,你到英文版操作系统中运行就能看到英文提示了。如果你是用CString来读取资源,你可以看看LoadString有三种形态,其中一种有三个参数,第三个参数就能设置语言ID,设置成英语即可,否则它用系统默认语言。
    如果你是用LoadResource来读取资源,那么使用FindResourceEx来定位资源,也有语言ID参数。
      

  5.   

    To jameshooo:
         我的整个String Table都要变,加载String Table的时候怎么填写资源名称呢?
          HRSRC FindResourceEx(
             HMODULE hModule, // resource-module handle
             LPCTSTR lpType,  // pointer to resource type
             LPCTSTR lpName,  // 这一项怎么写?
             WORD wLanguage   // resource language
             );
      

  6.   

    我要改变的是整个Table,用ID的话只能一个一个改啊
      

  7.   

    这好像是个设计问题啊有很多方法
    如果仅限于楼主所说,可以这样
    在一个StringTable的项里头,保存中文提示和英文提示,中间特殊符号分开,比如“\r\n", 则确定按钮就是: ”OK\r\n确定“
    程序中根据ID,把那个字符串项取出来,再根据当前要是现实中文还是英文,解析出中文或英文提示,设置到工具栏上好了
      

  8.   

    将资源insert copy一份。然后编译的时候通过编译开关即可编出不同语言的。