按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
}
}
4。5。6 颜色对话框
当需要选择颜色的时候就可以使用 Windows 通用的颜色对话框,如图 4…32 所示。
CColorDialog 封装了字体对话框的使用,其使用方法与前面所述的模态通用对话框类似。
图 4…32 颜色对话框
GridDemo 例程中使用颜色对话框的代码在 CGridDemoView::OnSetColor()函数中。添加
步骤如下。
(1)添加 CGridDemoView::OnSetColor()消息处理函数。
CGridDemoView::OnSetColor() 函数是“编辑|颜色”菜单的消息处理函数,对应 ID 为
ID_SET_COLOR 。用户需要按照第 3 章的讲解,在“编辑”顶层菜单中添加标题为“颜色”,
ID 为 ID_SET_COLOR 的子菜单,然后为 CGridDemoView 类添加这个 ID 的消息处理函数,
即 OnSetColor() 。
(2 )编辑 CGridDemoView::OnSetColor()消息处理函数使用颜色对话框。代码如下:
void CGridDemoView::OnSetColor()
{
// TODO: Add your mand handler code here
//获得选中单元格的旧前景色
CColorDialog dlg(m_CellArray'm_nCurCellID'。GetFgColor());
if (dlg。DoModal()==IDOK)
·96 ·
…………………………………………………………Page 106……………………………………………………………
第 4 章 对话框
{
//设置新的前景颜色
m_CellArray'm_nCurCellID'。SetFgColor(dlg。GetColor());
}
}
4。6 消息对话框
消息对话框 MessageBox 是 Windows 系统中自带的最简单的对话框,用于提示一些简单
的信息,如图 4…33 所示。本章 4。1。3 节中实例 Sample4_1 在登录对话框的消息处理函数中就
大量使用了消息对话框。
图 4…33 消息对话框
在 MFC 中,消息对话框通过 CWnd::MessageBox()和 AfxMessageBox()两个函数进行调用。
前一个函数是 CWnd 的成员函数,而 AfxMessageBox()则是全局函数。两个函数的原型分别为:
int MessageBox(
LPCTSTR lpszText;
LPCTSTR lpszCaption = NULL;
UINT nType = MB_OK
);
int AfxMessageBox(
LPCTSTR lpszText;
UINT nType = MB_OK;
UINT nIDHelp = 0
);
o lpszText 参数:用于设置对话框的内容。
o lpszCaption 参数:用于设置对话框的标题。
o nType 参数:设置消息对话框的属性,属性可以为表 4…2 和表 4…3 中的取值的按位或的组合。
o nIDHelp 参数:用于设置帮助的上下文 ID 。
表 4…2 消息对话框主要参数——对话框类型
nType 取值 参数说明
MB_ABORTRETRY 有“终止”、“重试”和“忽略”按钮
MB_OK 有“确定”按钮
MB_OKCANCEL 有“确定”和“取消”按钮
MB_RETRYCANCEL 有“重试”和“取消”按钮
MB_YESNO 有“是”和“否”按钮
MB_YESNOCANCEL 有“是”、“否”和“取消”按钮
·97 ·
…………………………………………………………Page 107……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
表 4…3 消息对话框主要参数——对话框图标
nType 取值 显示图标
MB_ICONEXCLAMTION
MB_ICONWARNING
MB_ICONASTERISK
MB_ICONINFORMATION
MB_ICONQUESTION
MB_ICONHAND
MB_ICONSTOP
MB_ICONERROR
如图 4…33 所示的消息对话框可以用如下代码显示:
MessageBox(〃查找至末尾,是否从头开始查找?〃;
〃查找〃;MB_YESNO|MB_ICONQUESTION)
技巧:WM_MOUSEFIST 和 WM_MOUSELAST 分别指定了鼠标所能产生的第一个消息和最后一
个消息类型,因此程序可以 GetMessage (&msg; WM_MOUSEFIRST; WM_MOUSELAST )
函数等待并获取鼠标消息,获取的鼠标消息保存在参数 msg 中。
运行 MessageBox()或者 AfxMessageBox()都可打开模态消息对话框,返回值就是用户单
击的消息对话框的按钮 ID :
o IDABORT :单击“终止”按钮。
o IDCANCEL :单击“取消”按钮。
o IDIGNORE :单击“忽略”按钮。
o IDNO :单击“否”按钮。
o IDOK :单击“确定”按钮。
o IDRETRY :单击“重试”按钮。
o IDYES :单击“是”按钮。
4。7 本章小结
本章详细介绍了 Windows 系统中最常用的用户界面——对话框的使用,并根据对话框的
各种不同类型进行分类介绍。本章需要掌握的内容有:
o 一般对话框的创建和使用方法,包括模态和非模态对话框。
o 属性页对话框的创建和使用。
o 通用对话框的使用。
o 消息对话框的使用。
对话框在任何一个程序中都会大量使用,设计功能丰富完善、界面合理美观的对话框是
设计用户界面的重点和难点,需要认真学习、理解和掌握。
·98 ·
…………………………………………………………Page 108……………………………………………………………
第 5 章 常用控件
第 5 章 常用控件
在与用户的交互过程中,控件(Control )担任着重要的角色。MFC 提供了大量的控件类,
它们封装了控件的功能,通过这些控件类,可以方便地创建控件,对控件进行查询和控制。
控件可粗分为两类,一类是在 Windows 3。x 中就已支持的传统控件,另一类是 Windows
95/NT/2000 中支持的新型 Win32 控件,所有的控件类都是 CWnd 类的直接或间接派生类 。不
过对于新型 Win32 控件,应用程序只能创建控件对象而不能创建数据变量 。不管是什么类型
的控件,一般都具有 WS_CHILD 和 WS_VISIBLE 窗口风格,其中 WS_CHILD 指定窗口为子
窗口,WS_VISIBLE 使窗口是可见的。另外,大部分控件还具有 WS_TABSTOP 风格,
WS_TABSTOP 使控件具有 Tabstop 属性。MFC 类库提供的主要控件如表 5…1 所示。
表 5…1 常用控件列表
控件 功能 对应控件类
静态文本(Static Text ) 显示正文,一般不能接受输入信息 CStatic
显式位图、图标、方框和图元文件,一般不能接
图片(Picture ) CStatic
受输入信息
文本编辑框(Edit Box ) 输入并编辑正文,支持单行和多行编辑 CEdit
命令按钮(Button ) 响应用户的输入,触发相应的事件 CButton
用作选择标记,可以有选中、不选中和不确定 3
检查框(Check Box ) CButton
种状态
单选按钮(Radio Button ) 用来从两个或多个选项中选中一项 CButton
显示正文和方框,主要用来将相关的一些控件聚
组框(Group Box ) CButton
成一组
显示一个列表,用户可以从该列表中选择一项或
列表框(List Box ) CListBox
多项
是一个编辑框和一个列表框的组合,分为简易式、
组合框(bo Box ) CboBox
下拉式和下拉列表式
主要用来从一个预定义范围值中迅速而有效地选
滚动条(Scroll Bar ) CScrollBar
取一个整数值
列表控件(ListCtrl ) 主要用来显示列表型报表,提供多种显示模式 CListCtrl
树型控件(TreeCtrl ) 主要用来显示树状结构数据