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 在...