Solution46
CWndFloating.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// フローティングウィンドウクラスヘッダファイル
4 ///
5 /// フローティングウィンドウクラスヘッダファイルです。
6 ///
7 /// $Id: CWndFloating.h 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 once
14 #pragma managed( push, off )
15 
16 //=============================================================================
17 // インクルードファイル
18 #include <CWndDocking.h>
19 
20 //=============================================================================
21 // ウィンドウライブラリ名前空間
22 namespace LibWindow {
23  //=========================================================================
24  /// フローティングウィンドウクラス
25  ///
26  /// フローティングウィンドウクラスです。
27  ///
28  /// @attention なし
29  ///
31  //=====================================================================
32  // 構築子と解体子
33  public:
34  //---------------------------------------------------------------------
35  /// コンストラクタ
36  ///
37  /// コンストラクタです。
38  ///
39  /// @param なし
40  /// @return なし
41  /// @attention なし
42  ///
43  explicit CWndFloating() noexcept;
44 
45  //---------------------------------------------------------------------
46  /// コンストラクタ
47  ///
48  /// コンストラクタです。
49  ///
50  /// @param[in] rcDocking ドッキングウィンドウ左辺値参照
51  /// @return なし
52  /// @attention なし
53  ///
54  explicit CWndFloating( CWndDocking&& rcDocking ) noexcept;
55 
56  //---------------------------------------------------------------------
57  /// デストラクタ
58  ///
59  /// デストラクタです。
60  ///
61  /// @param なし
62  /// @return なし
63  /// @attention なし
64  ///
65  virtual ~CWndFloating() noexcept {}
66 
67  //=====================================================================
68  // インライン公開関数
69  public:
70  //---------------------------------------------------------------------
71  /// セクション名取得関数
72  ///
73  /// セクション名取得関数です。
74  ///
75  /// @param なし
76  /// @return 文字列ポインタ
77  /// @attention オーバライド関数です。
78  ///
79  inline virtual wchar_t const* GetSectionName() const noexcept override { return L"フローティングウィンドウ"; }
80 
81  //=====================================================================
82  // 公開関数
83  public:
84  //---------------------------------------------------------------------
85  /// ウィンドウ作成拡張スタイル取得関数
86  ///
87  /// ウィンドウ作成拡張スタイル取得関数です。
88  ///
89  /// @param なし
90  /// @return ウィンドウ拡張スタイル
91  /// @attention オーバライド関数です。
92  ///
93  virtual DWORD GetCreateExStyle() noexcept override { return ( WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW ); }
94 
95  //---------------------------------------------------------------------
96  /// ウィンドウ作成スタイル取得関数
97  ///
98  /// ウィンドウ作成スタイル取得関数です。
99  ///
100  /// @param なし
101  /// @return ウィンドウスタイル
102  /// @attention オーバライド関数です。
103  ///
104  virtual DWORD GetCreateStyle() noexcept override { return ( WS_POPUP | WS_BORDER ); }
105 
106  //---------------------------------------------------------------------
107  /// ウィンドウ作成ウィンドウ水平サイズ取得関数
108  ///
109  /// ウィンドウ作成ウィンドウ水平サイズ取得関数です。
110  ///
111  /// @param なし
112  /// @return ウィンドウ水平サイズ
113  /// @attention オーバライド関数です。
114  ///
115  virtual int GetCreateWidth() noexcept override { return WINDOW_WIDTH; }
116 
117  //---------------------------------------------------------------------
118  /// ウィンドウ作成ウィンドウ垂直サイズ取得関数
119  ///
120  /// ウィンドウ作成ウィンドウ垂直サイズ取得関数です。
121  ///
122  /// @param なし
123  /// @return ウィンドウ垂直サイズ
124  /// @attention オーバライド関数です。
125  ///
126  virtual int GetCreateHeight() noexcept override { return WINDOW_HEIGHT; }
127 
128  //---------------------------------------------------------------------
129  /// 各種メッセージ処理関数
130  ///
131  /// 各種メッセージ処理関数です。
132  ///
133  /// @param なし
134  /// @return メッセージ終了コード
135  /// @attention オーバライド関数です。
136  ///
137  virtual LRESULT WmNcHitTest() noexcept override;
138  virtual LRESULT WmGetMinMaxInfo() noexcept override;
139 
140  //---------------------------------------------------------------------
141  /// ウィンドウ構成情報復元関数
142  ///
143  /// ウィンドウ構成情報復元関数です。
144  ///
145  /// @param[in] rcConfig JSON構成ファイル参照
146  /// @return 実行結果
147  /// - true 成功
148  /// - false 失敗
149  /// @attention オーバライド関数です。
150  ///
151  virtual bool ResumeConfig( CJsonConfig& rcConfig ) noexcept override;
152 
153  //---------------------------------------------------------------------
154  /// ウィンドウ構成情報保存関数
155  ///
156  /// ウィンドウ構成情報保存関数です。
157  ///
158  /// @param[in] rcConfig JSON構成ファイル参照
159  /// @return 実行結果
160  /// - true 成功
161  /// - false 失敗
162  /// @attention オーバライド関数です。
163  ///
164  virtual bool SaveConfig( CJsonConfig& rcConfig ) noexcept override;
165 
166  //=====================================================================
167  // 静的限定公開定数
168  protected:
169  static int const WINDOW_WIDTH = 480; ///< ウィンドウ水平サイズ初期値
170  static int const WINDOW_HEIGHT = 320; ///< ウィンドウ垂直サイズ初期値
171  static int const BORDER_THICK = 6; ///< ボーダー太さ
172 
173  //=====================================================================
174  // 削除関数
175  private:
176  CWndFloating( CWndFloating const& ) = delete;
177  CWndFloating& operator=( CWndFloating const& ) = delete;
178  };
179 }
180 
181 #pragma managed( pop )
ドッキングウィンドウクラスヘッダファイル
virtual DWORD GetCreateExStyle() noexcept override
ウィンドウ作成拡張スタイル取得関数
Definition: CWndFloating.h:93
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言
Definition: LibWindowDef.h:30
JSON構成情報クラス
Definition: CJsonConfig.h:31
virtual wchar_t const * GetSectionName() const noexcept override
セクション名取得関数
Definition: CWndFloating.h:79
virtual ~CWndFloating() noexcept
デストラクタ
Definition: CWndFloating.h:65
ウィンドウライブラリ名前空間
Definition: CommandIdDef.h:22
virtual int GetCreateWidth() noexcept override
ウィンドウ作成ウィンドウ水平サイズ取得関数
Definition: CWndFloating.h:115
ドッキングウィンドウクラス
Definition: CWndDocking.h:31
virtual DWORD GetCreateStyle() noexcept override
ウィンドウ作成スタイル取得関数
Definition: CWndFloating.h:104
フローティングウィンドウクラス
Definition: CWndFloating.h:30
virtual int GetCreateHeight() noexcept override
ウィンドウ作成ウィンドウ垂直サイズ取得関数
Definition: CWndFloating.h:126