极语言2-2 窗口外观——控制消息
整数 图标=加载图像(0,"sec.ico",图标类型,0,0,$10);从文件中加载一个图标,$10标志是从文件加载
发送消息(窗体,设置图标,0,图标);修改窗口标题栏显示的小图标,0是小图标,1是大图标
删除对象(图标);删除加载的图标对象,从而释放读取图标使用的内存
加载图标可以使用系统固有的图标,例如把图标换成整数 图标=载入图标(0,32518)
显示的就是一个盾牌图标;32512默认图标,32513错误图标,32514问号图标,32515警告图标,32516,信息图标
修改类值(窗体, 类背景色, 红刷);修改窗体的背景颜色为红色
重绘矩形(窗体, 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人员
改窗口值(窗体,窗口扩展,$200);修改窗体的扩展窗口风格为3D边框
改窗口值(窗体,窗口数值,数据);修改窗体的定义数值为指定数据
显隐窗口(窗体,窗口隐藏);隐藏窗口并激活其他窗口
显隐窗口(窗体,窗口显示);激活窗口并恢复原来的尺寸。
设置窗口(窗口,0,左,顶,0,0,1);设置窗口的位置,忽略宽高
设置窗口(窗口,0,0,0,宽,高,2);设置窗口的宽高,忽略位置。
设置窗口(标签1,-1,0,0,0,0,3);设置窗口显示在最顶层。尺寸位置不变
整数 窗口=获取窗口(窗体,同级最后);查找窗体同级别最后一个窗口
使用更多的是查找窗口:整数 窗口=查找窗口(0,窗口名)
发送消息(窗体,设置图标,0,图标);修改窗口标题栏显示的小图标,0是小图标,1是大图标
删除对象(图标);删除加载的图标对象,从而释放读取图标使用的内存
加载图标可以使用系统固有的图标,例如把图标换成整数 图标=载入图标(0,32518)
显示的就是一个盾牌图标;32512默认图标,32513错误图标,32514问号图标,32515警告图标,32516,信息图标
| 中文名字 | 常量数值 | 英文名称 | 释义 |
| 窗口改变 | $0024 | WM_GETMINMAXINFO | 当窗口将要改变大小或位置时,由系统发送本消息给窗口,用户拖动一个可重置大小的窗口时便会发出本消息。③参数:0;④数据:MINMAXINFO结构 |
| 图标重绘 | $0026 | WM_PAINTICON | 当一个最小化的窗口图标将被重绘时发送本消息。③参数:0;④数据:0 |
| 图标背景 | $0027 | WM_ICONERASEBKGND | 本消息发送给某个最小化的窗口,仅当它在画图标前它的背景必须被重画。③参数:0;④数据:0 |
| 切换焦点 | $0028 | WM_NEXTDLGCTL | 发送本消息给一个对话框程序窗口过程,以便在各控件间设置键盘焦点位置。③参数:0下个控件,非0上个控件;④数据:0参数为方向,非0参数为控件对象 |
| 打印变化 | $002A | WM_SPOOLERSTATUS | 每当打印管理列队增加或减少一条作业时就会发出本消息。③参数:状态;④数据:作业数 |
| 外观改变 | $002B | WM_DRAWITEM | 按钮、组合框、列表框、菜单的外观改变时会发送本消息给这些控件的所有者。③参数:控件号;④数据:DRAWITEMSTRUCT 结构 |
| 改变窗口 | $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) |
修改窗口类的值——控制外观
示例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,窗口名)
| 中文名字 | 常量数值 | 英文名称 | 释义 |
| 同级首个 | 0 | GW_HWNDFIRST | 同级别第一个,常用于GetWindow |
| 同级最后 | 1 | GW_HWNDLAST | 同级别最后一个 |
| 同级下个 | 2 | GW_HWNDNEXT | 同级别下一个 |
| 同级上个 | 3 | GW_HWNDPREV | 同级别上一个 |
| 从主窗口 | 4 | GW_OWNER | 属主窗口 |
| 属子窗口 | 5 | GW_CHILD | 查子窗口 |
| 属弹出窗 | 6 | GW_ENABLEDPOPUP | 查弹出窗 |

浙公网安备 33010602011771号