Solution46
CWndMain.h
[詳解]
1 /// @file
2 /// メインウィンドウクラスヘッダファイル
3 ///
4 /// メインウィンドウクラスヘッダファイルです。
5 ///
6 /// $Id: CWndMain.h 245 2019-03-20 15:03:41Z admin $
7 /// $Date: 2019-03-21 00:03:41 +0900 (2019/03/21 (木)) $
8 /// $Author: admin $
9 ///
10 /// @attention なし
11 
12 #pragma once
13 #pragma managed( push, off )
14 
15 //=============================================================================
16 // インクルードファイル
17 #include <CWndOverlap.h>
18 #include <CWndFloating.h>
19 #include <CWndToolBar.h>
20 #include <CTimer.h>
21 #include <commctrl.h>
22 
23 //=============================================================================
24 // ウィンドウライブラリ名前空間
25 namespace LibWindow {
26  //=========================================================================
27  /// メインウィンドウクラス
28  ///
29  /// メインウィンドウクラスです。
30  ///
31  /// @attention なし
32  ///
34  //=====================================================================
35  // 構築子と解体子
36  public:
37  //---------------------------------------------------------------------
38  /// コンストラクタ
39  ///
40  /// コンストラクタです。
41  ///
42  /// @param なし
43  /// @return なし
44  /// @attention なし
45  ///
46  explicit CWndMain() noexcept;
47 
48  //---------------------------------------------------------------------
49  /// デストラクタ
50  ///
51  /// デストラクタです。
52  ///
53  /// @param なし
54  /// @return なし
55  /// @attention なし
56  ///
57  virtual ~CWndMain() noexcept;
58 
59  //=====================================================================
60  // インライン公開関数
61  public:
62  //---------------------------------------------------------------------
63  /// セクション名取得関数
64  ///
65  /// セクション名取得関数です。
66  ///
67  /// @param なし
68  /// @return 文字列ポインタ
69  /// @attention オーバライド関数です。
70  ///
71  inline virtual wchar_t const* GetSectionName() const noexcept override { return L"メインウィンドウ"; }
72 
73  //=====================================================================
74  // 公開関数
75  public:
76  //---------------------------------------------------------------------
77  /// ウィンドウ作成関数
78  ///
79  /// ウィンドウ作成関数です。
80  ///
81  /// @param[in] hParent 親ウィンドウハンドル
82  /// @param[in] hMenu メニューハンドル
83  /// @return 実行結果
84  /// - true 成功
85  /// - false 失敗
86  /// @attention オーバライド関数です。
87  ///
88  virtual bool Create( HWND hParent = nullptr, HMENU hMenu = nullptr ) noexcept override;
89 
90  //---------------------------------------------------------------------
91  /// 各種メッセージ処理関数
92  ///
93  /// 各種メッセージ処理関数です。
94  ///
95  /// @param なし
96  /// @return メッセージ終了コード
97  /// @attention オーバライド関数です。
98  ///
99  virtual LRESULT WmDestroy() noexcept override;
100  virtual LRESULT WmSize() noexcept override;
101  virtual LRESULT WmSetFocus() noexcept override;
102  virtual LRESULT WmMouseActivate() noexcept override;
103  virtual LRESULT WmMenuSelect() noexcept override;
104  virtual LRESULT WmExitMenuLoop() noexcept override;
105  virtual LRESULT NmClick() noexcept override;
106  virtual LRESULT WmDrawItem() noexcept override;
107  virtual LRESULT WmCommand() noexcept override;
108 
109  //---------------------------------------------------------------------
110  /// ユーザ定義メッセージ処理関数
111  ///
112  /// ユーザ定義メッセージ処理関数です。
113  ///
114  /// @param なし
115  /// @return メッセージ終了コード
116  /// @attention オーバライド関数です。
117  ///
118  virtual LRESULT WmNotifyChildSetFocus() noexcept override;
119  virtual LRESULT WmNotifyChildLButtonUp() noexcept override;
120  virtual LRESULT WmNotifyChildCommand() noexcept override;
121 
122  //---------------------------------------------------------------------
123  /// ウィンドウ構成情報初期化関数
124  ///
125  /// ウィンドウ構成情報初期化関数です。
126  ///
127  /// @param[in] rcConfig JSON構成ファイル参照
128  /// @return 実行結果
129  /// - true 成功
130  /// - false 失敗
131  /// @attention オーバライド関数です。
132  ///
133  virtual bool InitConfig( CJsonConfig& rcConfig ) noexcept override;
134 
135  //---------------------------------------------------------------------
136  /// ウィンドウ構成情報復元関数
137  ///
138  /// ウィンドウ構成情報復元関数です。
139  ///
140  /// @param[in] rcConfig JSON構成ファイル参照
141  /// @return 実行結果
142  /// - true 成功
143  /// - false 失敗
144  /// @attention オーバライド関数です。
145  ///
146  virtual bool ResumeConfig( CJsonConfig& rcConfig ) noexcept override;
147 
148  //---------------------------------------------------------------------
149  /// ウィンドウ構成情報保存関数
150  ///
151  /// ウィンドウ構成情報保存関数です。
152  ///
153  /// @param[in] rcConfig JSON構成ファイル参照
154  /// @return 実行結果
155  /// - true 成功
156  /// - false 失敗
157  /// @attention オーバライド関数です。
158  ///
159  virtual bool SaveConfig( CJsonConfig& rcConfig ) noexcept override;
160 
161  //---------------------------------------------------------------------
162  /// 子ペインウィンドウ情報取得関数
163  ///
164  /// 子ペインウィンドウ情報取得関数です。
165  ///
166  /// @param[in] rsChildInfo 子ペインウィンドウ情報構造体参照
167  /// @return 実行結果
168  /// - true 成功
169  /// - false 失敗
170  /// @attention オーバライド関数です。
171  ///
172  virtual bool GetChildPaneInfo( SChildPaneInfo& rsChildInfo ) noexcept override;
173 
174  //---------------------------------------------------------------------
175  /// ペインウィンドウオーダー番号取得関数
176  ///
177  /// ペインウィンドウオーダー番号取得関数です。
178  ///
179  /// @param[in] pcPane ペインウィンドウポインタ
180  /// @param[in,out] pnOrder オーダー番号ポインタ
181  /// @return オーダー番号
182  /// - 0以上 成功
183  /// - 0未満 失敗
184  /// @attention オーバライド関数です。
185  ///
186  virtual int GetOrderIndex( CWndPane* pcPane = nullptr, int* pnOrder = nullptr ) noexcept override;
187 
188  //---------------------------------------------------------------------
189  /// オーダー番号ペインウィンドウ取得関数
190  ///
191  /// オーダー番号ペインウィンドウ取得関数です。
192  ///
193  /// @param[in,out] pnOrder オーダー番号ポインタ
194  /// @return ペインウィンドウポインタ
195  /// @attention オーバライド関数です。
196  ///
197  virtual CWndPane* GetOrderPane( int* pnOrder ) noexcept override;
198 
199  //---------------------------------------------------------------------
200  /// 子ウィンドウ削除関数
201  ///
202  /// 子ウィンドウ削除関数です。
203  ///
204  /// @param[in] pcChild ペインウィンドウポインタ
205  /// @return 実行結果
206  /// - true 成功
207  /// - false 失敗
208  /// @attention オーバライド関数です。
209  ///
210  virtual bool DeleteChildWindow( CWndPane* pcChild ) noexcept override;
211 
212  //---------------------------------------------------------------------
213  /// 全子ウィンドウ表示関数
214  ///
215  /// 全子ウィンドウ表示関数です。
216  ///
217  /// @param[in] bShow ウィンドウ表示フラグ
218  /// @return 実行結果
219  /// - true 成功
220  /// - false 失敗
221  /// @attention オーバライド関数です。
222  ///
223  virtual bool ShowChildAll( bool bShow ) noexcept override;
224 
225  //---------------------------------------------------------------------
226  /// 全子ウィンドウ削除関数
227  ///
228  /// 全子ウィンドウ削除関数です。
229  ///
230  /// @param なし
231  /// @return 実行結果
232  /// - true 成功
233  /// - false 失敗
234  /// @attention オーバライド関数です。
235  ///
236  virtual bool DeleteChildAll() noexcept override;
237 
238  //---------------------------------------------------------------------
239  /// 全ウィンドウクライアント領域更新関数
240  ///
241  /// 全ウィンドウクライアント領域更新関数です。
242  ///
243  /// @param なし
244  /// @return 実行結果
245  /// - true 成功
246  /// - false 失敗
247  /// @attention オーバライド関数です。
248  ///
249  virtual bool UpdateClientRectAll() noexcept override;
250 
251  //---------------------------------------------------------------------
252  /// メニューコマンド実行関数
253  ///
254  /// メニューコマンド実行関数です。
255  ///
256  /// @param[in] wId コマンドID
257  /// @param[in] wCode 通知コード
258  /// @param[in] hCtrl コントロールハンドル
259  /// @return 実行結果
260  /// - true 成功
261  /// - false 失敗
262  /// @attention オーバライド関数です。
263  ///
264  virtual bool ExecMenuCommand( WORD wId, WORD wCode, HWND hCtrl ) noexcept override;
265 
266  //---------------------------------------------------------------------
267  /// コンテキストメニュー作成関数
268  ///
269  /// コンテキストメニュー作成関数です。
270  ///
271  /// @param なし
272  /// @return メニューハンドル
273  /// @attention オーバライド関数です。
274  ///
275  virtual HMENU CreateContextMenu() noexcept override;
276 
277  //---------------------------------------------------------------------
278  /// デバッグメニュー追加関数
279  ///
280  /// デバッグメニュー追加関数です。
281  ///
282  /// @param[in] hMenu メニューハンドル
283  /// @return 実行結果
284  /// - true 成功
285  /// - false 失敗
286  /// @attention オーバライド関数です。
287  ///
288  virtual bool AppendDebugMenu( HMENU hMenu ) noexcept override;
289 
290  //---------------------------------------------------------------------
291  /// 表示削除メニュー追加関数
292  ///
293  /// 表示削除メニュー追加関数です。
294  ///
295  /// @param[in] hMenu メニューハンドル
296  /// @return 実行結果
297  /// - true 成功
298  /// - false 失敗
299  /// @attention オーバライド関数です。
300  ///
301  virtual bool AppendShowDeleteMenu( HMENU hMenu ) noexcept override { return true; }
302 
303  //---------------------------------------------------------------------
304  /// パーティション表示クライアント領域取得関数
305  ///
306  /// パーティション表示クライアント領域取得関数です。
307  ///
308  /// @param[out] rsRect 矩形領域参照
309  /// @return 実行結果
310  /// - true 成功
311  /// - false 失敗
312  /// @attention オーバライド関数です。
313  ///
314  virtual bool GetPartitionClientRect( RECT& rsRect ) noexcept override;
315 
316  //---------------------------------------------------------------------
317  /// デバッグ情報表示関数
318  ///
319  /// デバッグ情報表示関数です。
320  ///
321  /// @param なし
322  /// @return 実行結果
323  /// - true 成功
324  /// - false 失敗
325  /// @attention なし
326  ///
327  virtual bool ShowDebugInfo() noexcept;
328 
329  //---------------------------------------------------------------------
330  /// 新規オーバーラップウィンドウ追加関数
331  ///
332  /// 新規オーバーラップウィンドウ追加関数です。
333  ///
334  /// @param なし
335  /// @return 実行結果
336  /// - true 成功
337  /// - false 失敗
338  /// @attention なし
339  ///
340  virtual bool AppendNewOverlapWindow() noexcept;
341 
342  //---------------------------------------------------------------------
343  /// 新規フローティングウィンドウ追加関数
344  ///
345  /// 新規フローティングウィンドウ追加関数です。
346  ///
347  /// @param なし
348  /// @return 実行結果
349  /// - true 成功
350  /// - false 失敗
351  /// @attention なし
352  ///
353  virtual bool AppendNewFloatingWindow() noexcept;
354 
355  //---------------------------------------------------------------------
356  /// ドッキングウィンドウフローティング表示関数
357  ///
358  /// ドッキングウィンドウフローティング表示関数です。
359  ///
360  /// @param[in] hWnd ドッキングウィンドウハンドル
361  /// @return 実行結果
362  /// - true 成功
363  /// - false 失敗
364  /// @attention なし
365  ///
366  virtual bool DockingToFloating( HWND hWnd ) noexcept;
367 
368  //---------------------------------------------------------------------
369  /// フローティングウィンドウドッキング表示関数
370  ///
371  /// フローティングウィンドウドッキング表示関数です。
372  ///
373  /// @param[in] hWnd フローティングウィンドウハンドル
374  /// @return 実行結果
375  /// - true 成功
376  /// - false 失敗
377  /// @attention なし
378  ///
379  virtual bool FloatingToDocking( HWND hWnd ) noexcept;
380 
381  //---------------------------------------------------------------------
382  /// 共通デバッグメニュー追加関数
383  ///
384  /// 共通デバッグメニュー追加関数です。
385  ///
386  /// @param[in] hMenu メニューハンドル
387  /// @return 実行結果
388  /// - true 成功
389  /// - false 失敗
390  /// @attention なし
391  ///
392  virtual bool AppendCommonDebugMenu( HMENU hMenu ) noexcept;
393 
394  //---------------------------------------------------------------------
395  /// メニューバー更新関数
396  ///
397  /// メニューバー更新関数です。
398  ///
399  /// @param なし
400  /// @return 実行結果
401  /// - true 成功
402  /// - false 失敗
403  /// @attention なし
404  ///
405  virtual bool UpdateMenuBar() noexcept;
406 
407  //---------------------------------------------------------------------
408  /// メインメニュー追加関数
409  ///
410  /// メインメニュー追加関数です。
411  ///
412  /// @param[in] hMenu メニューハンドル
413  /// @return 実行結果
414  /// - true 成功
415  /// - false 失敗
416  /// @attention なし
417  ///
418  virtual bool AppendMainMenu( HMENU hMenu ) noexcept;
419 
420  //---------------------------------------------------------------------
421  /// アクセラレータテーブル作成関数
422  ///
423  /// アクセラレータテーブル作成関数です。
424  ///
425  /// @param なし
426  /// @return 実行結果
427  /// - true 成功
428  /// - false 失敗
429  /// @attention なし
430  ///
431  virtual bool CreateAccel() noexcept;
432 
433  //---------------------------------------------------------------------
434  /// ツールバー作成関数
435  ///
436  /// ツールバー作成関数です。
437  ///
438  /// @param なし
439  /// @return 実行結果
440  /// - true 成功
441  /// - false 失敗
442  /// @attention なし
443  ///
444  virtual bool CreateToolBar() noexcept;
445 
446  //---------------------------------------------------------------------
447  /// ツールバー更新関数
448  ///
449  /// ツールバー更新関数です。
450  ///
451  /// @param なし
452  /// @return 実行結果
453  /// - true 成功
454  /// - false 失敗
455  /// @attention なし
456  ///
457  virtual bool UpdateToolBar() noexcept;
458 
459  //---------------------------------------------------------------------
460  /// アイコンイメージリスト作成関数
461  ///
462  /// アイコンイメージリスト作成関数です。
463  ///
464  /// @param なし
465  /// @return 実行結果
466  /// - true 成功
467  /// - false 失敗
468  /// @attention なし
469  ///
470  virtual bool CreateIconImageList() noexcept;
471 
472  //---------------------------------------------------------------------
473  /// ツールバーボタンリスト作成関数
474  ///
475  /// ツールバーボタンリスト作成関数です。
476  ///
477  /// @param なし
478  /// @return 実行結果
479  /// - true 成功
480  /// - false 失敗
481  /// @attention なし
482  ///
483  virtual bool CreateToolBarButtonList() noexcept;
484 
485  //---------------------------------------------------------------------
486  /// ステータスバー作成関数
487  ///
488  /// ステータスバー作成関数です。
489  ///
490  /// @param なし
491  /// @return 実行結果
492  /// - true 成功
493  /// - false 失敗
494  /// @attention なし
495  ///
496  virtual bool CreateStatusBar() noexcept;
497 
498  //---------------------------------------------------------------------
499  /// ステータスバー更新関数
500  ///
501  /// ステータスバー更新関数です。
502  ///
503  /// @param なし
504  /// @return 実行結果
505  /// - true 成功
506  /// - false 失敗
507  /// @attention なし
508  ///
509  virtual bool UpdateStatusBar() noexcept;
510 
511  //---------------------------------------------------------------------
512  /// セパレータ作成関数
513  ///
514  /// セパレータ作成関数です。
515  ///
516  /// @param なし
517  /// @return 実行結果
518  /// - true 成功
519  /// - false 失敗
520  /// @attention なし
521  ///
522  virtual bool CreateSeparator() noexcept;
523 
524  //---------------------------------------------------------------------
525  /// セパレータ描画関数
526  ///
527  /// セパレータ描画関数です。
528  ///
529  /// @param[in] lpDraw 描画アイテム構造体ポインタ
530  /// @return 実行結果
531  /// - true 成功
532  /// - false 失敗
533  /// @attention なし
534  ///
535  virtual bool DrawSeparator( LPDRAWITEMSTRUCT lpDraw ) noexcept;
536 
537  //---------------------------------------------------------------------
538  /// ウィンドウアプリケーション実行関数
539  ///
540  /// ウィンドウアプリケーション実行関数です。
541  ///
542  /// @param なし
543  /// @return 実行結果
544  /// - true 成功
545  /// - false 失敗
546  /// @attention なし
547  ///
548  virtual bool Run() noexcept;
549 
550  //---------------------------------------------------------------------
551  /// フレーム管理初期化関数
552  ///
553  /// フレーム管理初期化関数です。
554  ///
555  /// @param なし
556  /// @return 実行結果
557  /// - true 継続
558  /// - false 終了
559  /// @attention なし
560  ///
561  virtual bool InitFrame() noexcept;
562 
563  //---------------------------------------------------------------------
564  /// フレーム開始関数
565  ///
566  /// フレーム開始関数です。
567  ///
568  /// @param なし
569  /// @return 実行結果
570  /// - true 継続
571  /// - false 終了
572  /// @attention なし
573  ///
574  virtual bool StartFrame() noexcept;
575 
576  //---------------------------------------------------------------------
577  /// フレーム終了関数
578  ///
579  /// フレーム終了関数です。
580  ///
581  /// @param なし
582  /// @return 実行結果
583  /// - true 継続
584  /// - false 終了
585  /// @attention なし
586  ///
587  virtual bool EndFrame() noexcept;
588 
589  //---------------------------------------------------------------------
590  /// アイドル処理コールバック関数
591  ///
592  /// アイドル処理コールバック関数です。
593  ///
594  /// @param なし
595  /// @return 実行結果
596  /// - true 継続
597  /// - false 終了
598  /// @attention なし
599  ///
600  virtual bool IdleCallBackProc() noexcept { return true; }
601 
602  //=====================================================================
603  // 静的公開関数
604  public:
605  //---------------------------------------------------------------------
606  /// 静的構成情報復元関数
607  ///
608  /// 静的構成情報復元関数です。
609  ///
610  /// @param[in] rcConfig JSON構成ファイル参照
611  /// @return 実行結果
612  /// - true 成功
613  /// - false 失敗
614  /// @attention なし
615  ///
616  static bool ResumeConfigStatic( CJsonConfig& rcConfig ) noexcept;
617 
618  //---------------------------------------------------------------------
619  /// 静的構成情報保存関数
620  ///
621  /// 静的構成情報保存関数です。
622  ///
623  /// @param[in] rcConfig JSON構成ファイル参照
624  /// @return 実行結果
625  /// - true 成功
626  /// - false 失敗
627  /// @attention なし
628  ///
629  static bool SaveConfigStatic( CJsonConfig& rcConfig ) noexcept;
630 
631  //---------------------------------------------------------------------
632  /// オーバーラップウィンドウ作成関数
633  ///
634  /// オーバーラップウィンドウ作成関数です。
635  ///
636  /// @param なし
637  /// @return エレメントウィンドウポインタ
638  /// @attention なし
639  ///
640  static CWndElement* CreateOverlapWindow() noexcept { return new CWndOverlap(); }
641 
642  //---------------------------------------------------------------------
643  /// フローティングウィンドウ作成関数
644  ///
645  /// フローティングウィンドウ作成関数です。
646  ///
647  /// @param なし
648  /// @return エレメントウィンドウポインタ
649  /// @attention なし
650  ///
651  static CWndElement* CreateFloatingWindow() noexcept { return new CWndFloating(); }
652 
653  //=====================================================================
654  // 限定公開型定義
655  protected:
656  //---------------------------------------------------------------------
657  /// アイコンイメージ情報構造体
658  ///
659  /// アイコンイメージ情報構造体です。
660  ///
661  /// @attention なし
662  ///
663  struct SIconImageInfo {
664  WORD m_wId; ///< コマンドID
665  wchar_t const* m_pszButtonName; ///< ツールバーボタン名
666  wchar_t const* m_pszIconFileName; ///< アイコンファイル名
667  };
668 
669  //=====================================================================
670  // 限定公開変数
671  protected:
672  HMENU m_hMenu; ///< メニューハンドル
673  HACCEL m_hAccel; ///< アクセラレータテーブルハンドル
674  HWND m_hStatusBar; ///< ステータスバーコントロールハンドル
675  HWND m_hSeparator; ///< セパレータコントロールハンドル
676  CWndToolBar m_cToolBar; ///< ツールバー
677  CWndList m_cOverlapList; ///< オーバーラップウィンドウリスト
678  CWndList m_cFloatingList; ///< フローティングウィンドウリスト
679  HIMAGELIST m_hIconImageList; ///< アイコンイメージリストハンドル
680  CArray< SIconImageInfo >* m_pcIconImageList; ///< アイコンイメージリストポインタ
681  CArray< TBBUTTON >* m_pcToolBarButtonList; ///< ツールバーボタンリストポインタ
682  bool m_bFocusOverlap; ///< オーバーラップウィンドウフォーカス有効フラグ
683  bool m_bFocusFloating; ///< フローティングウィンドウフォーカス有効フラグ
684  bool m_bMenuMouseActivate; ///< メニューマウスアクティベートフラグ
685  bool m_bValidMenuSelect; ///< メニュー項目選択有効フラグ
686  bool m_bToolBarMouseActivate; ///< ツールバーマウスアクティベートフラグ
687  bool m_bValidToolBarSelect; ///< ツールバーボタン選択有効フラグ
688  bool m_bPerformanceTimer; ///< 高精度タイマ有効フラグ
689  LONGLONG m_nPerformanceFreq; ///< パフォーマンス周波数
690  LONGLONG m_nPerformanceCount; ///< パフォーマンスカウント
691  LONGLONG m_nSecondCount; ///< 1秒待ちカウント
692  LONGLONG m_nErrorCount; ///< 積算誤差カウント
693  CTimer m_cFrameWaitTimer; ///< フレーム更新待機タイマ
694  LONGLONG m_nFrameWaitTime; ///< フレーム更新待機時間
695  int m_nFpsCount; ///< FPSカウント
696  int m_nFpsValue; ///< FPS測定値
697  int m_nFpsMax; ///< FPS最大値
698  bool m_bUpdatedFpsValue; ///< FPS測定値更新フラグ
699  CString m_cOtherInfo; ///< その他の情報文字列
700 
701  //=====================================================================
702  // 静的限定公開定数
703  protected:
704  static int const SEPARATOR_HEIGHT = 1; ///< セパレータコントロール垂直サイズ
705  static COLORREF const COLOR_SEPARATOR = RGB( 182, 188, 204 ); ///< タブ項目境界色
706  static int const STATUSBAR_PARTS_COUNT = 5; ///< ステータスバーコントロール分割数
707  static int const STATUSBAR_INDEX_FPS_TITLE = 0; ///< FPS測定値タイトル表示インデックス
708  static int const STATUSBAR_INDEX_FPS_VALUE = 1; ///< FPS測定値表示インデックス
709  static int const STATUSBAR_INDEX_ERROR_TITLE = 2; ///< 積算誤差タイトル表示インデックス
710  static int const STATUSBAR_INDEX_ERROR_VALUE = 3; ///< 積算誤差表示インデックス
711  static int const STATUSBAR_INDEX_OTHERS = 4; ///< その他の表示インデックス
712  static int const STATUSBAR_INDEX_FPS_WIDTH = 100; ///< FPS測定値表示幅
713  static int const STATUSBAR_INDEX_ERROR_WIDTH = 100; ///< 積算誤差表示幅
714  static int const FPS_MAX = 60; ///< FPS最大値デフォルト値
715 
716  //=====================================================================
717  // 静的限定公開文字列定数
718  protected:
719  static wchar_t const* const PATH_ICON_IMAGE; ///< アイコンイメージファイルディレクトリ文字列
720  static wchar_t const* const STATUSBAR_TITLE_FPS; ///< ステータスバーFPSタイトル文字列
721  static wchar_t const* const STATUSBAR_TITLE_ERROR; ///< ステータスバー積算誤差タイトル文字列
722  static wchar_t const* const STATUSBAR_OTHERS; ///< ステータスバーその他の情報初期値文字列
723  static wchar_t const* const KEY_SHOW_DEBUG_INFO; ///< デバッグ情報表示キー文字列
724  static wchar_t const* const KEY_DRAW_DOUBLE_BUFFER; ///< ダブルバッファリング描画キー文字列
725  static wchar_t const* const KEY_RESIZE_PARTITION_REALTIME; ///< リアルタイムパーティションサイズ変更キー文字列
726  static wchar_t const* const KEY_VIEW_TOOLBAR; ///< ツールバー表示状態キー文字列
727  static wchar_t const* const KEY_VIEW_STATUSBAR; ///< ステータスバー表示状態キー文字列
728  static wchar_t const* const SECTION_OVERLAP_LIST; ///< オーバーラップウィンドウリストセクション文字列
729  static wchar_t const* const SECTION_FLOATING_LIST; ///< フローティングウィンドウリストセクション文字列
730  static wchar_t const* const KEY_FOCUS_OVERLAP; ///< オーバーラップウィンドウフォーカス有効状態キー文字列
731  static wchar_t const* const KEY_FOCUS_FLOATING; ///< フローティングウィンドウフォーカス有効状態キー文字列
732 
733  //=====================================================================
734  // 削除関数
735  private:
736  CWndMain( CWndMain const& ) = delete;
737  CWndMain& operator=( CWndMain const& ) = delete;
738  };
739 }
740 
741 #pragma managed( pop )
bool m_bValidToolBarSelect
ツールバーボタン選択有効フラグ
Definition: CWndMain.h:687
ツールバークラスヘッダファイル
static wchar_t const *const KEY_RESIZE_PARTITION_REALTIME
リアルタイムパーティションサイズ変更キー文字列
Definition: CWndMain.h:725
LONGLONG m_nFrameWaitTime
フレーム更新待機時間
Definition: CWndMain.h:694
HMENU m_hMenu
メニューハンドル
Definition: CWndMain.h:672
CWndToolBar m_cToolBar
ツールバー
Definition: CWndMain.h:676
int m_nFpsCount
FPSカウント
Definition: CWndMain.h:695
CArray< SIconImageInfo > * m_pcIconImageList
アイコンイメージリストポインタ
Definition: CWndMain.h:680
CTimer m_cFrameWaitTimer
フレーム更新待機タイマ
Definition: CWndMain.h:693
static wchar_t const *const KEY_DRAW_DOUBLE_BUFFER
ダブルバッファリング描画キー文字列
Definition: CWndMain.h:724
int m_nFpsValue
FPS測定値
Definition: CWndMain.h:696
CString m_cOtherInfo
その他の情報文字列
Definition: CWndMain.h:699
int m_nFpsMax
FPS最大値
Definition: CWndMain.h:697
wchar_t const * m_pszButtonName
ツールバーボタン名
Definition: CWndMain.h:665
オーバーラップウィンドウクラス
Definition: CWndOverlap.h:32
配列クラス
Definition: CArray.h:33
フローティングウィンドウクラスヘッダファイル
static wchar_t const *const PATH_ICON_IMAGE
アイコンイメージファイルディレクトリ文字列
Definition: CWndMain.h:719
virtual wchar_t const * GetSectionName() const noexcept override
セクション名取得関数
Definition: CWndMain.h:71
bool m_bPerformanceTimer
高精度タイマ有効フラグ
Definition: CWndMain.h:688
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言
Definition: LibWindowDef.h:30
static CWndElement * CreateFloatingWindow() noexcept
フローティングウィンドウ作成関数
Definition: CWndMain.h:651
ツールバークラス
Definition: CWndToolBar.h:31
wchar_t const * m_pszIconFileName
アイコンファイル名
Definition: CWndMain.h:666
static wchar_t const *const KEY_FOCUS_OVERLAP
オーバーラップウィンドウフォーカス有効状態キー文字列
Definition: CWndMain.h:730
JSON構成情報クラス
Definition: CJsonConfig.h:31
LONGLONG m_nPerformanceCount
パフォーマンスカウント
Definition: CWndMain.h:690
ウィンドウライブラリ名前空間
Definition: CommandIdDef.h:22
HWND m_hSeparator
セパレータコントロールハンドル
Definition: CWndMain.h:675
virtual bool AppendShowDeleteMenu(HMENU hMenu) noexcept override
表示削除メニュー追加関数
Definition: CWndMain.h:301
static wchar_t const *const STATUSBAR_OTHERS
ステータスバーその他の情報初期値文字列
Definition: CWndMain.h:722
static CWndElement * CreateOverlapWindow() noexcept
オーバーラップウィンドウ作成関数
Definition: CWndMain.h:640
LONGLONG m_nErrorCount
積算誤差カウント
Definition: CWndMain.h:692
static wchar_t const *const KEY_SHOW_DEBUG_INFO
デバッグ情報表示キー文字列
Definition: CWndMain.h:723
HACCEL m_hAccel
アクセラレータテーブルハンドル
Definition: CWndMain.h:673
bool m_bToolBarMouseActivate
ツールバーマウスアクティベートフラグ
Definition: CWndMain.h:686
タイマクラスヘッダファイル
ウィンドウリストクラス
Definition: CWndList.h:35
文字列クラス
Definition: CString.h:31
CWndList m_cOverlapList
オーバーラップウィンドウリスト
Definition: CWndMain.h:677
static wchar_t const *const STATUSBAR_TITLE_FPS
ステータスバーFPSタイトル文字列
Definition: CWndMain.h:720
CWndList m_cFloatingList
フローティングウィンドウリスト
Definition: CWndMain.h:678
メインウィンドウクラス
Definition: CWndMain.h:33
bool m_bFocusFloating
フローティングウィンドウフォーカス有効フラグ
Definition: CWndMain.h:683
static wchar_t const *const KEY_VIEW_TOOLBAR
ツールバー表示状態キー文字列
Definition: CWndMain.h:726
HWND m_hStatusBar
ステータスバーコントロールハンドル
Definition: CWndMain.h:674
タイマクラス
Definition: CTimer.h:30
static wchar_t const *const STATUSBAR_TITLE_ERROR
ステータスバー積算誤差タイトル文字列
Definition: CWndMain.h:721
フローティングウィンドウクラス
Definition: CWndFloating.h:30
ペインウィンドウクラス
Definition: CWndPane.h:74
LONGLONG m_nPerformanceFreq
パフォーマンス周波数
Definition: CWndMain.h:689
bool m_bValidMenuSelect
メニュー項目選択有効フラグ
Definition: CWndMain.h:685
bool m_bUpdatedFpsValue
FPS測定値更新フラグ
Definition: CWndMain.h:698
CArray< TBBUTTON > * m_pcToolBarButtonList
ツールバーボタンリストポインタ
Definition: CWndMain.h:681
オーバーラップウィンドウクラスヘッダファイル
bool m_bMenuMouseActivate
メニューマウスアクティベートフラグ
Definition: CWndMain.h:684
bool m_bFocusOverlap
オーバーラップウィンドウフォーカス有効フラグ
Definition: CWndMain.h:682
HIMAGELIST m_hIconImageList
アイコンイメージリストハンドル
Definition: CWndMain.h:679
子ペインウィンドウ情報構造体
Definition: CWndPane.h:43
static wchar_t const *const SECTION_OVERLAP_LIST
オーバーラップウィンドウリストセクション文字列
Definition: CWndMain.h:728
アイコンイメージ情報構造体
Definition: CWndMain.h:663
static wchar_t const *const KEY_FOCUS_FLOATING
フローティングウィンドウフォーカス有効状態キー文字列
Definition: CWndMain.h:731
LONGLONG m_nSecondCount
1秒待ちカウント
Definition: CWndMain.h:691
virtual bool IdleCallBackProc() noexcept
アイドル処理コールバック関数
Definition: CWndMain.h:600
static wchar_t const *const SECTION_FLOATING_LIST
フローティングウィンドウリストセクション文字列
Definition: CWndMain.h:729
static wchar_t const *const KEY_VIEW_STATUSBAR
ステータスバー表示状態キー文字列
Definition: CWndMain.h:727