Solution46
CWndOverlap.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// オーバーラップウィンドウクラスヘッダファイル
4 ///
5 /// オーバーラップウィンドウクラスヘッダファイルです。
6 ///
7 /// $Id: CWndOverlap.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 <CWndPartition.h>
19 #include <CWndDockingPartition.h>
20 #include <CWndDocumentTab.h>
21 
22 //=============================================================================
23 // ウィンドウライブラリ名前空間
24 namespace LibWindow {
25  //=========================================================================
26  /// オーバーラップウィンドウクラス
27  ///
28  /// オーバーラップウィンドウクラスです。
29  ///
30  /// @attention なし
31  ///
33  //=====================================================================
34  // 構築子と解体子
35  public:
36  //---------------------------------------------------------------------
37  /// コンストラクタ
38  ///
39  /// コンストラクタです。
40  ///
41  /// @param なし
42  /// @return なし
43  /// @attention なし
44  ///
45  explicit CWndOverlap() noexcept;
46 
47  //---------------------------------------------------------------------
48  /// デストラクタ
49  ///
50  /// デストラクタです。
51  ///
52  /// @param なし
53  /// @return なし
54  /// @attention なし
55  ///
56  virtual ~CWndOverlap() noexcept {}
57 
58  //=====================================================================
59  // インライン公開関数
60  public:
61  //---------------------------------------------------------------------
62  /// セクション名取得関数
63  ///
64  /// セクション名取得関数です。
65  ///
66  /// @param なし
67  /// @return 文字列ポインタ
68  /// @attention オーバライド関数です。
69  ///
70  inline virtual wchar_t const* GetSectionName() const noexcept override { return L"オーバーラップウィンドウ"; }
71 
72  //---------------------------------------------------------------------
73  /// ドキュメントタブウィンドウ取得関数
74  ///
75  /// ドキュメントタブウィンドウ取得関数です。
76  ///
77  /// @param なし
78  /// @return ドキュメントタブウィンドウポインタ
79  /// @attention オーバライド関数です。
80  ///
81  inline virtual CWndDocumentTab* GetDocumentTab() noexcept override { return &m_cDocumentTab; }
82 
83  //=====================================================================
84  // 公開関数
85  public:
86  //---------------------------------------------------------------------
87  /// ウィンドウ作成関数
88  ///
89  /// ウィンドウ作成関数です。
90  ///
91  /// @param[in] hParent 親ウィンドウハンドル
92  /// @param[in] hMenu メニューハンドル
93  /// @return 実行結果
94  /// - true 成功
95  /// - false 失敗
96  /// @attention オーバライド関数です。
97  ///
98  virtual bool Create( HWND hParent = nullptr, HMENU hMenu = nullptr ) noexcept override;
99 
100  //---------------------------------------------------------------------
101  /// ウィンドウ作成スタイル取得関数
102  ///
103  /// ウィンドウ作成スタイル取得関数です。
104  ///
105  /// @param なし
106  /// @return ウィンドウスタイル
107  /// @attention オーバライド関数です。
108  ///
109  virtual DWORD GetCreateStyle() noexcept override { return ( WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX ); }
110 
111  //---------------------------------------------------------------------
112  /// ウィンドウ作成ウィンドウ左座標取得関数
113  ///
114  /// ウィンドウ作成ウィンドウ左座標取得関数です。
115  ///
116  /// @param なし
117  /// @return ウィンドウ左座標
118  /// @attention オーバライド関数です。
119  ///
120  virtual int GetCreateLeft() noexcept override { return CW_USEDEFAULT; }
121 
122  //---------------------------------------------------------------------
123  /// ウィンドウ作成ウィンドウ上座標取得関数
124  ///
125  /// ウィンドウ作成ウィンドウ上座標取得関数です。
126  ///
127  /// @param なし
128  /// @return ウィンドウ上座標
129  /// @attention オーバライド関数です。
130  ///
131  virtual int GetCreateTop() noexcept override { return CW_USEDEFAULT; }
132 
133  //---------------------------------------------------------------------
134  /// ウィンドウ作成ウィンドウ水平サイズ取得関数
135  ///
136  /// ウィンドウ作成ウィンドウ水平サイズ取得関数です。
137  ///
138  /// @param なし
139  /// @return ウィンドウ水平サイズ
140  /// @attention オーバライド関数です。
141  ///
142  virtual int GetCreateWidth() noexcept override { return WINDOW_WIDTH; }
143 
144  //---------------------------------------------------------------------
145  /// ウィンドウ作成ウィンドウ垂直サイズ取得関数
146  ///
147  /// ウィンドウ作成ウィンドウ垂直サイズ取得関数です。
148  ///
149  /// @param なし
150  /// @return ウィンドウ垂直サイズ
151  /// @attention オーバライド関数です。
152  ///
153  virtual int GetCreateHeight() noexcept override { return WINDOW_HEIGHT; }
154 
155  //---------------------------------------------------------------------
156  /// 各種メッセージ処理関数
157  ///
158  /// 各種メッセージ処理関数です。
159  ///
160  /// @param なし
161  /// @return メッセージ終了コード
162  /// @attention オーバライド関数です。
163  ///
164  virtual LRESULT WmGetMinMaxInfo() noexcept override;
165 
166  //---------------------------------------------------------------------
167  /// ウィンドウ構成情報復元関数
168  ///
169  /// ウィンドウ構成情報復元関数です。
170  ///
171  /// @param[in] rcConfig JSON構成ファイル参照
172  /// @return 実行結果
173  /// - true 成功
174  /// - false 失敗
175  /// @attention オーバライド関数です。
176  ///
177  virtual bool ResumeConfig( CJsonConfig& rcConfig ) noexcept override;
178 
179  //---------------------------------------------------------------------
180  /// ウィンドウ構成情報保存関数
181  ///
182  /// ウィンドウ構成情報保存関数です。
183  ///
184  /// @param[in] rcConfig JSON構成ファイル参照
185  /// @return 実行結果
186  /// - true 成功
187  /// - false 失敗
188  /// @attention オーバライド関数です。
189  ///
190  virtual bool SaveConfig( CJsonConfig& rcConfig ) noexcept override;
191 
192  //---------------------------------------------------------------------
193  /// 最小水平サイズ取得関数
194  ///
195  /// 最小水平サイズ取得関数です。
196  ///
197  /// @param なし
198  /// @return 水平サイズ
199  /// @attention オーバライド関数です。
200  ///
201  virtual int GetMinWidth() noexcept override;
202 
203  //---------------------------------------------------------------------
204  /// 最小垂直サイズ取得関数
205  ///
206  /// 最小垂直サイズ取得関数です。
207  ///
208  /// @param なし
209  /// @return 垂直サイズ
210  /// @attention オーバライド関数です。
211  ///
212  virtual int GetMinHeight() noexcept override;
213 
214  //=====================================================================
215  // 静的公開関数
216  public:
217  //---------------------------------------------------------------------
218  /// パーティションウィンドウ作成関数
219  ///
220  /// パーティションウィンドウ作成関数です。
221  ///
222  /// @param なし
223  /// @return エレメントウィンドウポインタ
224  /// @attention なし
225  ///
226  static CWndElement* CreatePartitionWindow() noexcept { return new CWndDockingPartition(); }
227 
228  //=====================================================================
229  // 限定公開変数
230  protected:
231  CWndDocumentTab m_cDocumentTab; ///< ドキュメントタブウィンドウ
232 
233  //=====================================================================
234  // 静的限定公開定数
235  protected:
236  static int const WINDOW_WIDTH = 640; ///< ウィンドウ水平サイズ初期値
237  static int const WINDOW_HEIGHT = 480; ///< ウィンドウ垂直サイズ初期値
238 
239  //=====================================================================
240  // 削除関数
241  private:
242  CWndOverlap( CWndOverlap const& ) = delete;
243  CWndOverlap& operator=( CWndOverlap const& ) = delete;
244  };
245 }
246 
247 #pragma managed( pop )
virtual ~CWndOverlap() noexcept
デストラクタ
Definition: CWndOverlap.h:56
オーバーラップウィンドウクラス
Definition: CWndOverlap.h:32
virtual wchar_t const * GetSectionName() const noexcept override
セクション名取得関数
Definition: CWndOverlap.h:70
CWndDocumentTab m_cDocumentTab
ドキュメントタブウィンドウ
Definition: CWndOverlap.h:231
static CWndElement * CreatePartitionWindow() noexcept
パーティションウィンドウ作成関数
Definition: CWndOverlap.h:226
virtual int GetCreateWidth() noexcept override
ウィンドウ作成ウィンドウ水平サイズ取得関数
Definition: CWndOverlap.h:142
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言
Definition: LibWindowDef.h:30
パーティションウィンドウクラス
Definition: CWndPartition.h:31
JSON構成情報クラス
Definition: CJsonConfig.h:31
ウィンドウライブラリ名前空間
Definition: CommandIdDef.h:22
virtual CWndDocumentTab * GetDocumentTab() noexcept override
ドキュメントタブウィンドウ取得関数
Definition: CWndOverlap.h:81
virtual DWORD GetCreateStyle() noexcept override
ウィンドウ作成スタイル取得関数
Definition: CWndOverlap.h:109
ドッキングパーティションウィンドウクラス
ドッキングパーティションウィンドウクラスヘッダファイル
ドキュメントタブウィンドウクラス
virtual int GetCreateHeight() noexcept override
ウィンドウ作成ウィンドウ垂直サイズ取得関数
Definition: CWndOverlap.h:153
パーティションウィンドウクラスヘッダファイル
ペインウィンドウクラス
Definition: CWndPane.h:74
virtual int GetCreateLeft() noexcept override
ウィンドウ作成ウィンドウ左座標取得関数
Definition: CWndOverlap.h:120
ドキュメントタブウィンドウクラスヘッダファイル
virtual int GetCreateTop() noexcept override
ウィンドウ作成ウィンドウ上座標取得関数
Definition: CWndOverlap.h:131