列表框应用示例
(1)界面设计
首先创建一个对话框应用程序框架,然后放置按钮。列表框和命令按钮按表连接变量,其余控件不需要连接变量。
(2)初始化
列表框的选项在对话框的初始化函数中用 AddString 函数添加。 BOOL CTESTDlg::OnInitDialog() { ┆
// TODO: Add extra initialization here m_l.AddString(\大学计算机基础 \ m_l.AddString(\程序设计 \ m_l.AddString(\程序设计 \ m_l.AddString(\软件技术基础 \ ┆ }
(3)消息处理函数
??????????????????????
void CTESTDlg::OnButton1() // 选择“添加”后执行的函数 {
// TODO: Add your control notification handler code here UpdateData(TRUE); m_l.AddString(m_e); m_e=\
UpdateData(FALSE); }
??????????????????????
void CTESTDlg::OnButton2() // 选择“删除”后执行的函数 {
16
// TODO: Add your control notification handler code here int n=m_l.GetCurSel(); m_l.DeleteString(n); }
??????????????????????
void CTESTDlg::OnButton3() // 选择“修改”后执行的函数 {
// 将选定的项目送编辑框供修改
// TODO: Add your control notification handler code here CString s;
int n=m_l.GetCurSel(); m_l.GetText(n,s); m_e=s; UpdateData(FALSE); }
??????????????????????
void CTESTDlg::OnButton4() // 选择“确定修改”后执行的函数 {
// 将修改后的项目送回列表框中,替换原项目,实现修改。 // TODO: Add your control notification handler code here UpdateData(TRUE); int n=m_l.GetCurSel(); m_l.DeleteString(n); m_l.InsertString(n,m_e); m_e=\
UpdateData(FALSE); }
?????????????????????…
1.5.2 组合框
1. 属性设置
(1)类( Type )
该属性用于指定组合框的类型,共有三个选择: Simple 、 Dropdown 和 Droplist ,默认值为 Dropdown 。
(2)键入列表框项( Enter listbox items )
在列表框的属性窗口“ Data ”选项卡中有一个键入列表框项,这是在设计阶段输入选项的地方,如图所示。每当输入一项后按 Ctrl+Enter 键才能输入下一项。(注意在设计ComboBox时,点下向下箭头,然后将控件下边向下拉,之后才输入数据,这样才能显示出ComboBox的下拉的项。或者,在新建该控件时往下拖放足够大的区域)
17
组合框属性窗口Data选项卡
2. 常用成员函数
编辑框和列表框的成员函数几乎都可以用于组合框,但是列表框的成员函数 GetText() 在组合框中的是 GetLBText() 。
形式 1 : int GetLBText( int nIndex, LPTSTR lpszText ) const; 形式 2 : void GetLBText( int nIndex, CString& rString ) const;
说明 :使用 GetLBText 函数可以将组合框中的第 nIndex 个项目的文本送入 lpszText 或 rString 中。
3. 组合框发出的消息
(1) CBN_SELECTCHANGE :组合框的列表框中的选项改变时发送。 (2) CBN_EDITCHANGE :组合框的编辑框中文本改变时发出。
【例1.7】设计一个如图所示的对话框。如果单击“确定”按钮,则用 MessageBox 显示如图所示的信息框。
(1)首先创建一个对话框程序框架,然后放置各控件,进行属性设置,组合框的选项在设计阶段直接输入,按表连接变量,其余控件不需要连接变量。
(2)消息处理函数
18
void CTESTDlg::OnButton1() {
// TODO: Add your control notification handler code here UpdateData(TRUE); CString s; s=\品牌 :\ s=s+m_c; s=s+\
s=s+\数量 :\ s=s+m_e;
MessageBox(s); }
1.6 滚动条
滚动条是 CScrollBar 类的对象,是 Windows 应用程序中一个很重要的控件,通常附在对话框上用来协助观察数据或确定位置,也可以用来作为数据输入的工具。滚动条有水平和垂直两种。
【例 8】 建立一个水平滚动条,最小值为 0 ,最大值为 100 ,单击滚动条两端箭头时滑块移动的增量值为 2 ,单击滚动条中的空白处(滑块与两端箭头之间的区域)时滑块移动的增量值为 10 。另有一个只读的编辑框,显示了滑块当前位置所代表的值。
假定工程名为 TEST 。 1 .界面设计
首先创建一个对话框应用程序框架,然后放置水平滚动条、编辑框,按表连接变量,编辑框设置为只读。
2 .初始化
滚动条的初始化就是设置最小值,最大值,以及初始时滑块所代表的值。滚动条初始化在对话框的初始化函数中完成,涉及两个函数:
(1)设置最大值和最小值
形式: void SetScrollRange(int nMinPos , int nMaxPos , BOOL bRedraw = TRUE);
说明 : nMinPos 表示最小值 , nMaxPos 表示最大值 。 当 bRedraw 为 TRUE 时
19
重画滚动条。
(2)设置滑块的位置
格式: int SetScrollPos( int nPos , BOOL bRedraw = TRUE );
说明 : nPos 表示滑块的位置。当 bRedraw 为 TRUE 时重画滚动条。 滚动条初始化代码如下:
BOOL CTESTDlg::OnInitDialog() { ┆
// TODO: Add extra initialization here m_s.SetScrollRange(0,100); m_s.SetScrollPos(50);
m_e=50; // 初始时,编辑框显示 50 。
UpdateData(FALSE); // 更新编辑框显示的内容。 ┆ };
3 .编写消息处理函数
当用户在滚动条上进行操作时,滚动条接收不到任何消息。但是对话框却能接收到 WM_Hscroll (水平滚动条)或 WM_Vscroll (垂直滚动条)消息,也就是说,程序对滚动条的操作只能在 OnHScroll() 或 OnVScroll() 中编写代码。
滚动条处理 WM_Hscroll 消息的函数为:
void CTESTDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {
// TODO: Add your message handler code here and/or call default Cdialog::OnHScroll(nSBCode, nPos, pScrollBar); }
20