1、第 10讲 Windows 标准控件的应用要点:1、组合框2、旋转按钮1一、 组合框 (CComboBox)类组合框的特点w 组合框是两种预定义窗口的组合形式。w 在 Windows 编程 中使用单一控件往往不能完全满足与用户交互的需要,最常见的组合框例子是对话框及与其相联系的静态文本和编辑框 。w 常用的组合框是列表框 +编辑框 二、 组合框与应用程序间消息传递 (1)组合框向应用程序发送消息组合框通过向其父窗口发送 WM_COMMAND 消息通知应用程序用户的交互信息。CBN_SELCHANGE 列表部分所选中项发生改变 CBN_DBLCLK 双击CBN_EDITCHANGE 编辑中的文本
2、发生改变CBN_EDITUPDATE 编辑框显示修改过的文本w 应用程序对组合框的操作也通过使用函数SendMessage或 SendDlgItemMessage向组合框发送消息进行。w 对组合框的操作实际上是对组合框中各成员的操作 CB_SHOWDROPDOWN 显示下拉列表框CB_ADDSTRING 增加新项CB_DELETESTRING 删除新项CB_SETCURSEL 设置选中项CB_GETLBTEXT 获取指定项文本(2) 应用程序向组合框发送消息(3) 组合框的属性w Data选项卡:编辑数据源。输入一个列表项后,按组合键 Ctrl+Enter进入下一个列表项的编辑。w Style
3、s选项卡的 Sort属性:选中该属性列表项被排序显示,否则按输入顺序显示。w 通常可选缺省属性也可以在对话框的 OnInitDialog函数中增加列表项三、 组合框控件应用举例 【 例 】 如图所示:创建多个组合框控件,分别使用设置属性或初始化程序添加列表项数据。所选择的选项合并成字符串,在静态文本框中显示。步骤 :1、创建项目并生成对话框项目名: T9-cb 项目类型: MFC模板: MFC应用程序应用程序类型:基于对话框生成类: CT9cbAppCT9cbDlg 对话框 ID:IDD_T9cb_DIALOG(1) 设置控件属性w 对象 属性 设置内容w 对话框 ID IDD_Combo_D
4、IALOGw Caption 示例 10-1:组合框的应用w Static1 ID IDC_STATIC1 w 选 Client edgew ComboBox1 ID IDC_ COMBO1w Data:刘洋 ;李明 ;王海 ;张萌w Sort不选w ComboBox2 ID IDC_ COMBO2w ComboBox3 ID IDC_ COMBO3w Data: 1;2;3;4;5;6;7;8w Sort不选w ComboBox4 ID IDC_ COMBO4w Data:数据库原理 ;VC+程序设计 ; w 高等数学 ;大学英语 . Sort不选(2) 添加成员变量 w ID 变量名 类别
5、 变量类型 w IDC_COMBO1 m_cb1 Control CComboBoxw IDC_COMBO2 m_cb2 Control CComboBoxw IDC_COMBO3 m_cb3 Control CComboBoxw IDC_COMBO4 m_cb4 Control CComboBoxw IDC_STATIC1 m_str Control CStaticw 选择 T9-cbDlg.cpp文件,找到 OnInitDialog()函数BOOL CT9cbDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initia
6、lization herew m_cb2.AddString(L“星期一 “); /初始化对话框w m_cb2.AddString(L“星期二 “);w m_cb2.AddString(L“星期三 “);w m_cb2.AddString(L“星期四 “);w m_cb2.AddString(L“星期五 “);w m_cb2.AddString(L“星期六 “);w m_cb2.AddString(L“星期日 “); w return TRUE; (3) 编写程序:初始化组合框 IDC_ COMBO2w 选择对象 ID: IDC_COMBO1 ,在属性对话框中选择消息: CBN_SELCHANGE,增加函数w 编写如下代 码。w void CT9cbDlg:OnCbnSelchangeCombo1()w w CString str;w /获取组合框 1的当前值w m_cb1.GetLBText(m_cb1.GetCurSel(), str); w m_str.SetWindowText(str ); /在 STATIC1中显示w UpdateData(FALSE); w (4) 编写程序:组合框的 CBN_SELCHANGE消息