MFC 對話方塊操作

2021-07-03 10:02:02 字數 1715 閱讀 8967

對話方塊有兩類,模態對話方塊、非模態對話方塊。

在mfc中對資源的操作通常都是通過乙個與資源相關的類來完成的。

我們建立對話方塊也不例外。

通過insert選項,插入乙個對話方塊資源。此時這個資源還不能使用,使用前提需要繫結在乙個對話方塊物件上。

dodataexchange這個函式主要完成對話方塊資料的交換和校驗

//建立模態對話方塊

ctestdlg dlg;

dlg.domodal();

當利用create函式建立非模態對話方塊時,還需要呼叫showwindow函式將這個對話方塊顯示出來。

如果動態建立對話方塊,丟失刪除指標。可通過呼叫postncdestroy()函式中新增delete this語句實現。

呼叫destroywindow函式銷毀對話方塊

動態建立按鈕

cbutton m_btn;

m_btn.create("new",bs_defpushbutton|ws_visible|ws_child,crect(0,0,100,100),this,123);

注意,乙個資源物件只能與乙個資源繫結在一起。

控制項大多都是繼承於cwnd,所以銷毀函式可以選擇destroywindow函式。

getwindowtext() setwindowtext()獲取控制項上顯示的文字

getdlgitem()函式獲得控制項物件的指標

靜態文字空間在預設情況下不傳送通告訊息

為了使乙個靜態文字控制項能夠響應滑鼠訊息,那麼需要進行兩個特殊的步驟:第一步,改變id,第二步,在它的屬性對話方塊中選擇notify選項。

atoi函式itoa函式

getdlgitemtext() setdlgitemtext()獲得控制項的文字和設定控制項的文字。

getdlgitemint() setdlgitemint()獲得控制項的數值和設定控制項的數值

將控制項關聯成員變數相關聯,利用updatedate完成對話方塊資料交換,取資料用true,初始化控制項內容用false

注意ddv_ 和ddx_之間的差別

ddv_資料檢驗函式 ddx資料交換函式

關聯控制項型別的變數,此變數代表的就是控制項本身,可完成m_edit1.getwindowtext()的呼叫

利用sendmessage函式,傳送wm_settext 和wm_gettext訊息

senddlgitemmessage() getdlgitemmessage()

em_開頭是編輯框控制項訊息

crect中的isrectempty() 和 isrectempty()前者返回非零值說明其中寬度或高度為零或為負值,後者四個座標都為0返回非零值。

getwindowrect() setwindowrect()

setwindowpos設定對話方塊的大小

對話方塊上面的空間完成之後將傳送乙個wm_initdialog訊息

所有視窗訊息都伴隨乙個視窗控制代碼

利用setwindowlong()可以修改視窗過程函式

獲得視窗控制代碼getwindow() getnextwindow()

setfocus獲得焦點

getnextdlgtabitem函式返回控制項前面或後面的乙個具有ws_tabstop風格的控制項

在mfc中,預設情況下,當在對話方塊視窗中按下回車鍵時,會呼叫對話方塊的預設按鈕的響應函式。

getfocus()

getnextwindow()

setfocus()

mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式

遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...

MFC 對話方塊

1 建立對話方塊模板,設定對話方塊屬性 cadditionddlg 主對話方塊類 顯示的主要介面 addition的資源樹 4個子項 dialog 對話方塊 含有2個對話方塊模板 id為idd aboutbox 關於對話方塊模板 idd addtion dlalog 主對話方塊模板 lcon 圖示 ...

MFC擴充套件對話方塊 即收縮對話方塊

mfc擴充套件對話方塊 即收縮對話方塊 效果圖如下,擴充套件前 上 擴充套件後 下 上下擴充套件 具體步驟如下 1.在.h檔案中新增如下 1private 2boolm shrink 標記是否收縮 3intm winheight 儲存對話方塊的高度 4intm shrinkheight 收縮後的對話...