teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

最後の完成形のコード

2018/12/16 08:06

投稿

mercurian-teto
mercurian-teto

スコア75

title CHANGED
File without changes
body CHANGED
@@ -221,4 +221,215 @@
221
221
  ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
222
222
  ```
223
223
  ![イメージ説明](58e5400eb9290b961bc77445e87ba5a5.jpeg)
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

2018/12/16 08:06

投稿

mercurian-teto
mercurian-teto

スコア75

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
+ ![イメージ説明](58e5400eb9290b961bc77445e87ba5a5.jpeg)
224
+ toolbar4.bmp

3

削除

2018/12/10 13:38

投稿

mercurian-teto
mercurian-teto

スコア75

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
- ![イメージ説明](ffe0231e461662560ff11eb2f4c97ce1.jpeg)
224
- toolbar.bmpのファイルの詳細を示した図

2

画像追加

2018/12/10 13:36

投稿

mercurian-teto
mercurian-teto

スコア75

title CHANGED
File without changes
body CHANGED
@@ -220,5 +220,5 @@
220
220
 
221
221
  ID_MYBMP BITMAP DISCARDABLE "toolbar.bmp"
222
222
  ```
223
- ![イメージ説明](e308ef37bbf9ea3e8407ab69ba3f88e8.jpeg)
223
+ ![イメージ説明](ffe0231e461662560ff11eb2f4c97ce1.jpeg)
224
224
  toolbar.bmpのファイルの詳細を示した図

1

画像追加

2018/12/10 09:02

投稿

mercurian-teto
mercurian-teto

スコア75

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
+ ![イメージ説明](e308ef37bbf9ea3e8407ab69ba3f88e8.jpeg)
224
+ toolbar.bmpのファイルの詳細を示した図