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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 87 - (hide annotations) (download)
Thu Nov 10 02:15:55 2016 UTC (7 years, 4 months ago) by dashley
File size: 4832 byte(s)
Initial commit.
1 dashley 87 // 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