Windows程序设计之简单窗口的实现
要实现一个窗口的显示要经过以下步骤:
(1)创建窗口类
(2)注册窗口类
(3)创建窗口
(4)显示窗口
下面依次展示每个步骤的实现过程。
创建窗口类
Windows编程中主函数原型如下:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, PSTR szCmdLine, int iCmdShow)
在C语言中,程序的入口是main函数。相似的,在Windows程序中,WinMain是程序的入口。WINAPI是在头文件WINDEF.H中定义的标识符(这里不是很懂,等以后懂了再来补充)
#define WINAPI __stdcall
WinMain的第一个函数的参数叫做实例句柄。句柄其实就是一个数值,它是一些东西的标识。在这个程序中,作为第一个参数的实例句柄唯一标识。在Windows程序设计中,我们经常将句柄当做参数传递。第二个参数hPreInstance是标识了其他实例的句柄。第三个参数是用来运行程序的命令行,Windows程序在启动时用它把文件装入内存。第四个参数用来表示程序在一开始如何显示,正常、最大或最小化显示。
在结束这一节之前,我想先介绍一下匈牙利命名法。匈牙利命名法用位于变量名最前面的小写字母表示变量类型,之后采用驼峰命名法表示一个变量。比如hInstance,h表示该变量是一个句柄,Instance表示该变量是一个实例,二者合起来就表示这是一个实力句柄。Windows程序中的变量名前缀如下表:
前缀 | 数据类型 |
---|---|
c | char or WCHAR or TCHAR |
by | 无符号字符 |
n | short |
i | int |
x,y | int x,y坐标 |
cx,cy | int x,y的长度 |
B,f | BOOL(int),f表示flag |
w | WORD无符号短整型 |
l | LONG长整型 |
dw | DWOED无符号长整型 |
fn | 函数 |
s | 字符串 |
sz | 以0结束的字符串 |
h | 句柄 |
p | 指针 |
cb | 字节数 |
br | handle to a brush(画刷的句柄) |
注册窗口类
再