MFC编程基础 1 基于对话框的Windows应用程序(4)

2019-06-11 12:05

列表框应用示例

(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


MFC编程基础 1 基于对话框的Windows应用程序(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《电气控制与可编程控制器》教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: