MFC控制元件關聯變數
控制元件關聯變數的方法:
在控制元件上右鍵-->新增變數->將類別改成Value(預設是Control) ->選擇變數型別->取一個變數名->根據型別會提示相關項可輸入
如下圖
點選完成(注意這裡的訪問, 變數型別和變數名之所以是灰色的, 是因為我這是第二次開啟)
將會在三處生成程式碼
1. 標頭檔案 訪問所選位置(這裡是public) int iNumber;
2. 類初始化此變數
3.DoDataExchange 出生成相關程式碼
DDX_Text(pDX, IDC_EDIT4, iNumber);
DDV_MinMaxInt(pDX, iNumber, 0, 50);
現在我們在改變變數的時候可以這樣做, 以便它和控制元件實時關聯
UpdateData(TURE);
iNumber = 10;
UpdateData(FALSE);
===================
以上是以CEdit為例, 其它控制元件方法大同小異
在MFC中我們常常要把一些變數於控制元件對應起來!
1. 控制元件與value變數對應。
通過UpdateDate來實呼叫DoDataExchange(CDataExchange* pDX)實現變數資訊交換!
如:
DDX_Text(pDX, IDC_STATICCOUNT, m_sCount); --> value
把控制元件ID為IDC_STATICCOUNT的控制元件與m_sCount變數對應起,
用UpdateDate(TRUE)來把IDC_STATICCOUNT控制元件資料寫到m_sCount;
用UpdateDate(FALSE)把m_sCount資料讀寫到IDC_STATICCOUNT控制元件;
2. 控制元件與控制變數對應。
DDX_Control
把控制元件ID為IDC_BSTARTTIME的控制元件與m_sCount變數對應起,如BUTTON。
此時我們可以通過m_cStartTime控制元件變數改變對應控制元件狀態!
m_cStartTime.EnableWindow(FALSE); 可以改變控制元件是否可用!如果沒有control對應,
那麼我們可以使用等價語句:GetDlgItem(IDC_BSTARTTIME)->EnableWindow(TRUE);