在对话框中使用子窗口控件
来源:互联网 发布:淘宝网上手机 编辑:程序博客网 时间:2024/05/12 07:24
子窗口控件定义的一般语法是:
CONTROL 文本, ID, 类, 风格, x, y, 宽度, 高度 [, 扩展风格]
“文本”指控件的初始化值,“ID”是子窗口向对话框过程发送WM_COMMAND中用的ID值,“类”可以是按钮(Button)、静态(Static)、编辑(Edit)、滚动条(ScrollBar)、列表框(ListBox)和组合框(ComboBox),这些类都是Windows系统中已经预定义的,“对话框管理器”在初始化的时候把每一条控件定义语句转换成下面的CreateWindow命令:
invoke CreateWindow, 类名, 文本, 风格, x, y, 宽度, 高度, 对话框窗口句柄, ID,
hInstance, NULL
正因为如此,所有可以用CreateWindow建立的子窗口都可以在资源中定义,只要知道要使用的类和风格就可以了。所以除了上面这些基本的类之外,对话框中还可以使用一些通用控件,如“日期”(SysDateTimePick32)、“月历”(SysMonthCal32)、“热键”(msctls_hotkey32)和“列表”(SysListView32)等,括号内是它们的类名,只要把定义语句的“类”写成对应的名称就可以了。
基于同一个预定义类的控件根据风格属性的不同,外表可能完全不同,如单选钮、复选框和分组框使用的类都是Button类,文本、图标框、位图框和线条等都是Static类。使用CONTROL语句定义的时候可能不是很直观,所以Rc.exe资源编译器允许使用另一种语法来书写控件定义:
控件名称 [文本,] ID, x, y, 宽度, 高度 [, 风格] [, 扩展风格]
这里使用“控件名称”而不是“类”是因为这个名称只是Rc.exe使用的缩写,并不是真正的Windows类的名称,“控件名称”由Rc.exe解释成“类”名,同时为它使用了几种默认的风格,定义语句中风格属性实际上是附加在默认风格上的,表5.4列出了每种控件使用的类和默认属性,除了表中列出的默认属性外,每种控件还被默认定义了WS_CHILD和WS_VISIBLE属性。
资源脚本中使用的控件名称
控件名称
说明
基于的类
默认窗口风格
PUSHBUTTON
按钮
Button
BS_PUSHBUTTON, WS_TABSTOP
DEFPUSHBUTTON
默认按钮
Button
BS_DEFPUSHBUTTON, WS_TABSTOP
CHECKBOX
复选框
Button
BS_CHECKBOX, WS_TABSTOP
AUTOCHECKBOX
自动复选框
Button
BS_AUTOCHECKBOX, WS_TABSTOP
STATE3
3态复选框
Button
BS_3STATE, WS_TABSTOP
AUTO2STATE
自动3态复选框
Button
BS_AUTO3STATE, WS_TABSTOP
RADIOBUTTON
单选框
Button
BS_RADIOBUTTON, WS_TABSTOP
AUTORADIOBUTTON
自动单选框
Button
BS_AUTORADIOBUTTON, WS_TABSTOP
GROUPBOX
分组框
Button
BS_GROUPBOX
SCROLLBAR
滚动条
ScrollBar
SBS_HORZ
CTEXT
居中文本
Static
SS_CENTER, WS_GROUP
LTEXT
左对齐文本
Static
SS_LEFT, WS_GROUP
RTEXT
右对齐文本
Static
SS_RIGHT, WS_GROUP
ICON
图标框
Static
SS_ICON
EDITTEXT
文本编辑
Edit
ES_LEFT, WS_BORDER, WS_TABSTOP
COMBOBOX
组合框
ComboBox
CBS_SIMPLE, WS_TABSTOP
LISTBOX
列表框
ListBox
LBS_NOTIFY, WS_BORDER
看下面的例子:
GROUPBOX “选项”, -1, 55, 5, 120, 100
PUSHBUTTON “退出”, IDCANCEL, 255, 115, 50, 14
这两条语句和下面的语句编译后产生的二进制资源文件是一模一样的:
CONTROL “选项”, -1, “Button”, BS_GROUPBOX | WS_TABSTOP, 55, 5, 120, 100
CONTROL “退出”, IDCANCEL, “Button”, BS_PUSHBUTTON | WS_TABSTOP, 255, 115, 50, 14
第一种语句的用法比第二种语句不但要直观许多,而且不必书写默认的窗口风格。
当用到的控件没有缩写语法时,那就必须用CONTROL定义了,下面的两句分别定义了一条横线和一个图片框,它们并没有缩写的用法:
CONTROL “”, -1, “Static”, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 60, 65, 110, 1
CONTROL BMP_ID, -1, “Static”, SS_BITMAP | WS_CHILD | WS_VISIBLE, 5, 5, 40, 95
- 在对话框中使用子窗口控件
- Win32汇编--使用资源--对话框--在对话框中使用子窗口控件(2)
- 对话框中的子窗口控件
- 在VC对话框中使用分割窗口
- 使用对话框作为子窗口
- 在别的对话框中使用控件变量
- 在子窗口中操作父窗口使用window.parent
- 窗口 子控件的使用
- 在MFC单文档程序中,怎样由子窗口控件调用父窗口中的控件
- 多文档中获得停靠窗口以及子对话框以及其内控件指针
- MFC基本对话框中,窗口最大化后,子控件也等比例放大!
- 子窗口使用父窗口的控件
- 在父对话框中嵌入子对话框
- 在父对话框中嵌入子对话框
- 在windows程序设计中,主窗口上的控件与对话框上的控件的区别
- 在vs2010内嵌对话框(窗口建立子窗口)
- 求助,窗口中怎么添加对话框控件
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- HTML5调用本地摄像头
- 第一次的面试经历
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- Django 学习
- java项目内存溢出解决方法
- 在对话框中使用子窗口控件
- java 异常捕捉 ( try catch finally )
- xcode开发环境中字母图标和debug navigator中的小图标的含义
- HDU 1824 —— Let's go home(2-SAT)
- C++ 协程与网络编程
- 给 GVIM 添加开发中常用的功能
- Java与模式—适配器模式
- 动态定义数组
- subline text 键盘设置 eclipse风格