再談MFC學習 模態對話方塊的資料傳遞

2021-09-30 11:29:06 字數 677 閱讀 3934

學習c++的目的就是為了使用封裝好的類,而最最經典的封裝類當然是微軟的mfc視窗程式類。學習mfc程式設計之前要學習c++的主要知識,掌握c++的基本程式設計思想。下面就看下我學習的mfc模態對話方塊的資料傳遞。

首先,什麼叫做模態對話方塊呢?模態對話方塊指的是當彈出這樣的對話方塊的時候,程式不能相應除了此對話方塊外其他的視窗的響應,直到關閉了這個對話方塊,程式才能響應其他的對話方塊的響應。非模態對話方塊即使彈出也能響應程式其他的視窗而不需要等到此視窗的關閉。那麼mfc中怎麼才能彈出模態對話方塊呢?其實很簡單,首先建立這樣的乙個視窗資源,然後給這個資源繫結乙個自己的類,這個類要繼承於其他的類,比如cdialog。在程式中的響應函式中,先定義這樣的乙個類的物件dlg,然後呼叫dlg.domodal()便可以了。

關於模態對話方塊和主對話方塊之間的資料傳遞可以使用四種不同的方法實現:

1. 全域性變數;這種方法雖然可以實現這樣的資料傳遞功能,但是沒有體現出c++的物件導向的機制;

2. afxgetmainwnd方法的使用;這樣的方法是通過獲取主對話方塊的指標,然後利用這個指標獲取主對話方塊上的物件的內容;

3. getparent()函式的方法;這樣的方法可以獲取父對話方塊的指標,然後通過這個指標進行相應的操作;

4. 成員變數和成員函式的方法;如果成員變數是私有的,那麼我們需要定義成員函式才能對這樣的變數進行操作,但是為了方便,我們可以定義乙個公有的指向主對話方塊的指標;

非模態對話方塊 MFC

cvolsetdlg m pvoldlg null m pvoldlg newcvolsetdlg m pvoldlg create idd dlg vol m pvoldlg showwindow sw show 過載oncancel函式 void cxx oncancel todo add yo...

MFC 非模態對話方塊

非模態對話方塊 用mfc可以建立非模態的對話方塊,只是建立方式不同,模態對話方塊用 dlg.domodel 呼叫,而非模態對話方塊要用create函式建立呼叫。假設idd test dlg為已經定義的對話方塊資源的id號 ctestdlg dlg new ctestdlg dlg create id...

從模態對話方塊和非模態對話方塊理解MFC

1 非模態 雖然引自網路,但是寫的很好,很清晰。無模式對話方塊與有模式對話方塊不同的是在建立後其他視窗都可以繼續接收使用者輸入,因此無模式對話方塊有些類似乙個彈出視窗。建立 無模式對話方塊需要呼叫 bool cdialog create uint nidtemplate,cwnd pparentwn...