乙個對話方塊類呼叫(訪問)另乙個對話方塊類的成員變數

2021-10-25 18:27:23 字數 1108 閱讀 6106

mfc中乙個對話方塊類cdailog1要訪問另外乙個對話方塊類cdailog2物件的成員變數,這就需要獲得對話方塊類cdailog2的物件的指標,有好幾種方法可以實現,如維護乙個單例模式、設定靜態變數等。

本文設定以靜態變數的方法為例,實現對兩個對話方塊之間資料訪問。

一、建立mfc對話方塊程式

1.首先建立乙個mfc對話方塊應用程式,命名為test工程.

2.對話方塊本身有乙個主介面(ctestdlg對話方塊),那我們再新增乙個新介面c***dlg.

3.在主對話方塊(ctestdlg)上新增乙個picture控制項 ,對應變數名為imageshowrect。

二、在ctestdlg.**件中,新增對話方塊指標變數的宣告

1   static ctestdlg *ptestdlg;
三、在ctestdlg .cpp檔案中,寫上一行初始化**,直接初始化為空

1   ctestdlg *ctestdlg::ptestdlg = null;  //注意要寫在類外,不要寫在類實現函式裡面。
注意:

由於這個指標是靜態的,我們需要在類外初始化。

四、然後要在ctestdlg.cpp檔案的oninitdialog()函式裡面寫上如下一句**

1   ptestdlg = this;  //為這個之前定義的指標變數賦值為主對話方塊指標
*說明:

現在我們只要在其他的類裡面獲得這個靜態指標,就可以訪問這個類裡面的所有資料了~~~~*

五、獲得靜態指標

假設,我們想在c***dlg類中訪問ctestdlg類的m_imageshowrect變數,只需要在c***dlg.cpp檔案的具體某個功能的實現函式中新增如下**

void  c***dlg::showimage()

說明:

m_imageshowrect為主對話方塊testdlg中picture控制項的**變數。

end!

將乙個對話方塊直接貼到另乙個對話方塊上

假設要貼的對話方塊是cgroup,被貼的是b 第一步 在b類的protected中新增cgroup m lpgroup 第二步 在b類的oninitdialog中新增以下 新增按鈕組到對話方塊 m lpgroup.create idd group,this m lpgroup.setwindowpo...

如何在乙個對話方塊中呼叫另乙個對話方塊裡的變數

問 如何在乙個對話方塊中使用另乙個對話方塊中的變數?若有兩個對話方塊,在乙個對話方塊中定義了乙個串列埠類的變數,在切換到另乙個對話方塊時我還想使用這個變數對串列埠進行操作,該如何使用呢?解決方案1 在dialog2中定義乙個set方法,比如 void setparam ccommobj pcomm ...

對話方塊程式向另乙個對話方塊傳送訊息

兩個不同的程式之間傳送訊息,這兩個程式都是對話方塊程式。先查詢另外乙個程式的視窗控制代碼,然後通過控制代碼傳送訊息。1 新建乙個基於對話方塊的mfc應用程式searchtest,刪除對話方塊中原有控制項。2 定義乙個訊息巨集 define um use message wm user 100 3 在...