标签:des style blog color os for
1 #include 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 TCHAR szAppName[] = TEXT("IconDemo");
13 WNDCLASS wnd;
14 HWND hwnd;
15 MSG msg;
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(hInstance, MAKEINTRESOURCE(IDI_ICON));
21 wnd.hCursor = LoadCursor(NULL, IDC_ARROW);
22 wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
23 wnd.lpszMenuName = NULL;
24 wnd.lpszClassName = szAppName; //窗口类标识,用在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 hwnd = CreateWindow(szAppName, TEXT("Hello"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); //第二个参数为窗口标题
33 ShowWindow(hwnd, nShowCmd);
34 UpdateWindow(hwnd);
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
48 static HICON hIcon;
49 static int cxIcon, cyIcon, cxClient, cyClient;
50 HINSTANCE hInstance;
51 int x, y;
52
53 switch(uMsg)
54 {
55
56 case WM_CREATE:
57 {
58 hInstance = ((LPCREATESTRUCT) lParam)->hInstance;//WM_CREATE消息的lParam参数是一个CREATESTRUCT结构的指针,包含hInstance.
59 hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
60 cxIcon = GetSystemMetrics(SM_CXICON); //获取图标大小,上一条LoadIcon关联
61 cyIcon = GetSystemMetrics(SM_CYICON);
62 return 0;
63 }
64 break;
65
66 case WM_PAINT:
67 {
68 hdc = BeginPaint(hwnd, &ps);
69 for (y = 0; y cyIcon)
70 {
71 for (x = 0; x cxIcon)
72 {
73 DrawIcon(hdc, x, y, hIcon); //绘制
74 }
75
76 }
77 EndPaint(hwnd, &ps);
78
79 }
80 break;
81
82 case WM_SIZE:
83 {
84 cxClient = LOWORD(lParam);
85 cyClient = HIWORD(lParam);
86 }
87 break;
88
89 case WM_DESTROY:
90 PostQuitMessage(0);
91 return 0;
92 }
93
94 return DefWindowProc(hwnd, uMsg, wParam, lParam);
95 }
注:参阅windows 程序设计第五版334页
windows 程序设计自学:添加图标资源,搜素材,soscw.com
windows 程序设计自学:添加图标资源
标签:des style blog color os for
原文地址:http://www.cnblogs.com/bjdxy/p/3819396.html