windows 程序設計自學:添加字符串資源

 1 #include <windows.h>
 2 #include "resource.h"
 3 
 4 LRESULT CALLBACK MyWndProc(  HWND hwnd,      // handle to window
 5   UINT uMsg,      // message identifier
 6   WPARAM wParam,  // first message parameter
 7   LPARAM lParam   // second message parameter
 8   );
 9 
10 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
11 {
12     WNDCLASS wnd;
13     HWND hwnd;
14     MSG msg;
15     TCHAR szAppName[40]; //定義應用程序名稱
16     wnd.style = CS_HREDRAW | CS_VREDRAW; //水平或垂直改變窗口都被重繪 與MyWndProc的WM_PAINT消息關聯
17     wnd.lpfnWndProc = MyWndProc;
18     wnd.cbClsExtra = 0;
19     wnd.cbWndExtra = 0;
20     wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
21     wnd.hCursor = LoadCursor(NULL, IDC_ARROW);
22     wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
23     wnd.lpszMenuName = NULL;
24     wnd.lpszClassName = "HelloClass"; //窗口類標識,用在CreateWindow的第一個參數
25     wnd.hInstance = hInstance;
26     if(!RegisterClass(&wnd))
27     {
28         MessageBox(NULL, TEXT("沒法建立窗口"), TEXT("ERROR"), MB_OK|MB_ICONERROR);
29         return 0;
30     }
31 
32     LoadString(hInstance, IDS_APPNAME, szAppName, sizeof(szAppName)); //LoadString函數爲將資源複製到程序區緩存中
33     hwnd = CreateWindow("HelloClass", szAppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); //第二個參數爲窗口標題
34     ShowWindow(hwnd, nShowCmd);
35     while (GetMessage(&msg, NULL, 0, 0))
36     {
37         TranslateMessage(&msg);
38         DispatchMessage(&msg);
39     }
40     return 0;
41 }
42 
43 LRESULT CALLBACK MyWndProc(  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
44 {
45     HDC hdc; //定義設備環境句柄
46     PAINTSTRUCT ps; //繪製結構
47     RECT rect; //矩形結構
48     switch(uMsg)
49     {
50     case WM_PAINT:
51     {    
52         hdc = BeginPaint(hwnd, &ps);
53         GetClientRect(hwnd, &rect);
54         DrawText(hdc, TEXT("Hello,World!"), -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
55         EndPaint(hwnd, &ps);
56     }
57     break;    
58     case WM_DESTROY:
59         PostQuitMessage(0);
60         return 0;
61     }
62 
63     return DefWindowProc(hwnd, uMsg, wParam, lParam);    
64 }

 int LoadString( HINSTANCE hInstance, // handle to resource module UINT uID, // resource identifier LPTSTR lpBuffer, // resource buffer int nBufferMax // size of buffer);windows

相關文章
相關標籤/搜索