/[dtapublic]/projs/trunk/projs/20161109_kicker2/kicker2.cpp
ViewVC logotype

Contents of /projs/trunk/projs/20161109_kicker2/kicker2.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 87 - (show annotations) (download)
Thu Nov 10 02:15:55 2016 UTC (8 years ago) by dashley
File size: 4832 byte(s)
Initial commit.
1 // kicker2.cpp : Defines the entry point for the application.
2 //
3
4 #include "stdafx.h"
5 #include "kicker2.h"
6
7 #define MAX_LOADSTRING 100
8
9 // Global Variables:
10 HINSTANCE hInst; // current instance
11 WCHAR szTitle[MAX_LOADSTRING]; // The title bar text
12 WCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name
13
14 // Forward declarations of functions included in this code module:
15 ATOM MyRegisterClass(HINSTANCE hInstance);
16 BOOL InitInstance(HINSTANCE, int);
17 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
18 INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
19
20 int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
21 _In_opt_ HINSTANCE hPrevInstance,
22 _In_ LPWSTR lpCmdLine,
23 _In_ int nCmdShow)
24 {
25 UNREFERENCED_PARAMETER(hPrevInstance);
26 UNREFERENCED_PARAMETER(lpCmdLine);
27
28 // TODO: Place code here.
29
30 // Initialize global strings
31 LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
32 LoadStringW(hInstance, IDC_KICKER2, szWindowClass, MAX_LOADSTRING);
33 MyRegisterClass(hInstance);
34
35 // Perform application initialization:
36 if (!InitInstance (hInstance, nCmdShow))
37 {
38 return FALSE;
39 }
40
41 HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_KICKER2));
42
43 MSG msg;
44
45 // Main message loop:
46 while (GetMessage(&msg, nullptr, 0, 0))
47 {
48 if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
49 {
50 TranslateMessage(&msg);
51 DispatchMessage(&msg);
52 }
53 }
54
55 return (int) msg.wParam;
56 }
57
58
59
60 //
61 // FUNCTION: MyRegisterClass()
62 //
63 // PURPOSE: Registers the window class.
64 //
65 ATOM MyRegisterClass(HINSTANCE hInstance)
66 {
67 WNDCLASSEXW wcex;
68
69 wcex.cbSize = sizeof(WNDCLASSEX);
70
71 wcex.style = CS_HREDRAW | CS_VREDRAW;
72 wcex.lpfnWndProc = WndProc;
73 wcex.cbClsExtra = 0;
74 wcex.cbWndExtra = 0;
75 wcex.hInstance = hInstance;
76 wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_KICKER2));
77 wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
78 wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
79 wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_KICKER2);
80 wcex.lpszClassName = szWindowClass;
81 wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
82
83 return RegisterClassExW(&wcex);
84 }
85
86 //
87 // FUNCTION: InitInstance(HINSTANCE, int)
88 //
89 // PURPOSE: Saves instance handle and creates main window
90 //
91 // COMMENTS:
92 //
93 // In this function, we save the instance handle in a global variable and
94 // create and display the main program window.
95 //
96 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
97 {
98 hInst = hInstance; // Store instance handle in our global variable
99
100 HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
101 CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
102
103 if (!hWnd)
104 {
105 return FALSE;
106 }
107
108 ShowWindow(hWnd, nCmdShow);
109 UpdateWindow(hWnd);
110
111 return TRUE;
112 }
113
114 //
115 // FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
116 //
117 // PURPOSE: Processes messages for the main window.
118 //
119 // WM_COMMAND - process the application menu
120 // WM_PAINT - Paint the main window
121 // WM_DESTROY - post a quit message and return
122 //
123 //
124 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
125 {
126 switch (message)
127 {
128 case WM_COMMAND:
129 {
130 int wmId = LOWORD(wParam);
131 // Parse the menu selections:
132 switch (wmId)
133 {
134 case IDM_ABOUT:
135 DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
136 break;
137 case IDM_EXIT:
138 DestroyWindow(hWnd);
139 break;
140 default:
141 return DefWindowProc(hWnd, message, wParam, lParam);
142 }
143 }
144 break;
145 case WM_PAINT:
146 {
147 PAINTSTRUCT ps;
148 HDC hdc = BeginPaint(hWnd, &ps);
149 // TODO: Add any drawing code that uses hdc here...
150 EndPaint(hWnd, &ps);
151 }
152 break;
153 case WM_DESTROY:
154 PostQuitMessage(0);
155 break;
156 default:
157 return DefWindowProc(hWnd, message, wParam, lParam);
158 }
159 return 0;
160 }
161
162 // Message handler for about box.
163 INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
164 {
165 UNREFERENCED_PARAMETER(lParam);
166 switch (message)
167 {
168 case WM_INITDIALOG:
169 return (INT_PTR)TRUE;
170
171 case WM_COMMAND:
172 if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
173 {
174 EndDialog(hDlg, LOWORD(wParam));
175 return (INT_PTR)TRUE;
176 }
177 break;
178 }
179 return (INT_PTR)FALSE;
180 }

Properties

Name Value
svn:eol-style native
svn:keywords Header

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25