将控件设置为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中消息响应一样。