简单创建一个WIN32应用程序步骤
每个 C 和 C++ 应用程序必须具有一个 main 函数。此函数是应用程序的起始点。类似地,在 Win32 应用程序中,每个应用程序必须具有一个 WinMain 函数。WinMain 的语法如下所示: 
int WINAPI WinMain(HINSTANCE hInstance,//应用程序当前事例的句柄 
HINSTANCE hPrevInstance,//应用程序的先事例的句柄 
LPSTR lpCmdLine, 
int nCmdShow);除 WinMain 外,每个 Win32 应用程序还必须具有第二个函数(通常称为 WndProc),它代表窗口过程。 
WndProc 的语法如下所示:LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 
此函数的用途是处理应用程序从操作系统接收的任何消息。应用程序何时从操作系统接收消息?始终接收! 
例如,假设我们创建了包含“确定”按钮的对话框。当用户单击该按钮时,操作系统向应用程序发送消息, 
使我们知道某位用户按下了此按钮。WndProc 函数负责响应该事件。在本示例中,适当的响应可能是关闭对话框。 向 WinMain 添加功能。首先,在 WinMain 函数内部创建 WNDCLASSEX 类型的窗口类结构。此结构包含有关窗 
口的信息,如应用程序图标、窗口的背景色、在标题栏中显示的名称、窗口过程函数的名称等等。 
典型的 WNDCLASSEX 结构如下: 
WNDCLASSEX wcex; 
wcex.cbSize = sizeof(WNDCLASSEX); 
wcex.style = CS_HREDRAW | CS_VREDRAW; 
wcex.lpfnWndProc = WndProc; 
wcex.cbClsExtra = 0; 
wcex.cbWndExtra = 0; 
wcex.hInstance = hInstance; 
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); 
wcex.hCursor = LoadCursor(NULL, IDC_ARROW); 
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); 
wcex.lpszMenuName = NULL; 
wcex.lpszClassName = szWindowClass; 
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));现在已经创建了窗口类,接下来您必须注册它。使用 RegisterClassEx 函数,并将窗口类结构作为参数传递 
if (!RegisterClassEx(&wcex)) 
{ 
MessageBox(NULL, 
_T("Call to RegisterClassEx failed!"), 
_T("Win32 Guided Tour"), 
NULL); 
return 1; 
}现在已经注册了您自己的类,接下来创建窗口。使用 CreateWindow 函数,如下所示:HWND hWnd = CreateWindow( 
szWindowClass, 
szTitle, 
WS_OVERLAPPEDWINDOW, 
CW_USEDEFAULT, CW_USEDEFAULT, 
500, 100, 
NULL, 
NULL, 
hInstance, 
NULL 
); 
if (!hWnd) 
{ 
MessageBox(NULL, 
_T("Call to CreateWindow failed!"), 
_T("Win32 Guided Tour"), 
NULL); 
return 1; 
}此函数返回 HWND,它是某个窗口的句柄。 
创建了窗口后,我们可以使用以下代码将其显示在屏幕上:ShowWindow(hWnd, 
nCmdShow); 
UpdateWindow(hWnd); 到目前为止,此窗口还不会显示,因为我们尚未实现 WndProc 函数。 
WinMain 的最后一步是消息循环。此循环的用途是侦听操作系统发送的消息。应用程序收到消息后,将该消息调度到 WndProc 函数,以便进行处理。消息循环类似于: 
MSG msg; 
while (GetMessage(&msg, NULL, 0, 0)) 
{ 
TranslateMessage(&msg); 
DispatchMessage(&msg); 
} 
return (int) msg.wParam; 
向 WndProc 添加功能