檢視新增控制元件、控制元件響應
將控制元件設定為CView的變數 需要過載CView的OnCreate函式,對控制元件變數進行Create。 如果需要相應控制元件相關的訊息,要根據建立的ID寫好訊息對映。 |
向檢視新增控制元件的基本過程如下:
1、向檢視類新增控制元件成員變數
2、過載檢視的OnCreate函式,新增對控制元件Create函式的呼叫
3、檢視建立完成後,初始化控制元件的大小
4、過載檢視的OnSize函式,新增對控制元件大小的設定
5、如果要對控制元件訊息進行處理,過載檢視的OnCmdMsg函式
------------------------------------------------------------------------------------------------------------------------------------
一、CView新增控制元件
1、將控制元件設定為CView的變數
需要過載CView的OnCreate函式,對控制元件變數進行Create。
例如:
a、新增成員變數CButton btn
b、加入資源:IDC_MY_BUTTON 101 --> 在resource.h中
c、在某個事件中寫程式碼:
btn.Create( "動態的按鈕 ", MS_CHILD¦MS_BORDER,this, IDC_MY_BUTTON);
--> 比如說響應某個選單項,或者滑鼠單擊,雙擊等
2、如果需要相應控制元件相關的訊息,要根據建立的ID寫好訊息對映。
手工新增,需要新增三個部分,如下:
a、在***View.h檔案中找到新增如下:
//{{AFX_MSG(***View)
afx_msg void OnButton();
//}}AFX_MSG
b、在***View.cpp檔案中新增:
BEGIN_MESSAGE_MAP(***View, CView)
//{{AFX_MSG_MAP(***View)
ON_BN_CLICKED(ID_BUTTON,OnButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
c、和以下程式碼:
void ***View::OnButton()
{
//具體的處理
}
二、CFormView新增控制元件
由於建立CFormView的時候,會自動建立一個對話方塊,並且和該對話方塊關聯,所以....隨便拖控制元件到對話方塊中即可.
訊息響應,和dialog base中訊息響應一樣。