现在的位置: 首页 > 综合 > 正文

如何将已有的资源添加到如今工程中

2014年01月06日 ⁄ 综合 ⁄ 共 1563字 ⁄ 字号 评论关闭

 

      在MFC编程中,为了节约时间,方便操作,有时候需要将现有工程的资源直接拿来为正在编写的工程服务。

设有工程A,现在要新建一个工程B,在B要见一个和A里面一样的的资源,比方说对话框资源,为了避免重现创建带来的各种重复和麻烦,我们可以直接引用A中编辑好的资源,从而大大节省了时间,具体步骤如下:

(1)、在A工程下有编辑好的对话框资源,资源是一个登陆对话框,如图

 

好,现在我们记住这个对话框的相关信息,比如ID:登陆界面····等等

打开工程所在文件目录,找到XXX.rc文件,用记事本打开,找到与你的对话框相关的信息,如下:

// Dialog

//

 

IDD_LOGIN_DLG DIALOGEX 0, 0, 143, 58

STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU

CAPTION "登陆界面"

FONT 8, "MS Shell Dlg", 400, 0, 0x1

BEGIN

    EDITTEXT        IDC_ID_EDIT,45,7,83,12,ES_AUTOHSCROLL

    EDITTEXT        IDC_PASS_EDIT,45,20,83,12,ES_PASSWORD | ES_AUTOHSCROLL

    LTEXT           "用户名:",IDC_STATIC,9,9,33,8

    LTEXT           "密    码:",IDC_STATIC,9,23,33,8

    PUSHBUTTON      "登录",IDOK,75,38,54,14

    PUSHBUTTON      "取消",IDCANCEL,22,38,52,14

END

 

将其拷贝下来;然后打开我们现建的工程B,同样找到B的XXX.rc,用记事本打开,在以前对话框下,把刚刚拷贝的文本粘贴下来,保存一下。

(2)OK,现在打开我们的工程B,就会发现已经将登陆对话框资源添加进来了。编辑一下,会提示你控件的ID没有定义,为什么?这是因为在A工程里面我们已经在其resource.h里面我们已经给弓箭ID进行定义了,但是B里面还没有,

A中定义如下://

#define IDM_ABOUTBOX                    0x0010

#define IDD_ABOUTBOX                    100

#define IDS_ABOUTBOX                    101

#define IDD_DLGTEST_DIALOG              102

#define IDR_MAINFRAME                   128

#define IDD_LOGIN_DLG                   130

#define IDC_ID_EDIT                     1007

#define IDC_PASS_EDIT                   1008

不要急,我们根据登陆窗口中需要的控件,将其ID的定义添加进去,这里把一下相关的

#define IDD_LOGIN_DLG                   130

#define IDC_ID_EDIT                     1007

#define IDC_PASS_EDIT                   1008

拷贝到B中的resource.h 里面,注意,避免与已有ID号重复!!

(3)经过上面的步骤,基本已经达到我们的目的了,但是可能会出现在这样一种问题就是,在A中的空间中的Caption在B中现实的是乱码了,这种情况下,我们就需要手动的更改一下控件的Caption拉,按照自己空间功能,命名!OK,大功告成!!

 

抱歉!评论已关闭.