質問編集履歴
5
最後の完成形のコード
title
CHANGED
File without changes
|
body
CHANGED
@@ -221,4 +221,215 @@
|
|
221
221
|
ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
|
222
222
|
```
|
223
223
|

|
224
|
-
toolbar4.bmp
|
224
|
+
toolbar4.bmp
|
225
|
+
|
226
|
+
##完成形
|
227
|
+
```
|
228
|
+
#define _CRT_SECURE_NO_WARNINGS
|
229
|
+
#include <windows.h>
|
230
|
+
#include <tchar.h>
|
231
|
+
#include <commctrl.h>
|
232
|
+
#include "toolbar.h"
|
233
|
+
#define TITLE TEXT("Kitty on your lap")
|
234
|
+
|
235
|
+
|
236
|
+
HWND hToolBar; // ツールバーのウィンドウハンドル
|
237
|
+
|
238
|
+
char szClassName[] = "toolbar"; //ウィンドウクラス
|
239
|
+
|
240
|
+
#define TOOLBAR_FLAT 0x800
|
241
|
+
|
242
|
+
TBBUTTON tbb[] = {
|
243
|
+
{0, IDM_1, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
244
|
+
{1, IDM_2, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
245
|
+
{2, IDM_3, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
246
|
+
{3, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
247
|
+
{4, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
248
|
+
{5, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
249
|
+
{6, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
250
|
+
{8, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
251
|
+
{9, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
252
|
+
{10, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
253
|
+
{11, IDM_4, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
|
254
|
+
|
255
|
+
|
256
|
+
};
|
257
|
+
TBBUTTON tb = { 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 };
|
258
|
+
|
259
|
+
|
260
|
+
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
|
261
|
+
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
|
262
|
+
BOOL InitApp(HINSTANCE, LPCTSTR);
|
263
|
+
BOOL InitInstance(HINSTANCE, LPCTSTR, int);
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,
|
268
|
+
LPSTR lpsCmdLine, int nCmdShow)
|
269
|
+
{
|
270
|
+
|
271
|
+
MSG msg;
|
272
|
+
LPCTSTR szClassName = _T("timer"); //ウィンドウクラス
|
273
|
+
|
274
|
+
if (!hPrevInst) {
|
275
|
+
if (!InitApp(hInstance, szClassName))
|
276
|
+
return 0;
|
277
|
+
|
278
|
+
|
279
|
+
}
|
280
|
+
if (!InitInstance(hInstance, szClassName, nCmdShow)) {
|
281
|
+
return 0;
|
282
|
+
}
|
283
|
+
while (GetMessage(&msg, NULL, 0, 0)) {
|
284
|
+
TranslateMessage(&msg);
|
285
|
+
DispatchMessage(&msg);
|
286
|
+
}
|
287
|
+
return (int)msg.wParam;
|
288
|
+
}
|
289
|
+
|
290
|
+
|
291
|
+
BOOL InitApp(HINSTANCE hInst, LPCTSTR szClassName)
|
292
|
+
{
|
293
|
+
WNDCLASS wc;
|
294
|
+
wc.style = CS_HREDRAW | CS_VREDRAW;
|
295
|
+
wc.lpfnWndProc = WndProc; //プロシージャ名
|
296
|
+
wc.cbClsExtra = 0;
|
297
|
+
wc.cbWndExtra = 0;
|
298
|
+
wc.hInstance = hInst; //インスタンス
|
299
|
+
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
|
300
|
+
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
301
|
+
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
|
302
|
+
wc.lpszMenuName = NULL; //メニュー名
|
303
|
+
wc.lpszClassName = szClassName;
|
304
|
+
return (RegisterClass(&wc));
|
305
|
+
}
|
306
|
+
|
307
|
+
//ウィンドウの生成
|
308
|
+
|
309
|
+
BOOL InitInstance(HINSTANCE hInst, LPCTSTR szClassName, int nCmdShow)
|
310
|
+
{
|
311
|
+
|
312
|
+
HWND hWnd;
|
313
|
+
|
314
|
+
hWnd = CreateWindow(szClassName,
|
315
|
+
_T("toolbar"),//タイトルバーにこの名前が表示されます
|
316
|
+
WS_OVERLAPPEDWINDOW, //ウィンドウの種類
|
317
|
+
CW_USEDEFAULT, //X座標
|
318
|
+
CW_USEDEFAULT, //Y座標
|
319
|
+
CW_USEDEFAULT, //幅
|
320
|
+
CW_USEDEFAULT, //高さ
|
321
|
+
NULL, //親ウィンドウのハンドル、親を作るときはNULL
|
322
|
+
NULL, //メニューハンドル、クラスメニューを使うときはNULL
|
323
|
+
hInst, //インスタンスハンドル
|
324
|
+
NULL);
|
325
|
+
if (!hWnd)
|
326
|
+
return FALSE;
|
327
|
+
ShowWindow(hWnd, nCmdShow);
|
328
|
+
UpdateWindow(hWnd);
|
329
|
+
return TRUE;
|
330
|
+
}
|
331
|
+
|
332
|
+
//ウィンドウプロシージャ
|
333
|
+
|
334
|
+
//
|
335
|
+
//LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
336
|
+
//{
|
337
|
+
// PAINTSTRUCT ps;
|
338
|
+
// HDC hdc;
|
339
|
+
// TCHAR greeting[] = _T("Hello, World!");
|
340
|
+
// switch (msg)
|
341
|
+
// {
|
342
|
+
// case WM_PAINT:
|
343
|
+
// // 描画処理の開始
|
344
|
+
// hdc = BeginPaint(hWnd, &ps);
|
345
|
+
// // 文字列の出力。「Hello, World!」と出力する。
|
346
|
+
// TextOut(hdc,
|
347
|
+
// 5, 5,
|
348
|
+
// greeting, _tcslen(greeting));
|
349
|
+
// // ペイント処理の終了
|
350
|
+
// EndPaint(hWnd, &ps);
|
351
|
+
// break;
|
352
|
+
// case WM_DESTROY:
|
353
|
+
// PostQuitMessage(0);
|
354
|
+
// break;
|
355
|
+
// default:
|
356
|
+
// return DefWindowProc(hWnd, msg, wp, lp);
|
357
|
+
// break;
|
358
|
+
// }
|
359
|
+
//
|
360
|
+
// return 0;
|
361
|
+
//}
|
362
|
+
//
|
363
|
+
|
364
|
+
|
365
|
+
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
366
|
+
{
|
367
|
+
int id;
|
368
|
+
HINSTANCE hInst;
|
369
|
+
static HBITMAP hBitmap;
|
370
|
+
|
371
|
+
switch (msg) {
|
372
|
+
case WM_CREATE:
|
373
|
+
hInst = (HINSTANCE)GetWindowLong(hWnd, -6);
|
374
|
+
InitCommonControls();
|
375
|
+
hBitmap = LoadBitmap(
|
376
|
+
((LPCREATESTRUCT)lp)->hInstance,
|
377
|
+
MAKEINTRESOURCE(ID_MYBMP)
|
378
|
+
);
|
379
|
+
hToolBar = CreateToolbarEx(
|
380
|
+
hWnd,
|
381
|
+
WS_CHILD | WS_VISIBLE,
|
382
|
+
ID_TOOLBAR, // コントロールID
|
383
|
+
9, //イメージの数
|
384
|
+
NULL,
|
385
|
+
(UINT_PTR)hBitmap, //リソースかmakeintresource
|
386
|
+
tbb,
|
387
|
+
9, // ボタンの数
|
388
|
+
0, //ボタンの幅
|
389
|
+
0, //ボタンの高さ
|
390
|
+
16, //イメージの幅
|
391
|
+
15, //イメージの高さ
|
392
|
+
sizeof(TBBUTTON));
|
393
|
+
//SendMessage(hToolBar, TB_INSERTBUTTON,3, (LPARAM)&tb); //toolbar(空白)をさらに追加
|
394
|
+
break;
|
395
|
+
case WM_SIZE:
|
396
|
+
SendMessage(hToolBar, WM_SIZE, wp, lp);
|
397
|
+
break;
|
398
|
+
case WM_COMMAND:
|
399
|
+
switch (LOWORD(wp)) {
|
400
|
+
case IDM_1:
|
401
|
+
MessageBox(hWnd,
|
402
|
+
_T("1"), _T("ボタンの反応"), MB_OK);
|
403
|
+
break;
|
404
|
+
case IDM_2:
|
405
|
+
MessageBox(hWnd,
|
406
|
+
_T("2"), _T("ボタンの反応"), MB_OK);
|
407
|
+
break;
|
408
|
+
case IDM_3:
|
409
|
+
MessageBox(hWnd,
|
410
|
+
_T("3"), _T("ボタンの反応"), MB_OK);
|
411
|
+
break;
|
412
|
+
case IDM_4:
|
413
|
+
MessageBox(hWnd,
|
414
|
+
_T("4"), _T("ボタンの反応"), MB_OK);
|
415
|
+
break;
|
416
|
+
}
|
417
|
+
break;
|
418
|
+
case WM_CLOSE:
|
419
|
+
id = MessageBox(hWnd,
|
420
|
+
_T("終了してもよいですか"),
|
421
|
+
_T("終了確認"),
|
422
|
+
MB_YESNO | MB_ICONQUESTION);
|
423
|
+
if (id == IDYES) {
|
424
|
+
DestroyWindow(hWnd);
|
425
|
+
}
|
426
|
+
break;
|
427
|
+
case WM_DESTROY:
|
428
|
+
PostQuitMessage(0);
|
429
|
+
break;
|
430
|
+
default:
|
431
|
+
return (DefWindowProc(hWnd, msg, wp, lp));
|
432
|
+
}
|
433
|
+
return 0L;
|
434
|
+
}
|
435
|
+
```
|
4
gazou
title
CHANGED
File without changes
|
body
CHANGED
@@ -219,4 +219,6 @@
|
|
219
219
|
//
|
220
220
|
|
221
221
|
ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
|
222
|
-
```
|
222
|
+
```
|
223
|
+

|
224
|
+
toolbar4.bmp
|
3
削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -219,6 +219,4 @@
|
|
219
219
|
//
|
220
220
|
|
221
221
|
ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
|
222
|
-
```
|
222
|
+
```
|
223
|
-

|
224
|
-
toolbar.bmpのファイルの詳細を示した図
|
2
画像追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -220,5 +220,5 @@
|
|
220
220
|
|
221
221
|
ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
|
222
222
|
```
|
223
|
-

|
224
224
|
toolbar.bmpのファイルの詳細を示した図
|
1
画像追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -219,4 +219,6 @@
|
|
219
219
|
//
|
220
220
|
|
221
221
|
ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
|
222
|
-
```
|
222
|
+
```
|
223
|
+

|
224
|
+
toolbar.bmpのファイルの詳細を示した図
|