VC怎样从资源中生成对话框类代码?

来源:百度知道 编辑:UC知道 时间:2024/07/02 09:42:26
我用ResEdit编辑了一个资源文件1.rc,里面有一个对话框。然后我把它加入一个VC6工程2.dsp。请问我怎样才能从相应的资源中生成对话框类代码?

我试了new class,但是在dialogID那一栏里没有我的对话框ID。但是我在工程自带的资源文件里加入一个对话框,就可以用new class生成类代码。
PS:注意我使用外部软件建立了一个资源文件加入了工程,而不是用外部软件之间编辑了工程本身的rc文件

打开资源视图里面的对话框,双击就可以生成类的代码。

你这个问题不是构建的问题,是资源定位错误。要么将1.rc与2.dsp中的1.rc放在一个句柄里,要么构建2个资源句柄。
方法有很多。
1.将你的1.rc文件单独构建一个资源型的dll工程,编译成一个dll文件,然后在2.dsp中,LoadLibrary,得到dll模块句柄(也就是资源1在内存中句柄)。通过AfxSetResourceHandle 暂时切换线程资源句柄,再使用 CreateDialog 就能实现了,CDialog类也应该有通过ID参数构建的函数,具体看MSDN。

2.手工编辑 2.dsp中的资源文件,应该就是 2.rc,(2.rc上右键,“打开方式。。。”,选源代码编辑器)。同时按照同样方法打开 1.rc 文件(可以先加入2.dsp工程),将 1.rc中DIALOGEX 定义的那一段拷贝到 2.rc 中去,观察一下 2.rc文件的结构,就知道放哪里了。然后在 resource.h中添加,1.rc里面的ID,注意ID不要和 2.rc中原有的ID冲突。
这样就可以,在VS的资源管理器中看到并编辑1.rc资源了。当然如果ID很多,就很复杂了,要仔细对照修改。

3.类似方法2,打开 2.rc文件,找到#include "res\\2.rc2" 在下面加一行
#include "1.rc",同时修改resource.h文件里面的ID,防止ID不要冲突。这个方法我没用过,想来是可行的。

右键你的对话框------添加类

new class,但是在dialogID那一栏里没有我的对话框ID,可以动态使用,在使用的时候指定资源id,而不一定出现在你的资源表中。

打开资源视图里面的对话框,双击就可以生成类的代码.