我现在做多语言版本的软件,英文版资源在当前项目中编辑好,跟一般的开发一样,然后在另外建一个dll的项目,来专门编辑中文版的各对话框资源,对话框ID和各元件ID都一样,程序在启动的时候,会根据不同的语言设置,加载不同的dll,来取得各对话框资源。
现在其它所有的资源显示都可以,但今天在所有资源里加了一个新对话框,ID与英文版里都一样,但就是在中文版里无法显示出这个对话框,DoModal()函数返回值为-1,据MSDN讲,这表示不能生成对话框,想请教一下什么原因会造成这种情况,我保证对话框ID与英文版是一样的,只是#define的值不一样,但如果在resource.h中将此值改一样,却提示“试图执行不支持的动作”。
请问各位是否有遇到过对话框无法显示出来的问题,讨论一下原因何在?
现在其它所有的资源显示都可以,但今天在所有资源里加了一个新对话框,ID与英文版里都一样,但就是在中文版里无法显示出这个对话框,DoModal()函数返回值为-1,据MSDN讲,这表示不能生成对话框,想请教一下什么原因会造成这种情况,我保证对话框ID与英文版是一样的,只是#define的值不一样,但如果在resource.h中将此值改一样,却提示“试图执行不支持的动作”。
请问各位是否有遇到过对话框无法显示出来的问题,讨论一下原因何在?
//{{AFX_DATA(CErrMsgInfo)
enum { IDD = IDD_SHOW_ERR };這是在類的頭文件裡,VC自動生成的,它也只是引用這個名稱IDD_SHOW_ERR而已,與數據值沒有關系。而奇怪的是,如果我在resource.h文件裡將原本的#define IDD_SHOW_ERR 323更改為#define IDD_SHOW_ERR 351 (英文版裡是351),運行後,居然會報“試圖運行不支持的功能”的錯誤。另外,我在資源裡新增加的BMP,ICON等資源,都可以正常使用的,就是這個對話框不行。