法1:
 
在你的工程中添加另一个工程的rc文件,这时资源视图中就会出现两个rc,从后加的rc中拷贝资源到你自己工程的rc中就可以了。
 
 
 
法2:vc中如何拷贝一个工程的对话框资源到另一个工程中?
 
这是一个很专业也很有用的问题。其实VC的设计者早就为我们考虑了这个问题。
在VC6环境下,选择Class视图,选中想要克隆的对话框所对应的类,例如CAboutDlg,点击鼠标右键,选择Add to gallery。在新工程中选择Project菜单,选择Add Component and ActivX,你会看到多了一个文件夹(与上一个工程同名),进入该文件夹,选择*.ogx。选择Insert,你会发现原来的对话框被加入到新的工程中了!
 
补充:
.net下更简单,将原来的工程加到新的工程中,直接将对话框拷贝过去就行了!
 
 
法3:
VC++中如何复制对话框资源
第一步:用记事本打开原工程的.rc文件,找到想复制的对话框的信息,如下所示
 
IDD_UGMS_DIALOGDIALOGEX 0, 0, 320, 230
STYLE WS_CHILD | WS_VISIBLE
EXSTYLE WS_EX_APPWINDOW
FONT 9, "宋体"
BEGIN
  GROUPBOX      "学生信息",IDC_STATIC,10,8,290,200
  GROUPBOX      "",IDC_STATIC,25,55,205,120
  PUSHBUTTON    "最前(&F)",IDC_BUTTON_FIRST,30,30,35,15
  PUSHBUTTON    "向前(&B)",IDC_BUTTON_PRE,82,30,35,15
  PUSHBUTTON    "向后(&N)",IDC_BUTTON_NEXT,134,30,35,15
  PUSHBUTTON    "最后(&L)",IDC_BUTTON_LAST,186,30,35,15
  PUSHBUTTON    "查询(&Q)",IDC_BUTTON_QUERY,246,70,40,15
  PUSHBUTTON    "增加(&A)",IDC_BUTTON_ADD,246,96,40,15
  PUSHBUTTON    "修改(&M)",IDC_BUTTON_MODIFY,246,122,40,15
  PUSHBUTTON    "删除(&D)",IDC_BUTTON_DELETE,246,148,40,15
  PUSHBUTTON    "确定(&O)",IDC_BUTTON_OK,58,183,40,15
  PUSHBUTTON    "取消(&C)",IDC_BUTTON_CANCEL,150,183,40,15
  LTEXT          "学号:",IDC_STATIC,52,75,25,8
  LTEXT          "姓名:",IDC_STATIC,52,100,25,8
  LTEXT          "性别:",IDC_STATIC,52,125,25,8
  LTEXT          "入学时间:",IDC_STATIC,44,151,41,8
  EDITTEXT      IDC_EDIT_SID,91,72,95,15,ES_AUTOHSCROLL
  EDITTEXT      IDC_EDIT_SNAME,91,96,95,15,ES_AUTOHSCROLL
  EDITTEXT      IDC_EDIT_SSEX,91,120,95,15,ES_AUTOHSCROLL
  CONTROL        "DateTimePicker1",IDC_DATETIMEPICKER_SCOMEDATE,
                  "SysDateTimePick32",DTS_RIGHTALIGN | WS_TABSTOP,91,144,
                  95,15
  GROUPBOX      "",IDC_STATIC,25,19,205,35
END
 
上面代码中绿色背景代表的是要复制的对话框资源的ID,此段代码也就是.rc文件中记录的此对话框的信息,黄色背景中间的代码就是
 
相应对话框中添加的控件信息,只需将相应代码拷到新工程的相应.rc文件相应的ID对话框资源的BEGIN 和END之间即可;
 
第二步:打开原工程的FileView视图下的Header Files 下的resource.h文件,将其中相应ID的信息复制到新工程的resource.h中即可;
 
例如:
 
//复制的资源ID
#define IDC_BUTTON_FIRST              1000
#define IDC_BUTTON_PRE                1001
#define IDC_BUTTON_NEXT              1002
#define IDC_BUTTON_LAST              1003
#define IDC_BUTTON_QUERY              1004
#define IDC_BUTTON_ADD                1005
#define IDC_BUTTON_MODIFY              1006
#define IDC_BUTTON_DELETE              1007
#define IDC_BUTTON_OK                1008
#define IDC_BUTTON_CANCEL              1009
#define IDC_EDIT_SID                  1010
#define IDC_EDIT_SNAME                1011
#define IDC_EDIT_SSEX                1012
#define IDC_DATETIMEPICKER_SCOMEDATE    1013
 
第三步:记得不要遗漏啊,如有ID重复,可以更改一下即可!
 
 
法4:
 
今天碰到模块移植问题了,自己做的对话框类(继承于CDialog)要移植到目标工程中.在网上搜了几个帖子发现都说的很生涩.问了我们的技术总监之后总算解决这个问题了.
 
      问题:把一个MFC SDI工程中的一个对话框资源和类拷贝到另一个MFC SDI中.
 
      1.在VC6中打开老的工程,在工作区Resource标签页中选中Dialog文件夹下的资源文件(就是双击后会出现编辑窗口界面的那个东西),按Ctrl+C(Edit->Copy也一样).
 
      2.关闭当前工程,注意不要关闭VC6,打开目标工程(File->OpenWorkspace),然后选中工作区的Resource标签页中的Dialog文件夹,然后按Ctrl+V(Edit->Paste也一样).好了,对话框拷贝过来了.
 
      3.将对话框类的cpp h文件拷贝到目标工程中(不详细说了,往当前工程添加文件)
 
      4.打开复制过来的类cpp和h文件,删除没用的头文件(老工程相关的),并且在.h文件中添加文件包含
 
#include "Resource.h"
第四步很关键,老工程中根本就没有这个文件包含,可是移植之后必须手动添加头文件包含.因为这个问题卡了10几分钟...
当你用资源ID时(通常资源编辑器编辑的资源ID都在resource.h中),如果没有包含CWinApp的派生类所在的头文件就会出错,你看一下它的头文件里,包含了这个文件, 而向导生成的类,它的实现文件都有包含CWinApp派生类所在的头文件的
 
然后在新工程中就可以使用这个类了,主要就是这个类的对话框中的资源复制头一次遇到.不敢独享,拿出来跟新手们一起学习.
 
 
于是,当有已经创建好的对话框资源要添加到新工程中时:
(1)右键单击新工程所在的解决方案添加“现有项目”把旧工程添加进来;
(2)切换到“资源视图”并在旧工程对话框资源上右键“复制”;
(3)在新工程对话框资源上右键“粘贴”;
(4)现在就可以为新对话框添加类了,顺便把旧工程的响应函数拷贝过来;
(5)切换回“解决方案资源管理器”,右键旧工程“移除”。
 

VC++中如何复制对话框资源的更多相关文章

  1. VC++中复制对话框资源 之较好方法之一

    资源对话框的编写有时候较为麻烦,这里我成功实现了这个方法的可用性,具体如下: 碰到模块移植问题了,自己做的对话框类(继承于CDialog)要移植到目标工程中.在网上搜了几个帖子发现都说的很生涩.   ...

  2. VC++中用API调用对话框资源

    关键技术: 对于资源的载入须要几个API函数,以下分别介绍这几个API函数. a) FindResource 用来在一个指定的模块中定位所指的资源,语法例如以下: HRSRC FindResource ...

  3. Windows开发进阶之VC++中如何实现对话框的界面重绘

    技术:Windows 系统+Visual studio 2008   概述 应用程序界面是用户与应用程序之间的交互的桥梁和媒介,用户界面是应用程序中最重要的组成部分,也是最为直观的视觉体现.对用户而言 ...

  4. Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法

    详细说明:Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法.该方法可以在运行时在内存中直接建立对话框资源,使用起来更为灵活.适用于多个开发项目共享有界面的公用程序模 ...

  5. mfc 在VC的两个对话框类中传递参数的三种方法

    弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...

  6. VC++ 使用WebBrowser控件中html文件以资源形式加载

    . . . . //加载资源文件中的HTML,IDR_HTML1就是HTML文件在资源文件中的ID wchar_t self_path[MAX_PATH] = { }; GetModuleFileNa ...

  7. vc中改变对话框的背景色

    ---- 笔者曾在<软件报>2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问:一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对 ...

  8. VC++学习之VC中常见问题

    VC++学习之VC中常见问题 (1)为什么某个类突然在工作区间里面突然看不见了? 只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了 ( ...

  9. VC中GetLastError()获取错误信息的使用,以及错误代码的含义

    转载:http://www.seacha.com/article.php/knowledge/windows/mfc/2011/0423/335.html VC中GetLastError()获取错误信 ...

随机推荐

  1. Linux CPU Load Average

    理解Linux系统负荷 LINUX下CPU Load Average的一点研究 Linux load average负载量分析与解决思路 Understanding Linux CPU Load - ...

  2. hdu 2771(uva 12171) Sculpture bfs+离散化

    题意: 给出一些边平行于坐标轴的长方体,这些长方体可能相交.也可能相互嵌套.这些长方体形成了一个雕塑,求这个雕塑的整体积和表面积. 题解: 最easy想到直接进行bfs或者dfs统计,但此题的麻烦之处 ...

  3. VS2013 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决办法

    此模板尝试加载组件程序集 NuGet.VisualStudio.Interop   分析错误 既然错误信息提示模板尝试加载组件程序集,那说明NuGet.VisualStudio.Interop程序集不 ...

  4. Enigma Virtual Box:生成可执行文件。

    Enigma Virtual Box Enigma Virtual Box[1]  是软件虚拟化工具,它可以将多个文件封装到应用程序主文件,从而制作成为单执行文件的绿色软件.它支持所有类型的文件格式, ...

  5. C# Bitmap转化为BitmapImage方法

    public BitmapImage BitmapToBitmapImage(Bitmap bitmap) { Bitmap bitmapSource = new Bitmap(bitmap.Widt ...

  6. max导出模型插件

    首先,需要做好如下的准备工作:1. 安装一个完整版本的3D MAX与Visual Stdio.我安装的是3D MAX 2012,最好是找一个完整的版本,因为完整的版本中有很多的学习资料与sdk供学习, ...

  7. Mac eclipse 连接安卓手机调试 adb

    echo 手机厂商号 >>  ~/.android/adb_usb.ini  ~ echo 0x18d1 >>  ~/.android/adb_usb.ini 重启系统即可 环 ...

  8. Asp.net中文本框全选的实现

    一.鼠标滑过textbox全选 前台: <asp:TextBox runat="server" onMouseOver="this.focus();this.sel ...

  9. django test模块

    今天试了试django自带的test模块,断点执行到一下代码中时发现一点儿小问题: def _create_test_db(self, verbosity, autoclobber): "& ...

  10. c++静态全局,局部变量---18

    原创博文,转载请标明出处--周学伟  http://www.cnblogs.com/zxouxuewei/ static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static. ...