MFC的DDX和DDV技術

2021-04-21 13:13:12 字數 1647 閱讀 7339

來自:sopper的部落格

c++控制項的資料交換和資料校驗

mfc採用了獨特的

ddx和

ddv技術。

ddx資料成員變數同對話類模板內的控制項相連線,這樣就使得資料在控制項之間很容易地傳輸。

ddv用於資料的校驗,例如它能自動校驗資料成員變數數值的範圍,並發出相應的警告。

在類嚮導下新增成員變數的過程很簡單,需要說明的是

。在ddv

/ddx

技術中,允許使用者為同乙個控制項關聯多個資料成員變數,但必須保證這些變數名是互不相同的,且這些變數在同乙個型別不能有多個變數,即在

value

和control

型別中各自只能有乙個成員變數

。如果新增的成員變數是乙個數值型別,則在類嚮導對話方塊的

member

variables

頁面正文還要求使用者輸入變數的範圍,這就是控制項的資料校驗設定。

新增完成成員變數後,類嚮導會在**檔案裡加入如下**

1.在標頭檔案中,新增與控制項關聯的成員變數的宣告,**:

// dialog data

//;

intm_edit;

//}}afx_data

2.在.cpp

檔案中的類建構函式實現**處,新增資料成員變數的一些初始化**

cmydlg::cmydlg(cwnd* pparent /*=null*/)

: cdialog(cmydlg::idd, pparent)

}afx_data_init

}3.在

.cpp

檔案中的

dodataexchange

函式體內,新增控制項的

ddx/

ddv**,它們都是一些以

ddv_

或ddx_

開關的函式呼叫。

void cmydlg::dodataexchange(cdataexchange* pdx)

}afx_data_map

}需要說明的是,上述**中以 「

//}afx_data

」 或 「

//}}afx_data_

」結尾的標記是類嚮導定義的專門用來做

ddx/ddvr

標記,表示該部分的**是同類嚮導自動管理,使用者一般不需要去更改。

4.當為乙個控制項定義乙個關聯的資料成員變數後,就可以使用

cwnd::updatadata

函式實現控制項的控制,包括控制項相關資料的輸入和讀取。

updatedata

(false

)   資料由控制項相關的成員變數向控制項傳輸

updatedata

(true

)或引數為空資料從控制項向相關聯的成員變數複製。

MFC 雙緩衝技術和相容DC

一 繪圖時螢幕閃爍的原因分析 螢幕閃爍的根本原因是相鄰兩幀影象之間存在的巨大差異造成的,而windows的圖形重新整理方式使得任何兩幀影象之間都存在著巨大的差異。因為windows在進行重新整理之前都會首先將整個螢幕刷成白色,就相當於在電影膠片的相鄰兩幀之間都插入了乙個白色的幀,這也就是為什麼螢幕閃...

SDK和MFC的區別

sdk 就是software development kit 軟體開發包 mfc 就是microsoft foundation classes 微軟函式類庫 mfc是對api函式的封裝,也算是vc裡的sdk 用vc編寫windows程式有兩種 1.windwos c方式 sdk 2.c 方式 即對s...

MFC的概念和作用

一 全程 microsoft foundation class library 我們稱 微軟基礎類庫 從硬碟的存在形式上來說,mfc就是乙個庫 動 靜態 從原理上說,mfc還是乙個程式的框架 作用 基於框架程序開發,提高工作效率,減少開發周期,節約開發成本 二 重要標頭檔案 afx.h 包含了mfc...