资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第10讲 Windows 标准控件的应用,要点: 1、组合框 2、旋转按钮,一、 组合框(CComboBox)类,组合框的特点 组合框是两种预定义窗口的组合形式。 在Windows编程中使用单一控件往往不能完全满足与用户交互的需要,最常见的组合框例子是对话框及与其相联系的静态文本和编辑框。 常用的组合框是列表框+编辑框,二、组合框与应用程序间消息传递,(1)组合框向应用程序发送消息 组合框通过向其父窗口发送WM_COMMAND消息通知应用程序用户的交互信息。 CBN_SELCHANGE 列表部分所选中项发生改变 CBN_DBLCLK 双击 CBN_EDITCHANGE 编辑中的文本发生改变 CBN_EDITUPDATE 编辑框显示修改过的文本,应用程序对组合框的操作也通过使用函数SendMessage或SendDlgItemMessage向组合框发送消息进行。 对组合框的操作实际上是对组合框中各成员的操作 CB_SHOWDROPDOWN 显示下拉列表框 CB_ADDSTRING 增加新项 CB_DELETESTRING 删除新项 CB_SETCURSEL 设置选中项 CB_GETLBTEXT 获取指定项文本,(2) 应用程序向组合框发送消息,(3) 组合框的属性,Data选项卡:编辑数据源。输入一个列表项后,按组合键Ctrl+Enter进入下一个列表项的编辑。 Styles选项卡的Sort属性:选中该属性列表项被排序显示,否则按输入顺序显示。 通常可选缺省属性,也可以在对话框的OnInitDialog函数中增加列表项,三、组合框控件应用举例,【例】如图所示:创建多个组合框控件,分别使用设置属性或初始化程序添加列表项数据。所选择的选项合并成字符串,在静态文本框中显示。,步骤: 1、创建项目并生成对话框 项目名:T9-cb 项目类型:MFC 模板:MFC应用程序 应用程序类型:基于对话框 生成类:CT9cbApp CT9cbDlg 对话框ID: IDD_T9cb_DIALOG,(1) 设置控件属性,对象 属性 设置内容 对话框 ID IDD_Combo_DIALOG Caption 示例10-1:组合框的应用 Static1 ID IDC_STATIC1 选Client edge ComboBox1 ID IDC_ COMBO1 Data:刘洋;李明;王海;张萌 Sort不选 ComboBox2 ID IDC_ COMBO2 ComboBox3 ID IDC_ COMBO3 Data:1;2;3;4;5;6;7;8 Sort不选 ComboBox4 ID IDC_ COMBO4 Data:数据库原理;VC+程序设计; 高等数学;大学英语 . Sort不选,(2) 添加成员变量,ID 变量名 类别 变量类型 IDC_COMBO1 m_cb1 Control CComboBox IDC_COMBO2 m_cb2 Control CComboBox IDC_COMBO3 m_cb3 Control CComboBox IDC_COMBO4 m_cb4 Control CComboBox IDC_STATIC1 m_str Control CStatic,选择T9-cbDlg.cpp文件,找到OnInitDialog()函数 BOOL CT9cbDlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here m_cb2.AddString(L星期一); /初始化对话框 m_cb2.AddString(L星期二); m_cb2.AddString(L星期三); m_cb2.AddString(L星期四); m_cb2.AddString(L星期五); m_cb2.AddString(L星期六); m_cb2.AddString(L星期日); return TRUE; ,(3) 编写程序:初始化组合框IDC_ COMBO2,选择对象ID:IDC_COMBO1 ,在属性对话框中选择消息:CBN_SELCHANGE,增加函数 编写如下代 码。 void CT9cbDlg:OnCbnSelchangeCombo1() CString str; /获取组合框1的当前值 m_cb1.GetLBText(m_cb1.GetCurSel(), str); m_str.SetWindowText(str); /在STATIC1中显示 UpdateData(FALSE); ,(4) 编写程序:组合框的CBN_SELCHANGE消息,void CT9cbDlg:OnCbnSelchangeCombo2() CString str,mag; m_cb1.GetLBText(m_cb1.GetCurSel(), str); /获取组合框1的当前值 CString strshow1 = str; /组合字符串strshow1 m_cb2.GetLBText(m_cb2.GetCurSel(), str); /获取组合框2的当前值 CString strshow2 = L+str; /组合字符串strshow2 mag=strshow1+strshow2; /strshow1,strshow2合并 m_str.SetWindowText(mag); /在IDC_STATIC1中显示 UpdateData(FALSE); /控件数据更新 ,void CT9cbDlg:OnCbnSelchangeCombo3() CString str,mag; m_cb1.GetLBText(m_cb1.GetCurSel(), str); CString strshow1 = str; m_cb2.GetLBText(m_cb2.GetCurSel(), str); CString strshow2 = L+str; m_cb3.GetLBText(m_cb3.GetCurSel(), str); CString strshow3 = L+str; mag=strshow1+strshow2+strshow3; m_str.SetWindowText(mag); UpdateData(FALSE); ,void CT9cbDlg:OnCbnSelchangeCombo4() CString str,mag; m_cb1.GetLBText(m_cb1.GetCurSel(), str); CString strshow1 = str; /组合字符串strshow1 m_cb2.GetLBText(m_cb2.GetCurSel(), str); CString strshow2 = L+str; /组合字符串strshow2 m_cb3.GetLBText(m_cb3.GetCurSel(), str); CString strshow3 = L+str; /组合字符串strshow3 m_cb4.GetLBText(m_cb4.GetCurSel(), str); CString strshow4 = L+str; /组合字符串strshow4 mag=strshow1+strshow2+strshow3+strshow4; m_str.SetWindowText(mag); /在IDC_STATIC1中显示 UpdateData(FALSE); /控件数据更新 ,四、旋转按钮(Spin控件),Spin按钮控件提供了一对箭头,与之配对使用的是Edit控件。用户通过点击箭头可以微调该控件所绑定的数值。,Spin控件的是CSpinButtonCtrl类,Spin控件通常和“tab 键顺序”位于它之前的控件成对使用。通过CSpinButtonCtrl的GetBuddy方法可获得与之配对的控件,首先向对话框拖放一个Edit控件,置为只读,然后拖放一个Spin控件紧挨着刚才拖放的Edit控件,设置Spin控件的【Allignment】属性为“Right”,选中Auto buddy、Set buddy integer属性,BOOL CXXXDlg:OnInitDialog() / TODO: Add extra initialization here m_spin.SetBuddy( GetDlgItem( IDC_EDIT ) ); m_spin.SetRange(0, 100); m_spin.SetPos(50); m_spin.GetBuddy()-SetWindowText(“50); return TRUE; ,设置Spin的范围是0100,当前位置是50,设置Edit控件为Spin控件的伙伴,指向当前伙伴窗口,【例9-8】本程序为几种控件的综合应用,五、综合应用举例,(1) 创建对话框,项目名:T9-8 项目类型:MFC 模板:MFC应用程序 应用程序类型:基于对话框 生成类:CT98App, CT98Dlg 对话框ID: IDD_T98_DIALOG,对象 属性 设置内容 对话框 ID IDD_T98_DIALOG Caption 示例9-8:控件综合应用 ComboBox1 ID IDC_ COMBO Data:英语;计算机基础;高等数学 Sort不选 CheckBox1 ID IDC_DATE_ CHECK Caption 日期 CheckBox2 ID IDC_TIME_CHECK Caption 时间,(2) 设置属性,对象 属性 设置内容 STATIC ID IDC_STATIC1 STATIC ID IDC_STATIC2 EditBox3 ID IDC_ COUSE_EDIT 选:Read-Only EditBox4 ID IDC_ AGE_EDIT 选:Read-Only EditBox5 ID IDC_ GRADE_EDIT 选:Read-Only Spin ID IDC_SPIN 【Allignment】属性为“Right” 选:Auto buddy、Set buddy integer,对象 属性 设置内容 Button1 ID IDC_ ENABLE_BUTTON Caption: Check有效 Button2 ID IDC_ DISABLE_BUTTON Caption: Check无效 Button3 ID IDC_SHOW_BUTTON Caption: 重新显示 Button4 ID IDC_HIDE_BUTTON Caption: 隐藏 Button5 ID IDC_EXIT_BUTTON Caption: 退出 Button6 ID IDC_ AG
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号