第一个Windows程序

View Code
 1 #include<Windows.h>
 2 
 3 LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
 4 
 5 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nCmdSHow)
 6 {
 7     WNDCLASSEX WindowClass;
 8     static LPCTSTR szAppName=L"OFWin";
 9     HWND hWnd;
10     MSG msg;
11 
12     WindowClass.cbSize=sizeof(WNDCLASSEX);
13     WindowClass.style=CS_HREDRAW|CS_VREDRAW;
14     WindowClass.lpfnWndProc=WindowProc;
15 
16     WindowClass.cbClsExtra=0;
17     WindowClass.cbWndExtra=0;
18 
19     WindowClass.hInstance=hInstance;
20 
21     WindowClass.hIcon=LoadIcon(0,IDI_APPLICATION);
22     WindowClass.hCursor=LoadCursor(0,IDC_ARROW);
23 
24     WindowClass.hbrBackground=static_cast<HBRUSH>(GetStockObject(GRAY_BRUSH));
25 
26     WindowClass.lpszMenuName=0;
27     WindowClass.lpszClassName=szAppName;
28     WindowClass.hIconSm=0;
29 
30 
31     RegisterClassEx(&WindowClass);
32 
33     hWnd=CreateWindow(szAppName,L"A Basic Window the Hard Way",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
34                       CW_USEDEFAULT,CW_USEDEFAULT,0,0,hInstance,0);
35     ShowWindow(hWnd,nCmdSHow);
36     UpdateWindow(hWnd);
37 
38     while (GetMessage(&msg,0,0,0)==TRUE)
39     {
40         TranslateMessage(&msg);
41         DispatchMessage(&msg);
42     }
43     
44     return static_cast<int>(msg.wParam);
45     
46 }
47 
48 LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
49 {
50     HDC hDC;
51     PAINTSTRUCT PaintSt;
52     RECT aRect;
53 
54     switch(message)
55     {
56     case WM_PAINT:
57         hDC=BeginPaint(hWnd,&PaintSt);
58         GetClientRect(hWnd,&aRect);
59         SetBkMode(hDC,TRANSPARENT);
60 
61         DrawText(hDC,L"But,soft!What light through yonder window breaks?",-1,&aRect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
62 
63         EndPaint(hWnd,&PaintSt);
64         return 0;
65     case WM_DESTROY:
66         PostQuitMessage(0);
67         return 0;
68 
69     default:
70         return DefWindowProc(hWnd,message,wParam,lParam);
71     }
72 }
原文地址:https://www.cnblogs.com/daidaigua/p/2524442.html