圆形框)的左边。 *. BS_MULTILINE 如果标题文本太长,将在绘制区域内对文本进行折行处理。 *. BS_NOTIFY 激 活 按 钮 , 使 之 可 对 父 窗 口 发 送 BN_DBLCLK, BN_KILLFOCUS, BN_SETFOCUS 消息,注意:不管有没有使用本样式,按钮都有一个 BN_CLICKED 可发 送消息。 *. BS_OWNERDRAW 创建一个自绘风格的按钮。当按钮的外观发生改变时,框架会调用 DrawItem 成员函数。本样式在使用 CBitmapButton 类时必须设置。 *. BS_PUSHBUTTON 创建一个按钮(即最常见的按钮) ,该按钮在点击时,将向父窗口 发送一个 WM_COMMAND 消息。 *. BS_PUSHLIKE 把(多选框,三态多选框,单选框)以按钮的形式显示,该按钮在未 选种状态时是浮起的,但在选中状态时是陷入状态的。 *. BS_RADIOBUTTON 创建 单选框 ,该按 钮有一个 圆形的 客户区 , 在本样 式不 与 ( BS_LEFTTEXT 样式结合使用的情况下)标题文本在其右方。单选框通常用于有相关联的 多个可选项里面,但相互之间只有作一个选择的情况下。 *. BS_RIGHT 在 按 钮 的 绘 制 区 域 内 右 对 齐 文 本 。 但 如 果 按 钮 是 一 个 没 有 BS_RIGHTBUTTON 样式的单选或复选框,标题文本将在单选或复选框可点选区的右边居 右对齐。 *. BS_RIGHTBUTTON 设定单选框的圆形可选区或复选框的方开形复选区出现在按钮的 矩形区域的右边。与 BS_LEFTTEXT 的效果一样。 *. BS_TEXT 指定按钮将显示文本标题。
*. BS_TOP 将标题文本显示在按钮的绘制区域的顶边。 *. BS_USERBUTTON 已废弃不用,只作为兼容 16 位系统版本的 Windows,基于 32 位 windows
系统的请用 BS_OWNERDRAW 样式取代。 *. BS_VCENTER 设定按钮的标题在绘制区域的垂直方向居中
。 我们可以使用上述按钮风格的组合,创造出不同样式和种类的按钮。 (5)使用指针的情况下,在析构函数中释放对象。 delete p_Btn; 2、复选按钮 创建复选按钮的方法与普通按钮相同,只需要调整按钮风格即可,创建代码如下: //创建三态复选按钮 m_BtnC.Create(_T(" 三 态 复 选 按 钮 "),WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTO3STATE,CRect(10,130,200,180),this,IDC_BUTTON_CHECK); 3、单选按钮 创建方法与前类似, 但是由于单选按钮往往是成组出现的, 需注意创建时第一个按钮必 须加上 windows 风格 WS_GROUP。创建代码如下: //创建单选按钮 1 m_BtnR1.Create(_T(" 单 选 按 钮 1"),WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTORADIOBUTTON | WS_GROUP,CRect(10,190,200,240), this,IDC_BUTTON_RADIO1); //创建单选按钮 2 m_BtnR2.Create(_T(" 单 选 按 钮 2"),WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTORADIOBUTTON,CRect(10,250,200,300), this,IDC_BUTTON_RADIO2); (二)为按钮添加消息响应函数 由于是动态创建的按钮,因此不能简单的使用 ClassWizard 添加消息响应函数,只能手 动添加,以第一个按钮为例,添加单击消息响应函数步骤如下: (1)在 MESSAGE_MAP 中添加响应函数。 ON_BN_CLICKED(IDC_BUTTON_PUSH1,OnBtnClk) (2)在头文件中添加函数定义。 //消息响应函数定义 afx_msg void OnBtnClk(); (3)正常编写消息响应函数的实现部分。例如: void CButtonView::OnBtnClk() { MessageBox(_T("点击了普通按压式按钮!")); } 运行效果如图 I-2
二、进阶应用
前文已经对按钮的创建和使用方法进行了介绍, 通过上文我们已经可以在自己的
程序中 使用按钮了,但是如果想要更好的运用按钮,还必须对其中的函数有比较深刻的了解。 (一)按钮的成员函数 CButton 类的成员函数比较少,而且简单,主要包括获取按钮状态(或风格)和设置按 钮状态(或风格)两个方面内容。另外还有一个 DrawItem()函数,在高级应用中我们将 重点讲到它。按钮的成员函数主要包括如下内容:
函数名称 GetState SetState GetCheck SetCheck GetButtonStyle Set