vc無模式對話方塊的問題,VC無模式對話方塊的問題

時間 2022-02-01 17:46:42

1樓:負家子弟

因為對話方塊在create或domodal之前是沒有例項化的,所以你的dlg.m_list.函式();這種操作就是對一個不存在的物件的操作所以就不對。

這種情況我建議你在資源編輯器裡將對話方塊的visuale屬性取消。每次要呼叫這個對話方塊之前用create生成一個非模態對話方塊,再用dlg.m_list.

函式();來設定你要顯示的資訊,設完之後用dlg.showwindow(sw_show);把它顯示出來就完了。

還有一個方法就是在對話方塊類裡面建一個資料成員用來存放你要顯示的資料,比如一個cstring,在對話方塊的oninitdlg函式裡實現m_list.函式();來載入這些資訊。然後domodal也行,create也行。

或者把資料放在剪貼簿oninitdlg函式每次都去讀剪貼簿。

其實問題很簡單,多試幾次就可以試出來了。

2樓:匿名使用者

結構是主對話方塊(按鈕)->開啟對話方塊1(點按鈕)->開啟對話方塊2"

根據順序,主對話方塊包含對話方塊1的標頭檔案,對話方塊1又包含對話方塊2的標頭檔案,這個是不用懷疑的.至於你說的問題,是想通過對話方塊2裡控制元件的輸入傳遞到對話方塊1呢,還是就是單一的要重新整理對話方塊1的資料?

前者可以這樣:在對話方塊2類裡定義成員變數,比如對話方塊2中是個文字框,就可以為其新增成員變數csting str,這樣在對話方塊關閉時updatedata(false)一下.str就保留了您輸入的資料.

然後在對話方塊1類裡處理你需要的操作,對話方塊2的物件為dlg2的話,就用dlg2.srt,實現了引數的傳遞.

後者的話就更簡單了,因為是單一的更新資料,不需要對話方塊2任何資料,所以直接在對話方塊1的類中直接操作就可以.比如現實對話方塊2時用的domodal(),那就在domodal()之後直接setwindowstext()或者()setdlgitemtext()或者給combo1直接新增字元等等都行,combo的使用方法在網上搜一下,應該不會出問題的.

其實只要記住一個點,就是不要企圖在對話方塊2的類**中直接操作對話方塊1,一般都是先把對話方塊2的操作記錄到自己的成員變數(控制元件變數不行,因為關閉時都銷燬了),關閉後就可以通過類似dlg2.*獲得相應資料.

3樓:邗寧齋斯伯

你這是模式對話方塊不是非模式退出也不是那樣寫的。要實現這個功能很簡單。在你的exit按鈕中執行onok();這句mdg.domodal();改成if

(mdg.domodal()==idok)

postquitmessage(0);你可以搜尋一下vc退出程式**,有好幾種方法。這只是其中一種。

開機出對話方塊,關於瑞星的問題

上面的英文是要你聯絡開發商,呵呵。你還是重灌瑞星吧。 人生可能就這樣 防毒 拔出網線再防毒 你的電腦有嚴重病毒 儘快全盤防毒 真的,沒騙你,應該是廣外女生一類的病毒,用多幾個殺軟,多殺幾次 噯簡直無語叻 對話方塊內容?瑞星版本?啥資訊沒有咋判斷啊?噯假設瑞星的版本最新吧。開機後開啟瑞星設定,切換到監...

地下城與勇士對話方塊顯示已開啟單人遊戲模式是什麼意思 如何取消,之前好像沒有

就是別人無法與你組隊或者街頭pk,在設定裡面更改,在調解析度那個選單欄裡面,倒數第二個。該遊戲是一款2d卷軸式橫版格鬥過關網路遊戲,大量繼承了眾多家用機 街機2d格鬥遊戲的特色。以任務引導角色成長為中心,結合副本 pvp pve為輔,與其他網路遊戲同樣具有裝備與等級的改變,並擁有共500多種裝備道具...

MFC,想在對話方塊裡面呼叫另對話的引數,怎麼辦呀

當然不可以,你沒法獲得對方的成員 你要獲得它執行的例項物件 2個程序的通訊,麻煩點 但是你可以通過hwnd h findwindow 視窗名字 來獲取控制代碼 cwnd w cwnd fromhandler h 然後就可以做了 例如第2個對話方塊的成員為 int a 0 給他夠找一個方法 int g...