zoukankan      html  css  js  c++  java
  • VC++中如何复制对话框资源

    法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)切换回“解决方案资源管理器”,右键旧工程“移除”。
     
  • 相关阅读:
    吴裕雄--天生自然JAVA图形界面编程学习笔记:单选按钮JRadioButton
    (001)springboot中测试的基础知识以及接口和Controller的测试
    (029)Spring Boot之监测与度量
    (028)Spring Boot之日志处理
    (027)Spring Boot之自定义starter
    (026)Spring Boot之aop
    (025)Spring Boot之JdbcTemplate与Transactional事务处理
    (024)Spring Boot之配置数据源
    (023)Spring Boot之修改内嵌tomcat的3种方式
    (022)Spring Boot之异常处理的两种方式
  • 原文地址:https://www.cnblogs.com/Yogurshine/p/3710566.html
Copyright © 2011-2022 走看看