Solution46
CWndToolBar.cpp
[詳解]
1 //=============================================================================
2 /// @file
3 /// ツールバークラス実装ファイル
4 ///
5 /// ツールバークラス実装ファイルです。
6 ///
7 /// $Id: CWndToolBar.cpp 245 2019-03-20 15:03:41Z admin $
8 /// $Date: 2019-03-21 00:03:41 +0900 (2019/03/21 (木)) $
9 /// $Author: admin $
10 ///
11 /// @attention なし
12 
13 #pragma managed( push, off )
14 
15 //=============================================================================
16 // インクルードファイル
17 #include <CWndToolBar.h>
18 #include <CWndPane.h>
19 
20 //=============================================================================
21 // ウィンドウライブラリ名前空間
22 namespace LibWindow {
23  //=========================================================================
24  // ツールバークラス
25  //=========================================================================
26  // 構築子と解体子
27  //-------------------------------------------------------------------------
28  // コンストラクタ
30  // 基底クラスコンストラクタ
31  : CWndBase()
32  {}
33 
34  //=========================================================================
35  // 公開関数
36  //-------------------------------------------------------------------------
37  // ウィンドウ作成関数
38  bool CWndToolBar::Create( HWND hParent, HMENU hMenu ) noexcept {
39  // 処理ブロック
40  bool result = false;
41  do {
42  // 基底クラスの関数を実行する
43  if ( !CWndBase::Create( hParent, hMenu ) ) {
44  // 失敗!
45  break;
46  }
47 
48  // 成功!
49  result = true;
50  } while ( false );
51 
52  // 実行結果を返す
53  return result;
54  }
55 
56  //-------------------------------------------------------------------------
57  // WM_LBUTTONDOWNメッセージ処理関数
58  LRESULT CWndToolBar::WmLButtonDown() noexcept {
59  // 処理ブロック
60  LRESULT result = 0;
61  do {
62  // 親ウィンドウを取得する
63  HWND hParent = ::GetParent( m_hWnd );
64  if ( nullptr != hParent ) {
65  // 子ウィンドウ左ボタンダウン通知メッセージを送信する
66  ::SendMessageW( hParent, WM_NOTIFY_CHILD_LBUTTONDOWN, 0, reinterpret_cast< LPARAM >( m_hWnd ) );
67  }
68 
69  // 基底クラスの関数を実行する
70  result = CWndBase::WmLButtonDown();
71  } while ( false );
72 
73  // 実行結果を返す
74  return result;
75  }
76 
77  //-------------------------------------------------------------------------
78  // WM_LBUTTONUPメッセージ処理関数
79  LRESULT CWndToolBar::WmLButtonUp() noexcept {
80  // 処理ブロック
81  LRESULT result = 0;
82  do {
83  // 親ウィンドウを取得する
84  HWND hParent = ::GetParent( m_hWnd );
85  if ( nullptr != hParent ) {
86  // 子ウィンドウ左ボタンアップ通知メッセージを送信する
87  ::SendMessageW( hParent, WM_NOTIFY_CHILD_LBUTTONUP, 0, reinterpret_cast< LPARAM >( m_hWnd ) );
88  }
89 
90  // 基底クラスの関数を実行する
91  result = CWndBase::WmLButtonUp();
92  } while ( false );
93 
94  // 実行結果を返す
95  return result;
96  }
97 }
98 
99 #pragma managed( pop )
ツールバークラスヘッダファイル
virtual bool Create(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept
ウィンドウ作成関数
Definition: CWndBase.cpp:58
CWndToolBar() noexcept
コンストラクタ
Definition: CWndToolBar.cpp:29
virtual LRESULT WmLButtonDown() noexcept override
各種メッセージ処理関数
Definition: CWndToolBar.cpp:58
HWND m_hWnd
ウィンドウハンドル
Definition: CWndBase.h:1539
ペインウィンドウクラスヘッダファイル
constexpr UINT const WM_NOTIFY_CHILD_LBUTTONDOWN
子ウィンドウ左ボタンダウン通知
Definition: CWndPane.h:30
ウィンドウライブラリ名前空間
Definition: CommandIdDef.h:22
基本ウィンドウクラス
Definition: CWndBase.h:31
virtual LRESULT WmLButtonUp() noexcept
Definition: CWndBase.h:693
virtual LRESULT WmLButtonDown() noexcept
Definition: CWndBase.h:692
constexpr UINT const WM_NOTIFY_CHILD_LBUTTONUP
子ウィンドウ左ボタンアップ通知
Definition: CWndPane.h:31
virtual bool Create(HWND hParent, HMENU hMenu=nullptr) noexcept override
ウィンドウ作成関数
Definition: CWndToolBar.cpp:38
virtual LRESULT WmLButtonUp() noexcept override
Definition: CWndToolBar.cpp:79