.也可把 sytle 设为 0.本程序中为wc.style CS_HREDRAW CS_VREDRAW,它表示当窗口的纵横坐标发生变化时要重画整个窗口。
你看:无论你怎样拉动窗口的大小,那行字都会停留在窗口的正中部,而假如把这个参数设为 0 的话,当改动窗口的大小时,那行字则不一定处于中部了。
2第二个参数:lpfnWndProc 包括一个指向该窗口类的消息处理函数的指针,此函数称为窗口过程函数。
它将接收 Windows 发送给窗口的消息,并执行相应的任务。
其原型为:long FAR PASCAL WndProcHWND unsignedWORDLONG并且必须在模快定义中回调它。
WndProc 是一个回调函数见第五节如果暂时无法理解这个模糊的概念意味着什么,可先放过,等到讲消息循环时再详谈。
3第三四个参数:cbWndExtra 域指定用本窗口类建立的所有窗口结构分配的额外字节数。
当有两个以上的窗口属于同一窗口类时,如果想将不同的数据和每个窗口分别相对应。
则使用该域很有用。
这般来讲,你只要把它们设为 0 就行了不必过多考虑。
4第五个参数:hInstance 域标识应用程序的实例 hInstance当然,实例名是可以改变的。
wc.hInstance hInstance 这一成员可使 Windows 连接到正确的程序。
5第六个参数:成员 hIcon 被设置成应用程序所使用图标的句柄,图标是将应用程序最小化时出现在任务栏里的的图标,用以表示程序仍驻留在内存中。
Windows 提供了一些默认图标,我们也可定义自己的图标,VC 里面专有一个制作图标的工具。
6第七个参数: hCursor 域定义该窗口产生的光标形状。
LoadCursor 可返回固有光标句柄或者应用程序定义的光标句柄。
IDC_ARROW 表示箭头光标.7第八个参数:wc.hbrBackground 域决定 Windows 用于着色窗口背景的刷子颜色,函数GetStockObject 返回窗口的颜色,本程序中返回的是白色,你也可以把它改变为红色等其他颜色.试试看8第九个参数:lpszMenuName 用来指定菜单名,本程序中没有定义菜单,所以为 NULL。
9第十个参数:lpszClassName 指定了本窗口的类名。
当对 WNDCLASS 结构域一一赋值后,就可注册窗口类了,在创建窗口之前,是必须要注册窗口类的,注册窗口类用的 API 函数是 RegisterClass注册失败的话,就会出现一个对话框如程序所示,函数RegisterClass 返回 0 值也只能返回 0 值,因为注册不成功,程序已经不能再进行下去了。
在本程序中注册窗口类如下:if RegisterClass ampwc MessageBox NULL TEXT quotThis program requires Windows NTquot szAppNameMB_ICONERROR return 0 SDK 编程讲座 之 第三讲:Windows 消息机制2二创建窗口注册窗口类后,就可以创建窗口了,本程序中创建窗口的有关语句如下: hwnd CreateWindow szAppName // window class name TEXT quot欢迎你的到来quot // window caption WS_OVERLAPPEDWINDOW // window style CW_USEDEFAULT // initial x position CW_USEDEFAULT // initial y position CW_USEDEFAULT // initial x size CW_USEDEFAULT // initial y size NULL // parent window handle NULL // window menu handle hInstance // program instance handle NULL // creation parameters参数 1:登记的窗口类名,这个类名.
上一篇:
iMC系列 六轴 四轴 运动控制卡快速应用_v1.1
下一篇:
多年来只想说一句,我不怪你