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幾分鐘...

然後在新工程中就可以使用這個類了,主要就是這個類的對話框中的資源複製頭一次遇到.不敢獨享,拿出來跟新手們一起學習.


於是,當有已經創建好的對話框資源要添加到新工程中時:
(1)右鍵單擊新工程所在的解決方案添加“現有項目”把舊工程添加進來;
(2)切換到“資源視圖”並在舊工程對話框資源上右鍵“複製”;
(3)在新工程對話框資源上右鍵“粘貼”;
(4)現在就可以爲新對話框添加類了,順便把舊工程的響應函數拷貝過來;
(5)切換回“解決方案資源管理器”,右鍵舊工程“移除”。

 

發佈了17 篇原創文章 · 獲贊 8 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章