窗口外观——控制消息
整数 图标=加载图像(0,"sec.ico",图标类型,0,0,$10);从文件中加载一个图标,$10标志是从文件加载
发送消息(窗体,设置图标,0,图标)
;修改窗口标题栏显示的小图标,0是小图标,1是大图标删除对象(图标)
;删除加载的图标对象,从而释放读取图标使用的内存加载图标可以使用系统固有的图标,例如把图标换成整数 图标=载入图标(0,32518)
显示的就是一个盾牌图标;32512默认图标,32513错误图标,32514问号图标,32515警告图标,32516,信息图标
中文名字 | 常量数值 | 英文名称 | 释义 |
图标重绘 | $0026 | WM_PAINTICON | 当一个最小化的窗口图标将被重绘时发送本消息。 ③参数:0;④数据:0 |
图标背景 | $0027 | WM_ICONERASEBKGND | 本消息发送给某个最小化的窗口,仅当它在画图标前它的背景 必须被重画。③参数:0;④数据:0 |
打印变化 | $002A | WM_SPOOLERSTATUS | 每当打印管理列队增加或减少一条作业时就会发出本消息。 ③参数:状态;④数据:作业数 |
外观改变 | $002B | WM_DRAWITEM | 按钮、组合框、列表框、菜单的外观改变时会发送本消息给 这些控件的所有者。③参数:控件号;④数据:绘制项目类 |
改变窗口 | $0046 | WM_WINDOWPOSCHANGING | 本消息会发送给那些大小和位置(Z_Order)将被改变的窗口, 以调用设置窗口函数或其它窗口管理函数。 ③参数:0;④数据:WINDOWPOS 结构 |
窗口变化 | $0047 | WM_WINDOWPOSCHANGED | 本消息会发送给那些大小和位置(Z_Order)已被改变的窗口, 以调用设置窗口函数或其它窗口管理函数。 ③参数:0;④数据:WINDOWPOS 结构 |
改变风格 | $007C | WM_STYLECHANGING | 将要改变一个或多个窗口的风格时,发送本消息给那个窗口。 ③参数:-16窗口样式,-20扩展样式;④数据:STYLESTRUCT 结构 |
风格变化 | $007D | WM_STYLECHANGED | 改变一个或多个窗口的风格后,发送本消息给那个窗口。 ③参数:-16窗口样式,-20扩展样式;④数据:STYLESTRUCT 结构 |
窗口图标 | $007F | WM_GETICON | 本消息发送给某个窗口, 用于返回与某窗口有关联的大图标或小图标的句柄。 ③参数:0小图标,1大图标,2生成图标;④数据:DPI大小(16*16) |
设置图标 | $0080 | WM_SETICON | 应用程序发送本消息让一个新的大图标或小图标与某窗口相关联。 ③参数:0小图标,1大图标;④数据:图标;窗口标题栏是小图标, “Alt+Tab”对话框中显示大图标 |
图片类型
中文名字 | 常量 | 英文名称 | 释义 |
位图类型 | 0 | IMAGE_BITMAP | 位图类型(bmp) |
图标类型 | 1 | IMAGE_ICON | 图标类型(ico) |
光标类型 | 2 | IMAGE_CURSOR | 光标类型(cur) |
强图类型 | 3 | IMAGE_ENHMETAFILE | 强图类型(emf) |
窗口样式
中文名字 | 英文名称 | 数值 | 作用解释 |
细线边框 | WS_BORDER | 0x00800000 | 窗口具有细线边框 |
标题栏 | WS_CAPTION | 0x00C00000 | 窗口具有标题栏, (包含 WS_BORDER 样式) 。 |
是子窗口 | WS_CHILD | 0x40000000 | 窗口是子窗口。 具有此样式的窗口不能有菜单栏。 此样式不能与 WS_POPUP 样式一起使用。 |
是子窗口 | WS_CHILDWINDOW | 0x40000000 | 与 WS_CHILD 样式相同。 |
不绘子窗 | WS_CLIPCHILDREN | 0x02000000 | 排除在父窗口内进行绘制时子窗口占用的区域。 创建父窗口时使用此样式。 |
剪裁子窗 | WS_CLIPSIBLINGS | 0x04000000 | 相对于彼此剪裁子窗口;重绘时若有不绘子窗样式会将其他 重叠的子窗口剪裁到子窗口的区域之外进行更新。 |
是否禁用 | WS_DISABLED | 0x08000000 | 窗口最初处于禁用状态。 已禁用的窗口无法接收用户的输入。 |
对话边框 | WS_DLGFRAME | 0x00400000 | 窗口具有通常与对话框一起使用的样式的边框。 具有此样式的窗口不能具有标题栏。 |
分组控制 | WS_GROUP | 0x00020000 | 窗口是一组控件的第一个控件。组由第一个控件及其后定义的 所有控件组成,以便用户可以在组之间移动焦点。 |
水平滚动 | WS_HSCROLL | 0x00100000 | 窗口具有水平滚动条。 |
垂直滚动 | WS_VSCROLL | 0x00200000 | 窗口具有垂直滚动条。 |
最小化 | WS_ICONIC | 0x20000000 | 窗口最初最小化。 |
最大化 | WS_MAXIMIZE | 0x01000000 | 窗口最初是最大化的。 |
最大化钮 | WS_MAXIMIZEBOX | 0x00010000 | 窗口有一个“最大化”按钮。 不能与 WS_EX_CONTEXTHELP样式组合使用。 还必须指定 WS_SYSMENU 样式。 |
最小化 | WS_MINIMIZE | 0x20000000 | 窗口最初最小化。 |
最小化钮 | WS_MINIMIZEBOX | 0x00020000 | 窗口有一个最小化按钮。 不能与 WS_EX_CONTEXTHELP样式组合使用。 还必须指定 WS_SYSMENU 样式。 |
重叠窗口 | WS_OVERLAPPED | 0x00000000 | 窗口是重叠的窗口。 |
重叠窗口 | WS_TILED | 0x00000000 | 该窗口是一个重叠的窗口。 |
标题边框 | WS_OVERLAPPEDWINDOW | 0xCF0000 | 重叠的窗口带有标题栏和边框。 |
标题边框 | WS_TILEDWINDOW | 0xCF0000 | 重叠的窗口带有标题栏和边框。 |
弹出窗口 | WS_POPUP | 0x80000000 | 窗口是弹出窗口。 此样式不能与子窗口样式一起使用。 |
弹出标题 | WS_POPUPWINDOW | 0x80880000 | 窗口是弹出窗口带有菜单栏和细线边框。 |
可调边框 | WS_SIZEBOX | 0x00040000 | 窗口具有大小调整边框。 |
可调边框 | WS_THICKFRAME | 0x00040000 | 窗口具有调整大小边框。 |
系统菜单 | WS_SYSMENU | 0x00080000 | 窗口的标题栏上有一个窗口菜单。 还必须指定 WS_CAPTION 样式。 |
制表选择 | WS_TABSTOP | 0x00010000 | 窗口是一个控件,当用户按下 TAB 键时, 该控件可以接收键盘焦点。 |
是否可见 | WS_VISIBLE | 0x10000000 | 该窗口最初是可见的。 |
窗口扩展样式
中文名字 | 英文名称 | 数值 | 作用解释 |
双边窗口 | WS_EX_DLGMODALFRAME | 1 | 窗口有一个双边框 |
总在顶层 | WS_EX_TOPMOST | 8 | 窗口应放置在所有非最顶部窗口的上方 |
文件拖曳 | WS_EX_ACCEPTFILES | 0x10 | 窗口接受拖放文件。 |
窗口透明 | WS_EX_TRANSPARENT | 0x20 | 窗口显示为透明,因为基础同级窗口的位已被绘制。 |
MDI 窗口 | WS_EX_MDICHILD | 0x40 | 该窗口是 MDI 子窗口。 |
小标题栏 | WS_EX_TOOLWINDOW | 0x80 | 工具窗口具有短于普通标题栏的标题栏 和使用较小的字体绘制的窗口标题。 |
凸起边缘 | WS_EX_WINDOWEDGE | 0x100 | 窗口的边框带有凸起的边缘。 |
阴影边界 | WS_EX_CLIENTEDGE | 0x200 | 窗口有一个带有凹陷边缘的边框。 |
问号帮助 | WS_EX_CONTEXTHELP | 0x400 | 窗口的标题栏包含问号。 单击时光标将变成带指针的问号。 随后单击子窗口将收到 WM_HELP 消息。 |
导航子窗 | WS_EX_CONTROLPARENT | 0x10000 | 包含参与对话框导航的子窗口。 执行导航操作(例如处理 TAB 键、箭头键或 键盘助记键)时,对话管理器将递归为此窗口的子级。 |
静态边框 | WS_EX_STATICEDGE | 0x20000 | 窗口具有三维边框样式 旨在用于不接受用户输入的项。 |
到任务栏 | WS_EX_APPWINDOW | 0x40000 | 在顶级窗口可见时强行将其放在任务栏上。 |
分层窗口 | WS_EX_LAYERED | 0x80000 | 该窗口是一个分层窗口。 |
不重定向 | WS_EX_NOREDIRECTIONBITMAP | 0x00200000 | 窗口不会呈现到重定向图面。 这适用于没有可见内容或使用表面以外的机制提供其 视觉对象的窗口。 |
后台窗口 | WS_EX_NOACTIVATE | 0x8000000 | 创建的顶级窗口不会成为前台窗口。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
窗口外观类 | CREATESTRUCT | 48 | 定义了传递给应用程序的窗口过程的初始化参数,它定义了窗口外观相关特性 |
窗口外观类——成员表 | |||
---|---|---|---|
参数 | lpCreateParams | 整数 | 指向将被用于创建窗口的数据的指针 |
实例 | hInstance | 整数 | 标识了拥有新窗口的模块的模块实例的句柄 |
菜单 | hMenu | 整数 | 标识了要被用于新窗口的菜单。如果是子窗口,则包含整数ID。 |
父窗 | hwndParent | 整数 | 父窗口句柄 |
高度 | cy | 整数 | 指定新窗口的高度 |
宽度 | cx | 整数 | 指定新窗口的宽度 |
顶部 | y | 整数 | 指定新窗口的左上角y坐标 |
左边 | x | 整数 | 指定新窗口的左上角x坐标 |
风格 | style | 整数 | 指定了新窗口的风格。 |
名称 | lpszName | 整数 | 指定了新窗口的名字 |
类名 | lpszClass | 整数 | 指定了新窗口的类名 |
扩展 | dwExStyle | 整数 | 指定了新窗口的扩展风格 |
修改窗口类的值——控制外观
示例1:
修改窗口背景颜色
整数 红刷=创建画刷($FF);创建一个红色的画刷(用来填充颜色) 修改类值(窗体, 类背景色, 红刷);修改窗体的背景颜色为红色 重绘矩形(窗体, 0, 1)重绘窗体擦除背景,从而显示新的背景色画刷可以使用系统固有的,有0-15种,把红刷改成整数 红刷=取控件数(窗体,1,0,0)
这里假定文本框的编号为1,在文本框里输入0-15的数字,可以修改查看修改窗体背景颜色的效果
示例2:
修改窗口光标
整数 光标=加载图像(0,"sec.cur",光标类型,0,0,$10)
;从文件中加载一个图标,$10标志是从文件加载修改类值(窗体,窗类光标,光标)
;修改窗体的光标为指定的cur文件删除对象(图标)
;删除加载的图标对象,从而释放读取图标使用的内存加载光标可以使用系统固有的光标,例如把光标换成整数 光标=载入光标(0,32649)
显示的就是一个手形光标;
32512 箭头 32513 文本I 32514 转圈(忙) 32515 十字 32516 向上 32631 笔形 32642 左上右下对角线 32643 右上左下对角线 32644 水平调整 32645 垂直调整 32646 移动光标 32648 禁止 32649 链接 32650 后台工作 32651 帮助 32671 定位 32672 人员中文名字 | 常量数值 | 英文名称 | 释义 |
类菜单名 | -8 | GCL_MENUNAME | 获取/替换菜单名字符串的地址。 |
类背景色 | -10 | GCL_HBRBACKGROUND | 获取/替换与类有关的背景刷子的句柄。 |
窗类光标 | -12 | GCL_HCURSOR | 获取/替换与类有关的光标的句柄。 |
窗类图标 | -14 | GCL_HICON | 获取/替换与类有关的图标的句柄。 |
窗类模块 | -16 | GCL_HMODULE | 获取/替换注册类的模块的句柄。 |
窗类内存 | -18 | GCL_CBWNDEXTRA | 获得/修改与类中的每个窗口相关的额外窗口中内存空间的字节大小 |
窗类尺寸 | -20 | GCL_CBCLSEXTRA | 设置与类相关的尺寸的大小。不改变己分配的额外字节数。 |
窗类过程 | -24 | GCL_WNDPROC | 获取/替换与窗口类有关的窗口过程的地址。 |
窗类风格 | -26 | GCL_STYLE | 获取/替换窗口类的风格位。 |
窗类原子 | -32 | GCW_ATOM | 获得一个唯一标识窗口类的原子值 |
类小图标 | -34 | GCL_HICONSM | 获得与类有关的小图标句柄。 |
修改窗口属性——外观指针
改窗口值(窗体,窗口过程,@消息函数);为窗口过程设置新的函数地址。 改窗口值(窗体,窗口扩展,$200);修改窗体的扩展窗口风格为3D边框 改窗口值(窗体,窗口数值,数据);修改窗体的定义数值为指定数据
中文名字 | 常量数值 | 英文名称 | 释义 |
窗口过程 | -4 | GWL_WNDPROC | 获得/修改窗口过程的地址 |
窗口实例 | -6 | GWL_HINSTANCE | 获得/修改应用事例的句柄。 |
窗口父级 | -8 | GWL_HWNDPARENT | 获得/修改父窗口句柄。 |
窗口风格 | -16 | GWL_STYLE | 获/修改得窗口风格。 |
窗口扩展 | -20 | GWL_EXSTYLE | 获得/修改扩展窗口风格。 |
窗口数值 | -21 | GWL_USERDATA | 获得/修改与窗口有关的定义数值。 |
窗口标识 | -12 | GWL_ID | 获得/修改窗口标识。 |
对话消息 | 0 | DWL_MSGRESULT | 获得/修改在对话框过程中一个消息处理的返回值。 |
对话过程 | 4 | DWL_DLGPROC | 获得/修改对话框过程的地址 |
对话定义 | 8 | DWL_USER | 获得/修改应用程序私有的额外信息,例如一个句柄或指针。 |
修改窗口显示
显隐窗口(窗体,窗口最小);激活窗口并将其最小化。 显隐窗口(窗体,窗口隐藏);隐藏窗口并激活其他窗口。 显隐窗口(窗体,窗口显示);激活窗口并恢复原来的尺寸。
中文名字 | 常量数值 | 英文名称 | 释义 |
窗口隐藏 | 0 | SW_HIDE | 隐藏窗口并激活其他窗口。常用于显隐窗口 |
恢复原来 | 1 | SW_SHOWNORMAL | 激活并显示一个窗口。如果窗口被最小化或最大化, 系统将其恢复到原来的尺寸和大小。 |
窗口最小 | 2 | SW_SHOWMINIMIZED | 激活窗口并将其最小化。 |
窗口最大 | 3 | SW_SHOWMAXIMIZED | 激活窗口并将其最大化 |
恢复最近 | 4 | SW_SHOWNOACTIVATE | 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。 |
窗口显示 | 5 | SW_SHOW | 在窗口原来的位置以原来的尺寸激活和显示窗口。 |
最小切换 | 6 | SW_MINIMIZE | 最小化指定的窗口并且激活在Z序中的下一个顶层窗口。 |
最小激活 | 7 | SW_SHOWMINNOACTIVE | 窗口最小化,激活窗口仍然维持激活状态。 |
恢复激活 | 8 | SW_SHOWNA | 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。 |
激活原来 | 9 | SW_RESTORE | 激活并显示窗口。如果窗口最小化或最大化, 则系统将窗口恢复到原来的尺寸和位置。 |
恢复设定 | 10 | SW_SHOWDEFAULT | 依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态 |
修改窗口大小位置和显示隐藏
设置窗口(标签1,0,0,0,0,0,$23);在窗口周围画一个边框。尺寸位置不变 设置窗口(窗口,0,左,顶,0,0,1);设置窗口的位置,忽略宽高 设置窗口(窗口,0,0,0,宽,高,2);设置窗口的宽高,忽略位置。
中文名字 | 常量数值 | 英文名称 | 释义 |
保持尺寸 | $0001 | SWP_NOSIZE | 维持当前尺寸(忽略宽高参数)。常用于设置窗口 |
保持位置 | $0002 | SWP_NOMOVE | 维持当前位置(忽略左顶参数)。 |
保持层序 | $0004 | SWP_NOZORDER | 维持当前Z序。 |
保持图像 | $0008 | SWP_NOREDRAW | 不重画改变的内容。如果设置了这个标志,则不发生任何重画动作。 |
保持状态 | $0010 | SWP_NOACTIVATE | 不激活窗口。 |
增加边框 | $0020 | SWP_DRAWFRAME | 在窗口周围画一个边框(定义在窗口类描述中)。 |
显现窗口 | $0040 | SWP_SHOWWINDOW | 显示窗口 |
隐藏窗口 | $0080 | SWP_HIDEWINDOW | 隐藏窗口 |
清空窗口 | $0100 | SWP_NOCOPYBITS | 清除客户区窗口的所有内容。 |
不变顺序 | $0200 | SWP_NOREPOSITION | 不改变z序中的所有者窗口的位置。 |
防止同步 | $2000 | SWP_DEFERERASE | 防止产生同步消息。 |
防止死锁 | $4000 | SWP_ASYNCWINDOWPOS | 如果进程没有窗口,系统会向有窗口的线程发出消息。 防止在其他线程处理消息时发生死锁。 |
修改窗口层序
设置窗口(标签1,0,0,0,0,0,3);设置窗口显示在上层。尺寸位置不变 设置窗口(标签1,-1,0,0,0,0,3);设置窗口显示在最顶层。尺寸位置不变
中文名字 | 常量数值 | 英文名称 | 释义 |
移至顶序 | 0 | HWND_TOP | 将窗口置于Z序的顶部。常用于设置窗口 |
移至底层 | 1 | HWND_BOTTOM | 将窗口置于Z序的底部。 顶层窗口失去顶级位置,并且被置在其他窗口的底部。 |
移至顶层 | -1 | HWND_TOPMOST | 将窗口置于所有非顶层窗口之上。 即使窗口未被激活窗口也将保持顶级位置。 |
移至顶后 | -2 | HWND_NOTOPMOST | 将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。 |
查找指定窗口的指定关系窗口
中文名字 | 常量数值 | 英文名称 | 释义 |
同级首个 | 0 | GW_HWNDFIRST | 同级别第一个,常用于GetWindow |
同级最后 | 1 | GW_HWNDLAST | 同级别最后一个 |
同级下个 | 2 | GW_HWNDNEXT | 同级别下一个 |
同级上个 | 3 | GW_HWNDPREV | 同级别上一个 |
从主窗口 | 4 | GW_OWNER | 属主窗口 |
属子窗口 | 5 | GW_CHILD | 查子窗口 |
属弹出窗 | 6 | GW_ENABLEDPOPUP | 查弹出窗 |