程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 應用程序窗口示例,窗口示例

應用程序窗口示例,窗口示例

編輯:C++入門知識

應用程序窗口示例,窗口示例


 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 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved