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

2019-06-11 12:05

}

if(s[i]>='a' && s[i]<='z') else

if (s[i]=='\\n' || s[i]=='\\r') else

s[i]='*';

s[i]=s[i]; s[i]=s[i]+'A'-'a';

m_e2.SetWindowText(s);

1.4 框架、单选按钮和复选框

框架、单选按钮和复选框都是对话框的常见控件。框架与静态文本框一样是CStatic类的对象,单选按钮和复选框与命令按钮一样都是CButton类的对象。

1.4.1 框架

当对话框上控件较多时,可以使用框架将一组相关的控件框起来,达到标识一组控件的作用。框架不需要连接变量,也不需要处理消息。框架的重要属性有:

(1) ID :所有框架的缺省 ID 都是 IDC_STATIC ,不需要重新设置。 (2)标题:该属性决定框架上的标题文本。

1.4.2 单选按钮

1. 设计要求

同一组中的按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按扭要选中“Group”属性,表示一组控件的开始。

2. 重要属性

(1) ID :每个命令按钮都有一个缺省 ID ,如 IDC_RADIO1 ,可以重新设置。 (2)标题:该属性值就是单选按钮右边显示的文本标题。

(3) Group :一组中第一个按钮选中该属性,表示它是一组的开始。

3. 消息

单选按钮能处理的消息是BN_CLICKED。

4. 重要函数

(1)设定单选按钮选中状态

11

初始时,可使用 Windows API 函数 CheckRadioButton() 设定一组单选按钮中选中的按钮。

形式: void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton); 说明:

① nIDFirstButton 是一组中第一个单选按钮的 ID ; ② nIDLastButton 是一组中最后一个单选按钮的 ID ;

③ nIDCheckButton 为初始时设置为选中的那个单选按钮的 ID 。 (2)判定单选按钮是否被选定

形式: UINT IsDlgButtonChecked( int nIDButton ) const;

说明: 如果 ID 为 nIDButton 的按钮被选定,则该函数的返回值为 true ,否则为 false 。

【例1.4】设计一个如图所示的程序。当单击 “ 确定 ” 后,用 AfxMessageBox 函数显示一个如图所示的消息框。

(1)界面设计

首先创建一个对话框程序框架,然后放置各控件,进行属性设置,将编辑框连接到 Cstring 类型的 m_e 变量,其余控件不需要连接变量。 将“男”和“教授”对应的单选钮的Group属性勾上。

(2)初始化

单选按钮的初始化工作在对话框的初始化函数实现。 BOOL CTESTDlg::OnInitDialog() { ┆

CheckRadioButton(IDC_RADIO1, IDC_RADIO2, IDC_RADIO1); // CheckRadioButton(IDC_RADIO3, IDC_RADIO5, IDC_RADIO3); ┆

};

(3)消息处理函数

void CTESTDlg::OnButton1() {

// TODO: Add your control notification handler code here

12

UpdateData(TRUE);//注意“oxa1”是表示出现了tab键

CString s; s+=m_e;

if(IsDlgButtonChecked(IDC_RADIO1)) s+=\男 \ else s+= \女 \

if(IsDlgButtonChecked(IDC_RADIO3)) s +=\教授 \

else if(IsDlgButtonChecked(IDC_RADIO4)) s+= \副教授 \ else s+= \讲师 \

AfxMessageBox(s);

}

1.4.3 复选框

1. 重要属性

(1) ID :每个复选框都有一个缺省 ID ,如 IDC_CHECK1 ,可以重新设置。 (2)标题:该属性值决定了复选框右边显示的文本标题。

2. 连接变量

复选框通常被连接到Value类别BOOL类型的变量。

3. 消息

复选框能处理 BN_CLICKED 消息。

【例 5】设计一个如图所示的程序。当单击“确定”后,在右边的编辑框中显示有关信息。

复选框应用示例

13

4. 界面设计

首先创建一个对话框程序框架,然后放置各控件,进行属性设计,各编辑框和复选框按表连接变量,其余控件不需要连接变量。

5. 消息处理函数

void CTESTDlg::OnButton1() {

// TODO: Add your control notification handler code here UpdateData(TRUE); CString s; s=m_e1; s+= \爱好 :\ if (m_c1) s+=\旅游 \ if (m_c2) s+= \运动 \ if (m_c3) s+= \音乐 \ m_e2=s; UpdateData(FALSE); }

1.5 列表框和组合框

列表框是CListBox类的对象,组合框是CComboBox的对象。

1.5.1 列表框

1. 属性设置

列表框的属性在如图所示的属性窗口中设置。

14

重要的属性有: (1) Selection

该属性决定用户的选择方式,缺省值为 Single 。属性值有: Single ── 单项选择

Multiple ── 多项选择,但是忽略 Ctrl 和 Alt 键。 Extended ── 允许使用 Ctrl 和 Alt 进行多项选择 None ── 禁止选择 (2) Sort

当该属性被选定后,列表框中的选项按字母顺序排列。

2. 常用成员函数

(1)添加项目

格式: int AddString( LPCTSTR lpszItem );

例如:语句 m_l. AddString(\陈蓉 \; 把“陈蓉”添加到了列表框 m_l 中。 (2)删除项目

格式: int DeleteString( UINT nIndex );

说明: nIndex 表示被删除项目在列表框中的位置,对于第一个选项, nIndex 应为 0 。 例如:语句 m_l. DeleteString (4) ;删除列表框中的第 5 个项目。 (3)获取当前被选定的项目的序号 格式: int GetCurSel( ) const;

例如:语句 int I=m_l.GetCurSel(); 将使 I 获得 m_l 列表框中当前选定的项目的序号。 (4) 获取列表框中指定的项目

格式 1 : int GetText( int nIndex, LPTSTR lpszBuffer ) const; 格式 2 : void GetText( int nIndex, CString& rString ) const;

说明 :将列表框中第 nIndex 个选项的文本送到 lpszBuffer 或 rString 中。 例如:假定有说明语句 char s1[20]; CString s2; ,则语句 m_l. GetText(4, s1); 和 m_l. GetText(4, rString); 把第 5 项内容分别送到 s1 和 s2 中。

【例1. 6】 编写一个能对列表框进行项目添加、修改和删除操作的应用程序,如图所示。“添加”按钮的功能是将文本框中的内容添加到列表框,“删除”按钮的功能是删除列表框中选定的选项。如果要修改列表框,则首先选定选项,然后单击“修改”按钮,所选的选项显示在文本框中,当在文本框中修改完之后再单击“修改确定”按钮更新列表框。

15


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

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

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

马上注册会员

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