API Windows 程序至少需要两个函数
一个是WinMain() 一个是消息处理函数WindowProc()
这两个函数是并列关系 都是有windows负责调用
WinMain()
WinMain()函数有四个形参,以及一个int返回类型
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow );
返回类型int后面有一个WINAPI函数说明符,将使系统以一种特殊的方式处理函数名和实参第一个参数 hInstance 是一个句柄, 指向正在运行的程序的句柄
第二个参数 hPreInstance 在32位系统已经完全失去意义
第三个参数 lpCmdLine 是指向某个字符串的指针,包含启动程序的命令行字符
第四个参数 nCmdShow 决定被创建窗口的外观. 可以是正常,最小化,或是其他. 数值由一系列 SW_开头的字符常量定义
WinMain()函数的功能有4个:
1.告诉windows要创建的窗口的种类
2.创建程序窗口
3.初始化程序窗口
4.获取属于该程序的windows消息
指定窗口种类
windows 定义了 WNDCLASSEX 的struct 类型来定义窗口类型
其结构如下:
struct WNDCLASSEX { UINT cbSize; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; HICON hIconSm; };
创建窗口:
1.注册窗口 RegisterClassEX( &WindowClass ); 或者调用 RegisterClass( &WindowClass );
2.创建窗口 CreateWindow() 可以添加一些窗口的附加属性
3.ShowWindow( hWnd, nCmdShow ) 第二个参数是WinMain()的第四个实参,指示屏幕上显示窗口的形式HWND hWnd; //定义一个窗口句柄
还有一个CreateWindowEx() 函数 可以以扩充样式信息创建窗口hWnd = CreateWindow( szAppName, //窗口类的名称 " The Window Name ", //窗口的标题栏显示的字符串 WS_ , //窗口样式, CW_ , //窗口左上角坐标的x值 CW_ , //窗口左上角坐标的y值 CW_ , //窗口宽度 CW_ , //窗口高度 0, //父窗口句柄 0, //菜单 hInstance, //当前程序实例的句柄 0 //窗口创建数据, 当设计MDI(多文档界面, multiple-document interface)时会用到 );