VC 控件動態添加的方法
Flyli
有些時候為了某種目的,我們希望系統的控件能夠自動根據我們的需要添加而不是必須提前在對話框裡畫進去,這個時候我們就需要動態的進行控件的生成.
具體的我們可以以CEdit(文本框控件)為例來說明
第一步:
必須添加一個CEdit的指針,然後在給指針開辟相應的空間. 這裡需要說明的是,我們必須定義指針,而不是直接定義這個類,具體原因我不在這裡解釋,這裡我們這麼寫;
CEdit* Text = new CEdit();
第二步:
創建控件,我利用create看書對text進行初始化,並將其顯示到桌面上.代碼如下:
RECT rect;
rect.top = 0;
rect.left = 0;
rect.right =100 ;
rect.top = 100;
Text->Create(WS_CHILD | WS_VISIBLE,rect,(CWnd*)this,FID_ADDRESS);
這裡需要加以說明的是第一個參數表明的是控件的樣式,起具體含義可以從MSDN中獲得,第二個參數是控件顯示在窗口上的位置,第三個控件是控件所在窗口,第四個參數值得是控件的ID,其定義需要在resource.h和String table資源中加以定義,假如測試用的話可以將其定義為一個未經定義過的常數,例如:2008.
之後的TEXT就可以被當成一個普通的經過DDX_Control的函數一樣的控制了,比如想得到其中的數值,只需要
CString xxx;
text->GetWindowText(xxx);
這樣控件中的數值就被讀入到了xxx這個字符串中了.
此文章如需轉載請注明作者姓名,謝謝合作