windows程序设计 显示一个窗口
#include <windows.h> HINSTANCE hinst; LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { static TCHAR szClassName[] = TEXT("MainWClass"); WNDCLASSEX wcx;//窗口类 HWND hwnd;//窗口句柄 MSG msg;//消息 hinst = hInstance;//应用程序实例句柄,保存为全局变量。 //填充窗口类的数据结构 wcx.cbSize = sizeof(wcx);//结构体大小 wcx.style = CS_HREDRAW | CS_VREDRAW;//样式:窗口大小改变时重绘界面 wcx.lpfnWndProc = MainWndProc;//窗口消息处理函数 wcx.cbClsExtra = 0;//不使用类内存 wcx.cbWndExtra = 0;//不使用窗口内存 wcx.hInstance = hInstance;//所属的应用程序实例句柄 wcx.hIcon = LoadIcon(NULL, IDI_APPLICATION);//图标:默认 wcx.hCursor = LoadCursor(NULL, IDC_ARROW);//光标:默认 wcx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景:白色 wcx.lpszMenuName = NULL;//菜单:不使用 wcx.lpszClassName = szClassName;//窗口类名 wcx.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(5), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR);//小图标 //注册窗口 if(!RegisterClassEx(&wcx)) { return 1; } //创建窗口 hwnd = CreateWindow( szClassName,//窗口名 TEXT("BASE"),//窗口标题 WS_OVERLAPPEDWINDOW,//窗口样式 CW_USEDEFAULT,//水平位置X:默认 CW_USEDEFAULT,//垂直位置Y:默认 CW_USEDEFAULT,//宽度:默认 CW_USEDEFAULT,//高度:默认 NULL,//父窗口:无 NULL,//菜单:使用窗口类的菜单 hInstance,//应用程序实例句柄 NULL//窗口创建时数据:无 ); if(!hwnd) { return 1; } //显示窗口 ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); //消息循环 while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg);//翻译消息 DispatchMessage(&msg);//分发消息 } return 0; } LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) { switch(umsg) { case WM_DESTROY: PostQuitMessage(0); break; } return DefWindowProc(hwnd, umsg, wParam, lParam); }