极语言2-2 窗口外观——控制消息

窗口外观——控制消息:

整数 图标=加载图像(0,"sec.ico",图标类型,0,0,$10);从文件中加载一个图标,$10标志是从文件加载
发送消息(窗体,设置图标,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 查弹出窗


posted @ 2023-12-02 08:53  火轮  阅读(80)  评论(0)    收藏  举报