1 //Windows.h文件中包含应用程序中所需的数据类型和数据结构的定义 2 #include <Windows.h> 3 #include <tchar.h> 4 5 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //窗口函数说明 6 //------------------------------以下是入口函数的代码------------------------------ 7 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 8 { 9 WNDCLASSEX wcex; 10 HWND hWnd; 11 MSG msg; 12 TCHAR szWindowClass[] = L"窗口示例"; //窗口类名 13 TCHAR szTitle[] = L"My Windows"; //窗口标题名 14 15 //------------------------------以下初始化窗口类------------------------------ 16 wcex.cbSize = sizeof(WNDCLASSEX); //窗口类的大小 17 wcex.style = 0; //窗口类型为默认类型 18 wcex.lpfnWndProc = WndProc; //窗口处理函数为WndProc 19 wcex.cbClsExtra = 0; //窗口类无扩展 20 wcex.cbWndExtra = 0; //窗口实例无扩展 21 wcex.hInstance = hInstance; //当前实例句柄 22 wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); 23 //窗口的图标为默认图标 24 wcex.hCursor = LoadCursor(NULL, IDC_ARROW); 25 //窗口采用箭头光标 26 wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景为白色 27 wcex.lpszMenuName = NULL; //窗口中无菜单 28 wcex.lpszClassName = szWindowClass; //窗口类名为“窗口示例” 29 wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); 30 //窗口的小图标为默认图标 31 32 //------------------------------以下进行窗口类的注册------------------------------ 33 if (!RegisterClassEx(&wcex)) //如果注册失败则发出警告 34 { 35 MessageBox(NULL, _T("窗口类注册失败!"), _T("窗口注册"), NULL); 36 return 1; 37 } 38 //------------------------------以下创建窗口------------------------------ 39 hWnd = CreateWindow( 40 szWindowClass, //窗口类名 41 szTitle, //窗口实例的标题名 42 WS_OVERLAPPEDWINDOW, //窗口的风格 43 CW_USEDEFAULT, CW_USEDEFAULT, //窗口左下角坐标为默认值 44 CW_USEDEFAULT, CW_USEDEFAULT, //窗口的高和宽为默认值 45 NULL, //此窗口无父窗口 46 NULL, //此窗口无主菜单 47 hInstance, //创建此窗口应用程序的当前句柄 48 NULL //不使用该值 49 ); 50 if (!hWnd) //如果创建窗口失败则发出警告 51 { 52 MessageBoxW(NULL, L"创建窗口失败!", _T("创建窗口"), NULL); 53 return 1; 54 } 55 ShowWindow(hWnd, nCmdShow); //显示窗口 56 UpdateWindow(hWnd); //绘制用户区 57 while (GetMessage(&msg, NULL, 0, 0)) //消息循环 58 { 59 TranslateMessage(&msg); 60 DispatchMessage(&msg); 61 } 62 63 return(int)msg.wParam; //程序终止时将信息返回系统 64 } 65 //------------------------------以下是窗口函数的代码------------------------------ 66 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 67 { 68 switch (message) 69 { 70 case WM_DESTROY: 71 PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息 72 break; 73 default: 74 return DefWindowProc(hWnd, message, wParam, lParam); 75 //默认时采用系统消息默认处理函数 76 break; 77 } 78 return 0; 79 }
时间: 2024-10-04 22:15:41