📄 d008.bmp.txt
字号:
该函数被称为窗口函数,其中定义了处理发送到该类的窗口对象的消息的方法。窗口函
数是一个回调函数,所以在定义窗口函数时要使用CALLLBACK类型进行说明。参数hWnd
是一个窗口对象的句柄,一个窗口函数可以通过该句柄检测出当前正在处理哪个窗口对象的
消息。参数message是消息标识符。参数wParam和lParam是随同消息一起传送来的参数,
随着消息的不同,这两个参数所表示的含义也不大相同,在定义消息时对这两个参数的含义
同时进行定义。
当程序员设置了WNDCLASS变量的各个域之后,使用函数RegisterClass向Windows
注册这个类。至此,完成了定义一个窗口类的过程。函数RegisterClass的原型为:
BOOL RegistaClass(LPWNDCLASS lpWndClass);
该函数惟一的一个参数是指向WNDCLASS类型的变量的指针。函数返回非零,表示注
册成功,否则注册失败。不能向Windows注册具有相同名字(lpszClassName域指向相同的
两个字符串)的两个类,否则第二次注册失败并被忽略。
窗口的某些特征(如窗口的颜色等)属于窗口类中定义的,并由该窗口类的所有实例英
享。在注册了窗口类之后,程序员使用函数CreateWindow创建窗口,得到窗口类的一个实
例(一个窗口对象)的句柄。一个窗口可以是一个重叠式窗口,或是一个弹出式窗口,或是
一个隶属窗口,或是一个子窗口,这也是在使用CreateWindow函数时指定的。每一个子窗
口都有一个父窗口,每一个隶属窗口都有一个拥有者,这个拥有者是另一个窗口对象,而弹
出式窗口是一种特殊的窗口。
一个窗口对象所接受到的消息的响应是由该对象的方法决定的,这些方法被定义在窗口
函数中。同一类的所有对象共用同一个窗口函数。窗口函数决定着对象如何用内部方法对消
息作出响应,例如,如何在屏幕上画出窗口自身。
一个最简单的窗口函数为:
LRESULT CALLBACK WndProc(HWND hwnd, UNIT message, WPARAM wParam, LPARAM
IParam)
{
return DefWindowProc (hwnd, message, wParam,lParam);
}
该窗口函数通过调用Windows的函数DefWindowProc(默认窗口函数),让Windows的
默认窗口函数来处理所有发送到窗口对象上的消息。
当用户操作屏幕上的一个富口对象时(例如用户改变了屏幕上窗口对象的位置或大小)
或发生其他事件时,该事件的消息被存于应用程序的消息队列中,消息循环首先从该队列中
检索出该消息,然后将消息发送到某个对象上。发送过程由Windows来控制,Windows根
据消息结构中的hWnd域所指示的消息发送的目标对象,调用该对象所在类的窗口函数完成
消息的发送工作。窗口函数根据消息的种类,选择执行一段代码(方法),对消息进行处理,
并通过return语句回送一个处理结果或状态。消息循环、Windows和窗口函数协同配合,完
成一条消息的发送和处理。在处理完一条消息之后,如果应用程序队列中还有其他消息,则
继续进行上述处理过程。否则,应用程序产生的消息就在消息处理队列中进行等待。
在窗口函数中,使用switch语句来判断窗口函数接收到什么消息,通过执行相应的语句
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -