77 子窗口控制概述
当子窗口的状态发生改变时,子窗口处理鼠标和键盘消息并通知父窗口。子窗口这时就变成了其父窗口高一级的输入设备。
可以建立自己的子窗口控制,也可以利用一些预定义的窗口类和窗口过程来建立标准的子窗口控制。
子窗口控制采用的形式有:按钮、复选框、编辑框、列表框、组合框、文本串、滚动条。
子窗口控制在对话框中最常用。
子窗口控制的位置和尺寸是在程序的资源描述文中的对话框模板中定义的。也可以...
windows_API阅读全文
69 计时器基础
计时器是一种输入设备,它周期性地每经过一个指定的时间间隔就用WM_TIMER消息通知应用程序一次。
可以通过调用SetTimer函数为Windows应用程序分配一个计时器。SetTimer有一个时间间隔范围为1~4294967295毫秒的整型参数,这个值指示Windows每隔多长时间给程序发送WM_TIMER消息。
当程序用完计时器时,就调用KillTimer函数停止计时器消息。
KillTimer调用清除消息队列中尚未被处理的WM_TIMER消息,从而使程序在调用...
windows_API阅读全文
60 鼠标基础
用GetSystemMetrics函数来确定鼠标是否存在:
fMouse = GetSystemMetrics(SM_MOUSEPRESENT);
要确定所安装鼠标上键的个数,可使用:
cButtons = GetSystemMetrics(SM_CMOUSEBUTTONS); //如果没有安装鼠标,返回0.
当Windows用户移动鼠标时,Windows在显示屏上移动一个称为“鼠标光标”的小位图。鼠标光标有一个指向显示屏上精确位置的单像素的“热点”。
Windows支持几种预定义的鼠标光标,程序可以使用...
windows_API阅读全文
48 键盘基础
Windows程序获得键盘输入的方式:键盘输入以消息的形式传递给程序的窗口过程。
Windows用8种不同的消息来传递不同的键盘事件。
Windows程序使用“键盘加速键”来激活通用菜单项。加速键通常是功能键或字母同ctrl键的组合。Windows将这些键盘加速键转换为菜单命令消息。
程序用来从消息队列中检索消息的MSG结构包括hwnd字段。此字段指出接收消息的窗口句柄。消息循环中的DispatchMessage函数向窗口过程发生该消息,此...
windows_API阅读全文
29 GDI基础
图形设备接口GDI是Windows的子系统,它负责在视频显示器和打印机上显示图形。
Windows NT中的图形主要由GDI32.DLL动态链接库输出的函数来处理。
GDI的主要目的之一是支持与设备无关的图形。
图形输出设备分为两大类:光栅设备和矢量设备。
大多数PC机显示器、打印机都是光栅设备。
绘图仪是矢量设备。
组成GDI的函数可以分为这样几类:
① 获取(或重建)和释放(或清除)设备描述表的函数;
② 获取有关设备描述表信...
windows_API阅读全文
16 有效矩形和无效矩形
窗口过程一旦接受到WM_PAINT消息之后,就准备更新整个客户区,但往往只需更新一个较小的区域。这个区域就称为“无效区域”。正是客户区内存在无效区域,才提示Windows将一个WM_PAINT消息放入消息队列。
Windows内部为每个窗口保存一个“绘图信息结构”,这个结构包含了包围无效区域的最小矩形的坐标以及其他信息,这个矩形就叫做“无效矩形”。
如果在窗口过程处理WM_PAINT消息之前,客户区又有一个区域变为无...
windows_API阅读全文
一 窗口和消息
1 WPARAM和LPARAM的意义
在Windows是一种16位系统时,WndProc的第三个参数被定义为WORD,是一个16位的无符号整数,而第四个参数被定义为一个LONG,是一个32位有符号整数,所以导致对单词PARAM(参数)加前缀W和L。
但在32位Windows中,WPARAM被定义为一个UINT,而LPARAM被定义为一个LONG,因此窗口过程的这两个参数都是32位的值。
2 前缀
前缀
全称
释义
C...
windows_API阅读全文