Button控件使用总结
来源:互联网 发布:it英语词汇 编辑:程序博客网 时间:2024/05/16 10:34
按钮控件在MFC中使用CButton表示,CButton包含了三种样式:Push Button,Check Box,Radio Button。
一、静态控件 将Toolbox中的Push Button,Check Box,Radio Button控件拖放到对话框中,并使用VisualStudio的Wizard功能关联CButton变量及添加对应响应事件。 当然,将Button控件拖放到对话框上之后,也可以手动关联变量及添加事件响应函数。 步骤如下(以Push Button为例): 1.在对话框类中添加变量CButton m_btn; 2.关联变量:在DoDataExchange函数中添加DDX_Control(pDX, IDC_BUTTON1, m_btn); 3.添加消息映射: 在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加:ON_BN_CLICKED(IDC_BUTTON1, &CTestDlg::OnBnClickedButton1) 并添加对话框类的成员函数void CTestDlg::OnBnClickedButton1()。
二、动态创建1.创建CButton实例 CButton *p_MyButton = new CButton();2.调用CButton类的Create()函数创建 该函数原型如下: BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); lpszCaption --- 按钮上显示的文本 dwStyle --- 窗口风格,可以是以下风格的组合: 【通用】 WS_CHILD 子窗口,必须有 WS_VISIBLE 窗口可见 WS_TABSTOP 可用Tab键切换焦点 WS_GROUP 成组,用于Radio Button按钮组中的第一个按钮 WS_DISABLED 禁用窗口 【按钮专用】 BS_PUSHBUTTON 下压式按钮即Push Button BS_AUTORADIOBUTTON 单选按钮及Radio Button BS_AUTOCHECKBOX 复选按钮及Check Box rect --- 按钮的大小和位置 pParentWnd --- 父窗口 nID --- 和按钮关联的ID3.添加消息映射(同上)4.销毁资源 delete 在CButton类的析构函数中有调用DestroyWindow来释放和其相关的窗口资源
代码示例:
// 创建Push ButtonCButton *m_pMyButton = new CButton();CRect rcBtn(0, 0, 100, 20);m_pMyButton->Create(TEXT("Test"), WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, rcBtn, this, 1000);// 设置和对话框一样的字体m_pMyButton->SetFont(this->GetFont());// 释放资源delete m_pMyButton;
三、具体使用细则1.Radio Button的Group规则WS_GROUP风格指定Radio Button组的首个控件。该控件组是由这个首控件和在它之后定义的所有Radio Button组成,直到下一个拥有WS_GROUP风格的Radio Button为止。2.GetCheck与SetCheck功能:获取及设置Radio Button以及Check Box的选择状态int GetCheck( ) const; 返回值为BST_UNCHECKED,BST_CHECKEDvoid SetCheck(int nCheck); nCheck为BST_UNCHECKED,BST_CHECKED