3个回答
展开全部
1、把要复制的对话框的头文件和实现文件(.h文件和.cpp文件)复制到新工程文件夹下,在新工程中选择Preject->Add To Project->Files,选中对话框的头文件和实现文件确定;
2、用记事本打开原工程的资源文件(.rc文件),找到对话框定义位置,把所有相关内容复制到新工程的.rc文件相应处,对话框在资源文件中的定义一般是以下形式的(以关于对话框为例):
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "关于 TempCtrl"
FONT 9, "宋体"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "TempCtrl 1.0 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "版权所有 (C) 2011",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "确定",IDOK,178,7,50,14,WS_GROUP
END
3、将新工程编译运行,会出现放多变量未定义错误,这是因为复制过来的对话框中有很多控件,它们的ID未定义。依次找到这些ID,打开resource.h,将之定义即可,一般是如下形式:
#define IDC_EDIT_TEMP1 1023
#define IDC_BUTTON_START1 1024
#define IDC_COMBO_AI 1025
2、用记事本打开原工程的资源文件(.rc文件),找到对话框定义位置,把所有相关内容复制到新工程的.rc文件相应处,对话框在资源文件中的定义一般是以下形式的(以关于对话框为例):
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "关于 TempCtrl"
FONT 9, "宋体"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "TempCtrl 1.0 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "版权所有 (C) 2011",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "确定",IDOK,178,7,50,14,WS_GROUP
END
3、将新工程编译运行,会出现放多变量未定义错误,这是因为复制过来的对话框中有很多控件,它们的ID未定义。依次找到这些ID,打开resource.h,将之定义即可,一般是如下形式:
#define IDC_EDIT_TEMP1 1023
#define IDC_BUTTON_START1 1024
#define IDC_COMBO_AI 1025
追问
第二步复制.rc文件的时候,是只把dialog里面不相同的部分复制过去么?还是Menu 啊什么其他的也要复制??
还有,某书上也写过这个,是先把工程1添加到工程2里,然后在资源页面把1工程中的对话框拖到2里面,然后在删除工程1.然后把相应对话框的.h .cpp文件复制过来。我试了一下,编译是木有问题的,但是classwizard不可用了。。。。它灰了。。。。==!!!
追答
你不是只要复制对话框吗?那就不用复制Menu
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "关于 TempCtrl"
FONT 9, "宋体"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "TempCtrl 1.0 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "版权所有 (C) 2011",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "确定",IDOK,178,7,50,14,WS_GROUP
END
把上面这段复制过去就行,注意不要少行,比如END这一行
展开全部
首先要生成一个*.ogx的文件。
方法:打开包含有所要加的对话框资源的工程(别的工程)。
在试图资源(ClassView)中鼠标右键点击所需的对话框的类(也可以是所需的类)
这时,你会看到右键菜单中有个“Add to Gallery”的选项。
选择这个选项,则*.ogx文件生成。
生成的文件名会类似你的对话框的类名,只不过中间会多出的空格(这无关紧要)
关键是此文件生成在什么地方!
一般情况下是:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Gallery
\别的工程名 目录下
2010-8-5:今天在vc2003中想使用此方法,结果出现无法将文件.ogx插入到工具箱,没有被识别为com工具箱。而且在.net中也没有“Add to Gallery”选项,看来此方法只适用于vc6.0
2、接着就是Insert这个*.ogx的文件。
也就是Insert这个对话框资源和这个对话框类
打开所要加入的工程,选择
Project->Add To Project->components and controls...
这时打开的是一个对话框,默认的打开目录就是:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Gallery
在对话框中选择进入“别的工程名”的目录,你就会看到那个 *.ogx的文件,
选择它,然后Insert. 最后关闭对话框。
这时你就会看到那个对话框的类已经出现在你的工程中,
再到资源ResourceView中的Dialog中看看吧,那个对话框的资源已经出现。
方法:打开包含有所要加的对话框资源的工程(别的工程)。
在试图资源(ClassView)中鼠标右键点击所需的对话框的类(也可以是所需的类)
这时,你会看到右键菜单中有个“Add to Gallery”的选项。
选择这个选项,则*.ogx文件生成。
生成的文件名会类似你的对话框的类名,只不过中间会多出的空格(这无关紧要)
关键是此文件生成在什么地方!
一般情况下是:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Gallery
\别的工程名 目录下
2010-8-5:今天在vc2003中想使用此方法,结果出现无法将文件.ogx插入到工具箱,没有被识别为com工具箱。而且在.net中也没有“Add to Gallery”选项,看来此方法只适用于vc6.0
2、接着就是Insert这个*.ogx的文件。
也就是Insert这个对话框资源和这个对话框类
打开所要加入的工程,选择
Project->Add To Project->components and controls...
这时打开的是一个对话框,默认的打开目录就是:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Gallery
在对话框中选择进入“别的工程名”的目录,你就会看到那个 *.ogx的文件,
选择它,然后Insert. 最后关闭对话框。
这时你就会看到那个对话框的类已经出现在你的工程中,
再到资源ResourceView中的Dialog中看看吧,那个对话框的资源已经出现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在resource.h文件和资源的.rc(扩展名为RC)的文件中找到该对话框的相关ID和所以控件ID,复制到新的resource.h文件和.rc文件中;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询