窗口(对话框/控件)——发送/接收消息
窗口消息可以使用发送消息向窗口发送消息,也可以在窗体消息这里处理接收的消息 初级程序默认的代码都有窗体消息这个程序段,在这里可以控制键盘鼠标等各种消息
程序段 窗体消息(窗口,消息,参数,数据) 文本 内容[16]="数值"-数据; 判断(消息)为 窗口创建{信息框(0,"创建")} 为 程序关闭{停止(0)} 为 窗口移动{窗体~内容} 为 窗口缩放{窗体~内容} 为 单击左键{左键点击(参数)} 否则 处理窗口(窗口,消息,参数,数据) 结束
上面这段代码是在收到窗口创建消息时, 弹出信息框;在收到程序关闭消息时停止程序运行
在收到窗口移动消息时,显示窗口的位置(左顶);在收到窗口缩放消息时,显示窗口的大小(宽高)
当然也可以使用发送消息给窗口,让程序来处理;发送消息(窗体,窗口关闭,0,0)
有些消息主要常用来接收处理,例如窗口改变或键盘鼠标等;有些消息就常用来发送,如获取设置文本等
对于控件有些通用的功能,比如:控制窗口(按钮,真) 启用按钮接受鼠标和键盘的控制
控制窗口(编辑框1,假)
禁用编辑框1接受鼠标和键盘的输入整数 数值=取控件数(窗体,1)
获取窗体上第一个控件内文字,并转换成数值改控件数(窗体,2,数值,真)
把数值转换成文字显示到窗体上第二个控件窗口整个窗口界面可以叫它对话框,对话框里的子窗口叫它控件,设计控件时候都会有独立的编号,称之为标识
刚才读写控件内数值使用的数值编号就是标识,在控件操作中十分常用,也就是设计控件时候的编号叫做标识
中文名字 | 常量数值 | 英文名称 | 释义 |
窗口创建 | 1 | WM_CREATE | 新建一个窗口。③参数:0;④数据:创建窗口的数据结构 |
程序关闭 | 2 | WM_DESTROY | 销毁一个窗口。③参数:0;④数据:0 |
窗口移动 | 3 | WM_MOVE | 移动一个窗口。③参数:0;④数据:xy坐标(各占16位) |
窗口缩放 | 5 | WM_SIZE | 改变一个窗口的大小。③参数:0=已调整;1最小化;2最大化, 3其它窗口还原;4其它窗口最大化;④数据:宽高大小(各16位) |
窗口激活 | 6 | WM_ACTIVATE | 一个窗口被激活或失去激活状态。③参数:0关闭,1非鼠标激活, 2鼠标激活;④数据:参数为0是激活窗口,非0是停用的窗口 |
获得焦点 | 7 | WM_SETFOCUS | 将键盘焦点转向一个窗口。③参数:失去焦点的窗口,可为0;④数据:0 |
失去焦点 | 8 | WM_KILLFOCUS | 使一个窗口失去焦点。③参数:接收焦点的窗口,可为0;④数据:0 |
可用状态 | 10 | WM_ENABLE | 使一个窗口处于可用状态。③参数:0为禁用,非零启用;④数据:0 |
是否重绘 | 11 | WM_SETREDRAW | 设置窗口是否能重绘。③参数:0不重绘,非0重绘;④数据:0 |
窗口重绘 | 15 | WM_PAINT | 当需要绘制一部分应用窗口的时候,发送本消息给所有者程序。 ③参数:0;④数据:0 |
窗口关闭 | $0010 | WM_CLOSE | 用户关闭窗口时会发送本消息,紧接着会发送程序关闭消息。 ③参数:0;④数据:0 |
消息结束 | $0012 | WM_QUIT | 提交退出函数提交一个代码数值,程序收到此消息,用以关闭消息循环, 结束程序的运行。③参数:退出码;④数据:0 |
窗口恢复 | $0013 | WM_QUERYOPEN | 最小化的窗口即将被恢复以前的大小位置。③参数:0;④数据:0 |
擦除背景 | $0014 | WM_ERASEBKGND | 当一个窗口的背景必须被擦除时本消息会被触发(如:窗口大小改变时)。 ③参数:设备;④数据:0 |
显示窗口 | $0018 | WM_SHOWWINDOW | 发送本消息给一个窗口,以便隐藏或显示该窗口。 ③参数:0隐藏,非0显示; ④数据:0不变,1最小化,2最大化,3正在还原,4已被还原 |
界面激活 | $001C | WM_ACTIVATEAPP | 窗口进程激活状态改动,正被激活的窗口属于不同的应用程序。 ③参数:0停用,非0激活;④数据:线程标识 |
模态窗口 | $001F | WM_CANCELMODE | 发送本消息来取消某种正在进行的模态(操作)(如鼠示捕获),例如: 启动一个模态窗口时,父窗会收到本消息;③参数:0;④数据:0 |
窗口改变 | $0024 | WM_GETMINMAXINFO | 当窗口将要改变大小或位置时,由系统发送本消息给窗口, 用户拖动一个可重置大小的窗口时便会发出本消息。 ③参数:0;④数据:MINMAXINFO结构 |
拖放小窗 | $0037 | WM_QUERYDRAGICON | 本消息发送给最小化的窗口,当该窗口将被拖放而其窗口类中没有定义 图标,应用程序能返回一个图标或光标的句柄。③参数:0;④数据:0 |
显存不足 | $0041 | WM_COMPACTING | 显示内存已经很少了。③参数:时间比;④数据:0。 例如,0x8000表示压缩内存所用的 CPU 时间的 50%。 |
首创窗口 | $0081 | WM_NCCREATE | 当某窗口首次被创建时,本消息在WM_CREATE消息发送前发送。 ③参数:0;④数据:创建窗口的全部数据 |
调整大小 | $214 | WM_SIZING | 当用户正在调整窗口大小时,发送本消息给窗口; ③参数:1左边缘,2右边缘,3上边缘,4左上角,5右上角,下边缘, 7左下角,8右下角;④数据:矩形类 |
循环调整 | $231 | WM_ENTERSIZEMOVE | 当某窗口进入移动或调整大小的模式循环时,本消息发送到该窗口。 ③参数:0;④数据:0 |
退出调整 | $232 | WM_EXITSIZEMOVE | 确定用户改变窗口大小或改变窗口位置的事件是何时完成的。 ③参数:0;④数据:0 |
窗口绘制 | $317 | WM_PRINT | 请求窗口在指定的设备(如打印机)绘制自身。 ③参数:设备;④数据:1绘可见窗口,2绘非工作区,4绘工作区, 8擦除背景,16绘所有可见子窗,32绘所有窗口 |
绘客户区 | $318 | WM_PRINTCLIENT | 请求窗口在指定的设备(如打印机)绘制其客户区。 ③参数:设备;④数据:1绘可见窗口,2绘非工作区,4绘工作区, 8擦除背景,16绘所有可见子窗,32绘所有窗口 |
中文名字 | 英文名称 | 长度 | 作用解释 |
窗口类 | WNDCLASS | 40 | 用来储存某一类窗口的信息,向系统注册此信息才能创建窗体。 |
窗口类——成员表 | |||
---|---|---|---|
风格 | style | 整数 | 窗口类的风格 |
消息 | lpfnWndProc | 整数 | 窗口消息处理函数 |
类长 | cbClsExtra | 整数 | 窗口类扩展 |
实长 | cbWndExtra | 整数 | 窗口实例扩展 |
实例 | hInstance | 整数 | 当前实例句柄,$400000 |
图标 | hIcon | 整数 | 窗口的小图标 |
光标 | hCursor | 整数 | 窗口鼠标光标 |
背景 | hbrBackground | 整数 | 窗口背景色 |
菜单 | lpszMenuName | 整数 | 窗口菜单 |
名称 | lpszClassName | 整数 | 窗口类名 |
中文名字 | 英文名称 | 长度 | 作用解释 |
消息类 | MSG | 28 | 定义了传递给应用程序的窗口过程的初始化参数,它定义了窗口外观相关特性 |
消息类——成员表 | |||
---|---|---|---|
窗口 | hwnd | 整数 | 表示消息所属的窗口。 |
消息 | message | 整数 | 表示消息类型的标识符 |
参数 | wParam | 整数 | 附加消息1 |
附加 | lParam | 整数 | 附加消息2 |
时间 | time | 整数 | 表示消息投递到消息队列中的时间 |
左边 | pt.x | 整数 | 鼠标在屏幕上左边的位置 |
顶部 | pt.y | 整数 | 鼠标在屏幕上顶部的位置 |