按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
知道所需处理的消息,就可以很快的推知该消息的处理函数名。
第三节 按钮
在本节中要讲述的实际包括四种控件:下压按钮、单选钮、复选框和
…………………………………………………………Page 313……………………………………………………………
组框,它们之间无论在外观还是在使用上都有较大的差异。在MFC中
之所以使用一个类CButton来封装这四种不同控件纯粹出于历史的原
因。这使得一些使用过Visual Basic之类的编程工具的程序员可能会
有一点混淆,但相信只需要很短的时间就可以习惯这一点转变。
下面我们分别讲述这四种按钮控件:
6。3。1 下压按钮
在基于对话框的应用程序中,下压按钮是最常见的控件之一,如图
6。10所示。
图6。 10 下压按钮
下面的步骤讲述如何向对话框中添加下压按钮控件。
1。 在ResourceView中双击需要添加下压按按钮控件的对话框模板,
Developer Studio将在资源编辑器中打开该对话框模板。如图6。11所
示。
2。 在图6。3所示的控件工具窗口中选择图标 ,直接使用鼠标在对话
框中绘制出一个下压按钮。
3。 右击所绘制的下压按钮,选择Properties命令打开其属性对话
框,设置下压按钮的各项属性。下面详细描述这些属性的含义:
…………………………………………………………Page 314……………………………………………………………
图6。 11 在资源编辑器中打开一对话框模板
图6。 12 在对话框中绘制下压按钮控件
一般属性:
ID: 在头文件中定义的符号。类型:符号、整
数或用引号括起来的字符串
Caption: 控件标签文本。如果在标题中的某个字母
前加上了 “&”符号,该字母在显示时将被
加上下划线,相应的 “&”符不会被显示。
在运行直接按下加有下划线的字母同单击
按钮具有同样的效果。默认情况下,资源
编辑器对按钮标题的命名依赖于控件的类
型,如Button1、Button2等。
Visible: 决定当应用程序第一次运行时控件是否可
见。类型:布尔值 默认值为真
Disabled: 决定当对话框创建时该控件是否显示为禁
止状态。类型:布尔值 默认值为假
…………………………………………………………Page 315……………………………………………………………
Group: 指定一组控件中的第一个控件。在同组控
件中用户可以使用箭头键在控件之间移
动。以tab order为序,在该控件之后的所
有该属性值为False的控件将被视为同一组
控件,直到遇上Group属性标记为True的控
件为止。类型:布尔值 默认值为假
Tabstop: 决定用户是否可以使用TAB键来定位到该控
件。类型:布尔值 默认值为假
HelpID: 为控件指定一个帮助标识符。该标识符基
于相应的资源标识符。类型:布尔值 默认
值为假
样式:
Default 该属性为真时,控件将作为对话框中的
button: 默认按钮,默认按钮在对话框第一次显
示时具有粗的黑边,用户在对话框中按
下ENTER键相当于单击该按钮。一个对话
框中只允许有一个默认按钮。类型:布
尔值 默认值为假
Owner draw: 创建一个自绘按钮。使用自绘按钮可以
定制按钮的外观。使用自绘按钮需要重
载下面的两个函数或其中之一:
CWnd::OnDrawItem和CButton::OnDraw。
Icon: 在按钮显示时使用一个图标来代替文
本。类型:布尔值 默认值为假
该按钮样式为Windows 95中新引入的按
钮样式
Bitmap: 在按钮显示时使用位图来代替文本。类
型:布尔值 默认值为假
该样式为Windows 95中新引入的样式
Multi…line: 当按钮文本太长时使用多行回绕的方式
进行显示。类型:布尔值 默认值为假
…………………………………………………………Page 316……………………………………………………………
Notify: 按钮控件被单击或双击时通知父窗口。
类型:布尔值 默认值为真
Flat: 使用平面外观代替按钮默认的三维外
观。类型:布尔值 默认值为假
Horizontal 设置按钮标题文本的对齐方式 (左对齐、
alignment: 右对齐、居中对齐或使用默认位置)
Vertical 设置按钮标题文本的对齐方式 (向上对
alignment: 齐、向下对齐、居中对齐或使用默认位
置)
扩展样式
Client edge: 使按钮看起来有下凹的感觉。类型:
布尔值 默认值为假
Static edge: 在按钮边缘创建边框。类型:布尔值
默认值为假
Modal frame: 提供一个三维框架
Transparent: 使控件透明。位于透明窗口下面的窗
口不会被该窗口所覆盖。具有透明样
式的窗口仅当所有底层兄弟窗口完成
更新之后才会收到WM_PAINT消息。类
型:布尔值 默认什为假
Accept files: 是否接受文件拖放。如果在控件上放
下文件时,控件将接收到
WM_DROPFILES消息。类型:布尔值
默认值为假
No parent 指定子窗口不向父窗口发送
notify: WM_PARENTNOTIFY消息。类型:布尔
值 默认值为假
Right aligned 指定文本为右对齐。类型:布尔值
text: 默认值为假
Right…to…left 使用从右向左的阅读方式来显示文
reading 本。主要用于希伯来语系和阿拉伯语
…………………………………………………………Page 317……………………………………………………………
order: 等。类型:布尔值 默认值为假
l 技巧:
l 如果需要在控件的标题文本中使用 “&”符,可以使用双写的
“&”符,如按钮文本 “&File && Directory”在显示时将成为
。
l 如果需要在控件标题中使用多行文本,可以将按钮控件的
Multiline属性设置为真,然后在需要换行的地方使用转义字符
〃n〃 或 〃r〃。在Multiline属性值为真的情况下,如果文本行的
宽度超过了控件的宽度,即使没有使用换行转义字符,文本也将
会在合适的地方进行折行处理。但要注意,其它一些转义字符序
列,如 〃t〃 等不被控件所支持。
我们一般只处理按钮控件一种通知消息:BN_CLICKED,该消息表示用
户单击了该按钮控件。按钮控件的另外一种通知消息是
BN_DOUBLECLICKED,它表示用户双击了按钮控件,但是一般情况下我
们不需要处理下压按钮的双击事件。