最简单的一个win32程序

#include <windows.h>

HINSTANCE g_hInst = NULL;

//2 窗口处理函数
LRESULT CALLBACK WndProc( HWND hWnd, 
						 UINT nMsg, 
						 WPARAM wParam,
						 LPARAM lParam )
{
	//判断消息ID
	switch( nMsg )
	{
	case WM_DESTROY: //窗口销毁的消息
		PostQuitMessage( 0 ); //发送退出消息
		return 0;
	}
	//调用缺省的消息处理程序
	return DefWindowProc( hWnd, nMsg, 
		wParam, lParam );                   
}

//3 注册窗口类型
BOOL MyRegister( LPSTR pszClassName )
{
	WNDCLASS wc = {0};
	ATOM  nAtom = 0;
	//构造注册窗口的参数
	wc.style         = CS_VREDRAW|CS_HREDRAW;
	wc.lpfnWndProc   = WndProc;
	wc.cbClsExtra    = 0;
	wc.cbWndExtra    = 0;
	wc.hInstance     = g_hInst;
	wc.hIcon         = NULL;
	wc.hCursor       = NULL;
	wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE);
	wc.lpszMenuName  = NULL;
	wc.lpszClassName = pszClassName;
	//注册窗口
	nAtom = RegisterClass( &wc );
	if( 0 == nAtom )
	{
		MessageBox( NULL, "Register Failed",
			"Error", MB_OK|MB_ICONWARNING );
		return FALSE;
	}
	return TRUE;
}

//4 窗口创建
HWND MyCreate( LPSTR pszClassName )
{
	HWND hWnd = NULL;
	//创建窗口
	hWnd = CreateWindow( pszClassName, 
		"HelloWnd", /*WS_OVERLAPPEDWINDOW*/WS_POPUP,
		0, 0, 800, 600, NULL, NULL,
		g_hInst,    NULL );
	if( NULL == hWnd )
	{
		MessageBox( NULL, "CreateWnd Failed", 
			"Error", MB_OK );
		return NULL;
	}


	return hWnd;
}

//5 显示窗口
void DisplayWnd( HWND hWnd )
{
	//显示
	ShowWindow( hWnd, SW_SHOW );
	//刷新
	UpdateWindow( hWnd );
}
//6 消息处理
void Message( )
{
	MSG msg = { 0 };
	//消息循环处理,获取消息
	while( GetMessage( &msg, NULL, 0, 0 ) )
	{
		//派发消息
		DispatchMessage( &msg );
	}
}
//1 入口函数
int WINAPI WinMain( HINSTANCE hInst,
				   HINSTANCE hPrevInst,
				   LPSTR pszCmdLine,
				   int   nShowCmd )
{
	HWND hWnd = NULL;
	g_hInst = hInst;
	//注册窗口类型
	MyRegister( "MyWnd" );
	//创建注册类型的窗口
	hWnd = MyCreate( "MyWnd" );
	//显示窗口
	DisplayWnd( hWnd );
	//消息处理
	Message( );
	return 0;
}

原文地址:https://www.cnblogs.com/luoyinjie/p/7219376.html