- WinMain()函数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { return 0; }
hInstance:HINSTANCE 类型,指向某个实例的句柄,实例是正在运行的程序。
lpCmdLine:指向某个字符串的指针,该字符串包含启动程序的命令行字符。
nCmdShow:决定被创建窗口的外观。
- 窗口过程函数
此函数处理应用程序从操作系统接收的许多消息。 WndProc 负责响应该事件。
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
- 指定程序窗口
WNDCLSSEX:特殊struct类型,包含用来指定窗口的数据。
typedef struct tagWNDCLASSEX { UINT cbSize; //The size, in bytes, of this structure. UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; HICON hIconSm; } WNDCLASSEX, *PWNDCLASSEX;
构造WNDCLASSEX类型对象并填写对象成员的值
static LPCTSTR szAPPName = L"APP"; WNDCLASSEX WindowClass; WindowClass.cbSize = sizeof(WNDCLASSEX); WindowClass.style = CS_HREDRAW | CS_VREDRAW;//改变窗口的宽度或高度,则重画窗口 WindowClass.lpfnWndProc = WndProc;//存储着指向程序中处理消息的函数指针 WindowClass.cbClsExtra = 0;//为特别用途提供额外空间 WindowClass.cbWndExtra = 0;//为特别用途提供额外空间 WindowClass.hInstance = hInstance;//容纳当前应用程序实例的句柄 WindowClass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));//定义最小化时应用程序的图标 WindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);//定义窗口使用的光标 WindowClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);//定义窗口工作区的背景颜色 WindowClass.lpszMenuName = NULL;//定义窗口菜单的资源的名称 WindowClass.lpszClassName = szAPPName;//存储着为标识该特定的窗口类而提供的名称,通常使用应用程序的名称为该成员赋值 WindowClass.hIconSm = LoadIcon(WindowClass.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));//标识某个与该窗口类相联系的小图标
- 创建程序窗口
注册创口类
RegisterClassEx(&WindowClass);
创建窗口,使用函数CreateWindow(),传递给CreateWindow()函数的其他实差将添加一些附加的特性,函数返回所创建窗口的句柄。
HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowName, _In_ DWORD dwStyle, _In_ int x, _In_ int y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam );
HWND hWnd; hWnd = CreateWindow( szAPPName,//类名称,用来识别前面在RegisterClassEx()函数调用中传递的WNDCLASSEX struct szTitle,//定义标题栏上出现的文本 WS_OVERLAPPEDWINDOW,//定义窗口在创建之后应具有的样式 CW_USEDEFAULT, CW_USEDEFAULT, 500, 100,//定义窗口在屏幕上的位置和大小 NULL,//父窗口的句柄 NULL,//不需要菜单 hInstance,//指定由Windows传递给程序的的当前程序实例的句柄 NULL//多文档界面 );
显示窗口
ShowWindow(hWnd, nCmdShow);
重画窗口
UpdateWindow(hWnd);
时间: 2024-10-13 18:44:51