13 #pragma managed( push, off ) 43 , m_hStatusBar(
nullptr )
44 , m_hSeparator(
nullptr )
48 , m_hIconImageList(
nullptr )
49 , m_pcIconImageList(
nullptr )
50 , m_pcToolBarButtonList(
nullptr )
51 , m_bFocusOverlap( false )
52 , m_bFocusFloating( false )
53 , m_bMenuMouseActivate( false )
54 , m_bValidMenuSelect( false )
55 , m_bToolBarMouseActivate( false )
56 , m_bValidToolBarSelect( false )
57 , m_bPerformanceTimer( false )
58 , m_nPerformanceFreq( 0 )
59 , m_nPerformanceCount( 0 )
63 , m_nFrameWaitTime( 0 )
66 , m_nFpsMax( FPS_MAX )
67 , m_bUpdatedFpsValue( false )
71 ::InitCommonControls();
105 ::DestroyAcceleratorTable(
m_hAccel );
176 ::PostQuitMessage( 0 );
190 if ( 0 == ::IsWindowVisible(
m_hWnd ) ) {
196 RECT sClientRect = {};
197 ::GetClientRect(
m_hWnd, &sClientRect );
198 if ( 0 == ::IsRectEmpty( &sClientRect ) ) {
210 ::ScreenToClient(
m_hWnd, reinterpret_cast< LPPOINT >( &sRect.left ) );
211 ::ScreenToClient(
m_hWnd, reinterpret_cast< LPPOINT >( &sRect.right ) );
214 int nLeft = sRect.left;
215 int nTop = sRect.bottom;
216 int nWidth = ( sRect.right - nLeft );
218 ::SetWindowPos(
m_hSeparator, HWND_TOP, nLeft, nTop, nWidth, nHeight, ( SWP_NOACTIVATE | SWP_SHOWWINDOW ) );
251 ::SetFocus(
nullptr );
259 ::SetFocus(
nullptr );
269 if (
nullptr != pcElement ) {
282 if (
nullptr != pcElement ) {
319 if ( HTMENU == wHitTest ) {
330 ::GetCursorPos( &sPoint );
341 if ( TRUE == ::SendMessageW(
m_cToolBar.
GetHandle(), TB_GETITEMRECT, nIndex,
reinterpret_cast< LPARAM
>( &sRect ) ) ) {
343 if ( 0 != ::PtInRect( &sRect, sPoint ) ) {
348 int idCommand = ( *m_pcToolBarButtonList )[ nIndex ].idCommand;
388 HMENU hMenu =
reinterpret_cast< HMENU
>(
m_lParam );
445 NMHDR* psNmHdr =
reinterpret_cast< LPNMHDR
>(
m_lParam );
481 LPDRAWITEMSTRUCT lpDraw =
reinterpret_cast< LPDRAWITEMSTRUCT
>(
m_lParam );
515 HWND hCtrl =
reinterpret_cast< HWND
>(
m_lParam );
516 if (
nullptr != hCtrl ) {
529 hCtrl =
reinterpret_cast< HWND
>( uData );
536 if (
nullptr == pcPane ) {
570 HWND hChild =
reinterpret_cast< HWND
>(
m_lParam );
574 if (
nullptr != pcElement ) {
584 if (
nullptr != pcElement ) {
607 HWND hChild =
reinterpret_cast< HWND
>(
m_lParam );
697 ::ShowWindow(
m_hStatusBar, ( bView? SW_SHOWNOACTIVATE: SW_HIDE ) );
704 if (
nullptr != pcPane ) {
776 if (
nullptr != pcFocus ) {
881 if (
nullptr == pcPane ) {
884 if (
nullptr == pcPane ) {
887 if (
nullptr == pcPane ) {
909 if (
nullptr == pcChild ) {
925 ::SetFocus(
nullptr );
943 ::SetFocus(
nullptr );
1021 bool result =
false;
1027 ::PostMessageW(
m_hWnd, WM_CLOSE, 0, 0 );
1044 ::SendMessageW(
m_hWnd, WM_SIZE, 0, 0 );
1045 ::UpdateWindow(
m_hWnd );
1062 ::SendMessageW(
m_hWnd, WM_SIZE, 0, 0 );
1063 ::UpdateWindow(
m_hWnd );
1119 if ( ::IsZoomed(
m_hWnd ) ) {
1121 ::ShowWindow(
m_hWnd, SW_SHOWNOACTIVATE );
1125 ::ShowWindow(
m_hWnd, SW_SHOWMAXIMIZED );
1155 int nResult =
ShowMessage( L
"この操作は元に戻せません。\r\n本当に削除しても良いですか?",
m_hWnd, MB_OKCANCEL );
1156 if ( IDOK == nResult ) {
1221 HMENU result =
nullptr;
1224 HMENU hMenu = ::CreatePopupMenu();
1225 if (
nullptr == hMenu ) {
1231 HMENU hSubMenu = ::CreatePopupMenu();
1232 if (
nullptr != hSubMenu ) {
1237 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"共通" );
1240 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1244 ::AppendMenuW( hMenu, MF_SEPARATOR, 0,
nullptr );
1248 wchar_t szBuffer[ MAX_PATH ];
1249 ::GetWindowTextW(
m_hWnd, szBuffer, MAX_PATH );
1252 ::AppendMenuW( hMenu, MF_STRING, 0, szBuffer );
1253 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_GRAYED ) );
1270 bool result =
false;
1300 bool result =
false;
1304 if ( 0 == ::GetClientRect(
m_hWnd, &sClientRect ) ) {
1337 rsRect = sClientRect;
1351 bool result =
false;
1363 if (
nullptr != pcElement ) {
1373 if (
nullptr != pcElement ) {
1391 bool result =
false;
1411 bool result =
false;
1415 if (
nullptr == pcElement ) {
1421 ::ShowWindow( pcElement->
GetHandle(), SW_SHOWNA );
1424 ::SendMessageW( pcElement->
GetHandle(), WM_SIZE, 0, 0 );
1425 ::UpdateWindow( pcElement->
GetHandle() );
1442 bool result =
false;
1446 if (
nullptr == pcElement ) {
1452 ::ShowWindow( pcElement->
GetHandle(), SW_SHOWNA );
1455 ::SendMessageW( pcElement->
GetHandle(), WM_SIZE, 0, 0 );
1456 ::UpdateWindow( pcElement->
GetHandle() );
1473 bool result =
false;
1477 if (
nullptr == pcDocking ) {
1484 if (
nullptr == pcPartition ) {
1491 if (
nullptr == pcElementList ) {
1503 if (
nullptr != pcFloating ) {
1508 if (
nullptr != pcElementList ) {
1510 for (
int nIndex = 0, nCount = pcElementList->
GetCount(); nCount > nIndex; ++nIndex ) {
1512 CWndElement* pcElement = ( *pcElementList )[ nIndex ];
1513 if (
nullptr != pcElement ) {
1521 ::ShowWindow( pcFloating->
GetHandle(), SW_SHOWNA );
1524 ::SendMessageW( pcFloating->
GetHandle(), WM_SIZE, 0, 0 );
1525 ::UpdateWindow( pcFloating->
GetHandle() );
1543 ::SendMessageW( pcPartition->
GetHandle(), WM_SIZE, 0, 0 );
1544 ::UpdateWindow( pcPartition->
GetHandle() );
1555 bool result =
false;
1567 bool result =
false;
1570 if (
nullptr == hMenu ) {
1591 bool bShow = ( nCount > nShow );
1592 bool bHide = ( nHideable > nHide ) ;
1593 bool bDelete = ( 0 < nDeletable );
1607 ::AppendMenuW( hMenu, MF_SEPARATOR, 0,
nullptr );
1630 bool result =
false;
1633 for (
int nCount = ::GetMenuItemCount(
m_hMenu ), nIndex = ( nCount - 1 ); 0 <= nIndex; --nIndex ) {
1635 ::DeleteMenu(
m_hMenu, nIndex, MF_BYPOSITION );
1662 bool result =
false;
1665 if (
nullptr == hMenu ) {
1671 HMENU hSubMenu = ::CreatePopupMenu();
1672 if (
nullptr == hSubMenu ) {
1678 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_NEW, L
"新規作成(&N)\tCtrl+N" );
1679 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_OPEN, L
"開く(&O)...\tCtrl+O" );
1680 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_CLOSE, L
"閉じる(&C)\tCtrl+W,Ctrl+F4" );
1681 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1682 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_SAVE, L
"保存(&S)\tCtrl+S" );
1683 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_SAVE_AS, L
"名前を付けて保存(&A)...\tCtrl+Shift+S" );
1685 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1686 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_PRINT, L
"印刷(&P)...\tCtrl+P" );
1688 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1689 ::AppendMenuW( hSubMenu, MF_STRING,
ID_FILE_EXIT, L
"終了(&X)\tAlt+F4" );
1690 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1701 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"ファイル(&F)" );
1704 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1708 hSubMenu = ::CreatePopupMenu();
1709 if (
nullptr == hSubMenu ) {
1715 ::AppendMenuW( hSubMenu, MF_STRING,
ID_EDIT_UNDO, L
"元に戻す(&U)\tCtrl+Z" );
1716 ::AppendMenuW( hSubMenu, MF_STRING,
ID_EDIT_REDO, L
"やり直し(&R)\tCtrl+Y" );
1717 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1718 ::AppendMenuW( hSubMenu, MF_STRING,
ID_EDIT_CUT, L
"切り取り(&T)\tCtrl+X" );
1719 ::AppendMenuW( hSubMenu, MF_STRING,
ID_EDIT_COPY, L
"コピー(&C)\tCtrl+C" );
1720 ::AppendMenuW( hSubMenu, MF_STRING,
ID_EDIT_PASTE, L
"貼り付け(&P)\tCtrl+V" );
1721 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1722 ::AppendMenuW( hSubMenu, MF_STRING,
ID_EDIT_DELETE, L
"削除(&D)\tDel" );
1723 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
1734 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"編集(&E)" );
1737 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1741 hSubMenu = ::CreatePopupMenu();
1742 if (
nullptr == hSubMenu ) {
1754 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"表示(&V)" );
1757 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1761 hSubMenu = ::CreatePopupMenu();
1762 if (
nullptr == hSubMenu ) {
1769 ::AppendMenuW( hSubMenu, MF_STRING,
ID_TOOL_OPTION, L
"オプション(&O)..." );
1774 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"ツール(&T)" );
1777 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1781 hSubMenu = ::CreatePopupMenu();
1782 if (
nullptr == hSubMenu ) {
1788 ::AppendMenuW( hSubMenu, MF_STRING,
ID_WINDOW_NEW, L
"新規ウィンドウ(&N)" );
1791 ::AppendMenuW( hSubMenu, MF_STRING,
ID_WINDOW_LIST, L
"ウィンドウ(&W)..." );
1798 HMENU hSubMenu2 = ::CreatePopupMenu();
1799 if (
nullptr == hSubMenu2 ) {
1807 ::AppendMenuW( hSubMenu2, MF_STRING,
ID_WINDOW_POS_TOP, L
"上側(&T)\tCtrl+Alt+Up" );
1809 ::AppendMenuW( hSubMenu2, MF_STRING,
ID_WINDOW_POS_FULL, L
"フルサイズ(&F)\tCtrl+Alt+Enter" );
1813 ::AppendMenuW( hSubMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu2 ), L
"表示位置(&P)" );
1816 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1820 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"ウィンドウ(&W)" );
1823 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1827 hSubMenu = ::CreatePopupMenu();
1828 if (
nullptr == hSubMenu ) {
1834 ::AppendMenuW( hSubMenu, MF_STRING,
ID_HELP_ABOUT, L
"バージョン情報(&A)" );
1837 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"ヘルプ(&H)" );
1840 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1844 hSubMenu = ::CreatePopupMenu();
1845 if (
nullptr == hSubMenu ) {
1851 hSubMenu2 = ::CreatePopupMenu();
1852 if (
nullptr == hSubMenu2 ) {
1861 ::AppendMenuW( hSubMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu2 ), L
"共通" );
1864 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1871 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), L
"デバッグ(&D)" );
1874 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
1889 static ACCEL sAccels[] = {
1893 { FVIRTKEY | FCONTROL, VK_F4, ID_FILE_CLOSE },
1906 bool result =
false;
1909 int nCount = (
sizeof sAccels /
sizeof( ACCEL ) );
1910 m_hAccel = ::CreateAcceleratorTableW( sAccels, nCount );
1928 bool result =
false;
1948 ::SendMessageW(
m_cToolBar.
GetHandle(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS );
1966 bool result =
false;
1973 int idCommand = ( *m_pcToolBarButtonList )[ nIndex ].idCommand;
1990 bool result =
false;
1994 {
ID_FILE_NEW, L
"新規作成", L
"Generic_Document.ico", },
2002 for (
int nIndex = 0, nCount = (
sizeof( sIconImageInfoList ) /
sizeof(
SIconImageInfo ) );; ++nIndex ) {
2004 if ( nCount <= nIndex ) {
2032 else for (
int nIndex = 0, nCount =
m_pcIconImageList->GetCount();; ++nIndex ) {
2034 if ( nCount <= nIndex ) {
2043 cPath += ( *m_pcIconImageList )[ nIndex ].m_pszIconFileName;
2046 HICON hIcon =
reinterpret_cast< HICON
>( ::LoadImageW( ::GetModuleHandleW(
nullptr ), cPath, IMAGE_ICON, 0, 0, LR_LOADFROMFILE ) );
2047 if (
nullptr == hIcon ) {
2056 ::DeleteObject( hIcon );
2068 bool result =
false;
2071 static TBBUTTON
const sButtons[] = {
2075 { 0, 0, 0, BTNS_SEP },
2077 { 0, 0, 0, BTNS_SEP },
2082 for (
int nIndex = 0, nCount = (
sizeof( sButtons ) /
sizeof( TBBUTTON ) );; ++nIndex ) {
2084 if ( nCount <= nIndex ) {
2091 TBBUTTON sButton = sButtons[ nIndex ];
2092 if ( 0 != sButton.idCommand ) {
2094 for (
int nIndex2 = 0, nCount2 =
m_pcIconImageList->GetCount(); nCount2 > nIndex2; ++nIndex2 ) {
2098 sButton.iBitmap = nIndex2;
2101 sButton.iString =
reinterpret_cast< INT_PTR
>( ( *m_pcIconImageList )[ nIndex2 ].m_pszButtonName );
2123 bool result =
false;
2126 DWORD dwStyle = ( WS_VISIBLE | WS_CHILD | SBARS_SIZEGRIP | CCS_BOTTOM );
2127 m_hStatusBar = ::CreateWindowExW( 0, STATUSCLASSNAMEW,
nullptr, dwStyle, 0, 0, 0, 0,
m_hWnd,
nullptr, ::GetModuleHandleW(
nullptr ),
nullptr );
2178 bool result =
false;
2189 cString.
Format( L
"%.3f ms", ( nWaitTime / 1000.0 ) );
2208 bool result =
false;
2211 DWORD dwStyle = ( WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | SS_OWNERDRAW );
2212 m_hSeparator = ::CreateWindowExW( 0, WC_STATICW,
nullptr, dwStyle, 0, 0, 0, 0,
m_hWnd,
nullptr, ::GetModuleHandleW(
nullptr ),
nullptr );
2230 bool result =
false;
2236 ::FillRect( lpDraw->hDC, &lpDraw->rcItem, hBrush );
2239 ::DeleteObject( hBrush );
2253 bool result =
false;
2256 if (
nullptr ==
m_hWnd ) {
2265 if ( 0 == ::IsWindowVisible(
m_hWnd ) ) {
2267 ::ShowWindow(
m_hWnd, SW_SHOWNOACTIVATE );
2286 if ( 0 != ::PeekMessageW( &sMsg,
nullptr, 0, 0, PM_REMOVE ) ) {
2288 if ( WM_QUIT == sMsg.message ) {
2293 else if ( 0 == ::TranslateAcceleratorW( sMsg.hwnd,
m_hAccel, &sMsg ) ) {
2295 ::TranslateMessage( &sMsg );
2298 ::DispatchMessageW( &sMsg );
2332 bool result =
false;
2341 LARGE_INTEGER sFrequency = {};
2342 if ( 0 != ::QueryPerformanceFrequency( &sFrequency ) ) {
2350 LARGE_INTEGER sPerformanceCount = {};
2351 ::QueryPerformanceCounter( &sPerformanceCount );
2370 bool result =
false;
2402 bool result =
false;
2416 LARGE_INTEGER sPerformanceCount = {};
2417 ::QueryPerformanceCounter( &sPerformanceCount );
2466 bool result =
false;
2489 bool result =
false;
2548 #pragma managed( pop ) bool m_bValidToolBarSelect
ツールバーボタン選択有効フラグ
constexpr WORD const ID_DEBUG_REALTIME_RESIZE_PARTITION
デバッグ::リアルタイムパーティションサイズ変更
constexpr WORD const ID_FILE_RECENT_FILE
ファイル::最近使ったファイル
virtual HWND & GetHandle() noexcept
ウィンドウハンドル取得関数
virtual bool AppendNewFloatingWindow() noexcept
新規フローティングウィンドウ追加関数
LIB_WINDOW_API bool GetMenuCommandData(HMENU hMenu, UINT uId, ULONG_PTR &ruData) noexcept
メニューコマンドデータ取得関数
constexpr WORD const ID_TOOL_OPTION
ツール::オプション
constexpr WORD const ID_WINDOW_POS_LEFT
ウィンドウ::表示位置::左側
constexpr WORD const ID_EDIT_UNDO
編集::元に戻す
static bool SaveConfigStatic(CJsonConfig &rcConfig) noexcept
静的構成情報保存関数
constexpr WORD const ID_DEBUG_HIDE_ALL
デバッグ::すべて隠す
virtual LRESULT WmNotifyChildSetFocus() noexcept override
ユーザ定義メッセージ処理関数
constexpr WORD const ID_EDIT_CUT
編集::切り取り
#define NotifyFatalError()
致命的エラー発生通知マクロ
virtual LRESULT WmMouseActivate() noexcept override
constexpr WORD const ID_FILE_PRINT
ファイル::印刷
constexpr WORD const ID_WINDOW_NEW
ウィンドウ::新規ウィンドウ
static wchar_t const *const KEY_RESIZE_PARTITION_REALTIME
リアルタイムパーティションサイズ変更キー文字列
LONGLONG m_nFrameWaitTime
フレーム更新待機時間
constexpr WORD const ID_DEBUG_SHOW_DENUG_INFO
デバッグ::デバッグ情報表示
constexpr WORD const ID_FILE_CLOSE
ファイル::閉じる
constexpr WORD const ID_DEBUG_DRAW_DOUBLE_BUFFER
デバッグ::ダブルバッファリング描画
constexpr WORD const ID_EDIT_DELETE
編集::削除
constexpr WORD const ID_TOOL_CUSTOMIZE
ツール::カスタマイズ
virtual CWndPane * GetOrderPane(int *pnOrder) noexcept override
オーダー番号ペインウィンドウ取得関数
LIB_COMMON_API int ShowMessage(wchar_t const *pszMessage, HWND hWnd=nullptr, UINT uType=(MB_OK|MB_ICONEXCLAMATION)) noexcept
メッセージ表示関数
CWndToolBar m_cToolBar
ツールバー
virtual bool ResumeElementListConfig(CJsonConfig &rcConfig, wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報復元関数
virtual bool CreateSeparator() noexcept
セパレータ作成関数
virtual CWndElement * GetElementWindow(HWND hWnd) const noexcept
エレメントウィンドウ取得関数
virtual bool CreateListWindow(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept
エレメントウィンドウリスト作成関数
virtual bool CreateToolBar() noexcept
ツールバー作成関数
virtual bool Create(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept override
ウィンドウ作成関数
virtual CWndPane * GetOrderPane(int *pnOrder) noexcept override
オーダー番号ペインウィンドウ取得関数
virtual LRESULT WmDrawItem() noexcept override
static int const STATUSBAR_PARTS_COUNT
ステータスバーコントロール分割数
virtual bool AppendNewOverlapWindow() noexcept
新規オーバーラップウィンドウ追加関数
CArray< SIconImageInfo > * m_pcIconImageList
アイコンイメージリストポインタ
virtual bool AppendMainMenu(HMENU hMenu) noexcept
メインメニュー追加関数
virtual LRESULT NmClick() noexcept
virtual bool CreateIconImageList() noexcept
アイコンイメージリスト作成関数
CTimer m_cFrameWaitTimer
フレーム更新待機タイマ
constexpr WORD const ID_WINDOW_FLOATING
ウィンドウ::フローティング
virtual bool UpdateClientRectAll() noexcept
全ウィンドウクライアント領域更新関数
virtual bool EndFrame() noexcept
フレーム終了関数
constexpr WORD const ID_WINDOW_POS_RIGHT
ウィンドウ::表示位置::右側
virtual bool CreateStatusBar() noexcept
ステータスバー作成関数
constexpr WORD const ID_EDIT_SELECT_ALL
編集::すべて選択
virtual LRESULT WmNotifyChildLButtonUp() noexcept
virtual HMENU CreateContextMenu() noexcept override
コンテキストメニュー作成関数
virtual bool DeleteChildAll() noexcept override
全子ウィンドウ削除関数
static wchar_t const *const KEY_DRAW_DOUBLE_BUFFER
ダブルバッファリング描画キー文字列
static COLORREF const COLOR_SEPARATOR
タブ項目境界色
virtual bool UpdateClientRectAll() noexcept override
全ウィンドウクライアント領域更新関数
virtual LRESULT WmNotifyChildLButtonUp() noexcept override
virtual bool DockingToFloating(HWND hWnd) noexcept
ドッキングウィンドウフローティング表示関数
virtual bool Wait(DWORD dwTime=INFINITE) noexcept override
ウェイト関数
virtual int GetHideChildCount() noexcept
非表示状態子ペインウィンドウ数取得関数
virtual bool SetNano100(LONGLONG llWait, LONG nPeriod=0, PTIMERAPCROUTINE pfnCallBack=nullptr, LPVOID lpParam=nullptr, bool bResume=false) noexcept
100ナノタイマ設定関数
virtual bool ResumeConfig(CJsonConfig &rcConfig) noexcept override
ウィンドウ構成情報復元関数
CString m_cOtherInfo
その他の情報文字列
constexpr WORD const ID_DEBUG_SHOW_ALL
デバッグ::すべて表示
virtual bool AppendDebugMenu(HMENU hMenu) noexcept override
デバッグメニュー追加関数
LIB_WINDOW_API bool CheckMenuCommand(HMENU hMenu, UINT uId, bool bCheck) noexcept
メニューコマンドチェック状態設定関数
constexpr WORD const ID_VIEW_TOOLBAR
表示::ツールバー
virtual bool GetChildPaneInfo(SChildPaneInfo &rsChildInfo) noexcept override
子ペインウィンドウ情報取得関数
virtual int GetOrderIndex(CWndPane *pcPane=nullptr, int *pnOrder=nullptr) noexcept override
ペインウィンドウオーダー番号取得関数
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
constexpr WORD const ID_WINDOW_POS_BOTTOM
ウィンドウ::表示位置::下側
virtual bool StartFrame() noexcept
フレーム開始関数
virtual LRESULT WmMenuSelect() noexcept
LIB_WINDOW_API int GetEnableMenuCommandCount(HMENU hMenu) noexcept
メニューコマンド有効数取得関数
constexpr WORD const ID_FILE_NEW
ファイル::新規作成
virtual bool SubtractChildRect(HWND hChild, RECT &rsRect) noexcept
子ウィンドウ表示領域減算関数
LIB_WINDOW_API bool IsEnableMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド有効状態取得関数
virtual bool ExecMenuCommand(WORD wId, WORD wCode, HWND hCtrl) noexcept
メニューコマンド実行関数
static wchar_t const *const PATH_ICON_IMAGE
アイコンイメージファイルディレクトリ文字列
constexpr WORD const ID_FILE_SAVE_ALL
ファイル::すべて保存
virtual bool UpdateClientRectAll() noexcept override
全ウィンドウクライアント領域更新関数
virtual bool DrawSeparator(LPDRAWITEMSTRUCT lpDraw) noexcept
セパレータ描画関数
virtual int GetShowChildCount() noexcept
表示状態子ペインウィンドウ数取得関数
static HMENU s_hContextMenu
コンテキストメニューハンドル
virtual LRESULT WmExitMenuLoop() noexcept
virtual LRESULT WmNotifyChildSetFocus() noexcept override
ユーザ定義メッセージ処理関数
virtual bool InitConfig(CJsonConfig &rcConfig) noexcept override
ウィンドウ構成情報初期化関数
bool m_bPerformanceTimer
高精度タイマ有効フラグ
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言
static CWndElement * CreateFloatingWindow() noexcept
フローティングウィンドウ作成関数
constexpr WORD const ID_EDIT_REDO
編集::やり直し
constexpr WORD const ID_FILE_EXIT
ファイル::終了
virtual CWndPane * GetElementListOrderPane(int *pnOrder) noexcept
エレメントウィンドウリストオーダー番号ペインウィンドウ取得関数
static wchar_t const *const KEY_FOCUS_OVERLAP
オーバーラップウィンドウフォーカス有効状態キー文字列
virtual ~CWndMain() noexcept
デストラクタ
virtual bool Create(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept override
ウィンドウ作成関数
virtual bool GetChildElementListInfo(CWndPane *pcParent, SChildPaneInfo &rsChildInfo) noexcept
子エレメントウィンドウリスト情報取得関数
constexpr WORD const ID_WINDOW_POS_FULL
ウィンドウ::表示位置::フルサイズ
#define _SOLUTION_DIR
ソリューションディレクトリパス
virtual LRESULT NmClick() noexcept override
virtual LRESULT WmSize() noexcept override
各種メッセージ処理関数
virtual bool ShowChildAll(bool bShow) noexcept override
全子ウィンドウ表示関数
constexpr WORD const ID_DEBUG_NEW_FLOATING
デバッグ::新規フローティングウィンドウ
constexpr WORD const ID_WINDOW_DOCKING
ウィンドウ::ドッキング
static bool s_bShowDebugInfo
デバッグ情報表示フラグ
static HWND s_hFocus
フォーカスウィンドウ保存ハンドル
static int const STATUSBAR_INDEX_FPS_VALUE
FPS測定値表示インデックス
virtual bool AppendElementWindow(HWND hParent, CWndElement *pcElement) noexcept
エレメントウィンドウ追加関数
LONGLONG m_nPerformanceCount
パフォーマンスカウント
constexpr WORD const ID_FILE_SAVE_AS
ファイル::名前を付けて保存
static bool s_bResizePartitionRealTime
リアルタイムパーティションサイズ変更フラグ
constexpr WORD const ID_DEBUG_NEW_OVERLAP
デバッグ::新規オーバーラップウィンドウ
HWND m_hSeparator
セパレータコントロールハンドル
virtual bool AppendDebugMenu(HMENU hMenu) noexcept override
デバッグメニュー追加関数
virtual bool CreateAccel() noexcept
アクセラレータテーブル作成関数
constexpr WORD const ID_WINDOW_POS_MAXIMIZE
ウィンドウ::表示位置::最大化
static wchar_t const *const STATUSBAR_OTHERS
ステータスバーその他の情報初期値文字列
static CWndElement * CreateOverlapWindow() noexcept
オーバーラップウィンドウ作成関数
LONGLONG m_nErrorCount
積算誤差カウント
virtual Type * GetBuffer() noexcept
配列要素バッファ取得関数
virtual LRESULT WmSetFocus() noexcept override
各種メッセージ処理関数
constexpr WORD const ID_EDIT_PASTE
編集::貼り付け
virtual wchar_t const * Format(wchar_t const *pszFormat,...) noexcept
書式設定文字列代入関数
static wchar_t const *const KEY_SHOW_DEBUG_INFO
デバッグ情報表示キー文字列
virtual LRESULT WmDrawItem() noexcept override
virtual bool ExecMenuCommand(WORD wId, WORD wCode, HWND hCtrl) noexcept override
メニューコマンド実行関数
virtual bool DeleteChildWindow(CWndPane *pcChild) noexcept override
子ウィンドウ削除関数
constexpr WORD const ID_EDIT_COPY
編集::コピー
static int const STATUSBAR_INDEX_FPS_WIDTH
FPS測定値表示幅
HACCEL m_hAccel
アクセラレータテーブルハンドル
virtual LRESULT WmCommand() noexcept override
CWndMain() noexcept
コンストラクタ
virtual bool ResumeConfig(CJsonConfig &rcConfig) noexcept override
ウィンドウ構成情報復元関数
virtual bool InitFrame() noexcept
フレーム管理初期化関数
virtual bool RemoveElementWindow(CWndElement *pcElement) noexcept
エレメントウィンドウ削除関数
virtual bool SaveConfig(CJsonConfig &rcConfig) noexcept override
ウィンドウ構成情報保存関数
virtual bool DeleteChildWindow(CWndPane *pcChild) noexcept override
子ウィンドウ削除関数
virtual int GetDeletableChildCount() noexcept
削除可能子ペインウィンドウ数取得関数
bool m_bToolBarMouseActivate
ツールバーマウスアクティベートフラグ
virtual CWndList * GetElementList() noexcept
エレメントウィンドウリスト取得関数
static wchar_t const *const KEY_FOCUS_ORDER
フォーカスウィンドウオーダー番号キー文字列
virtual bool FloatingToDocking(HWND hWnd) noexcept
フローティングウィンドウドッキング表示関数
virtual LRESULT WmNotifyChildCommand() noexcept
constexpr WORD const ID_DEBUG_DELETE_ALL
デバッグ::すべて削除
static int const STATUSBAR_INDEX_ERROR_TITLE
積算誤差タイトル表示インデックス
virtual LRESULT WmSize() noexcept override
各種メッセージ処理関数
virtual bool InitConfig(CJsonConfig &rcConfig) noexcept override
ウィンドウ構成情報初期化関数
LIB_WINDOW_API bool EnableMenuCommand(HMENU hMenu, UINT uId, bool bEnable) noexcept
メニューコマンド有効状態設定関数
virtual bool AppendElementListDebugSubMenu(HMENU hMenu, CWndPane *pcParent, wchar_t const *pszElementName, WORD wIdNew) noexcept
エレメントウィンドウリストデバッグサブメニュー追加関数
virtual bool GetPartitionClientRect(RECT &rsRect) noexcept override
パーティション表示クライアント領域取得関数
CWndList m_cOverlapList
オーバーラップウィンドウリスト
virtual bool Run() noexcept
ウィンドウアプリケーション実行関数
static bool s_bDrawDoubleBuffer
ダブルバッファリング描画フラグ
static wchar_t const *const STATUSBAR_TITLE_FPS
ステータスバーFPSタイトル文字列
constexpr WORD const ID_VIEW_STATUSBAR
表示::ステータスバー
virtual int GetChildCount() noexcept
子ペインウィンドウ数取得関数
virtual bool DeleteChildAll() noexcept override
全子ウィンドウ削除関数
CWndList m_cFloatingList
フローティングウィンドウリスト
virtual bool CreateToolBarButtonList() noexcept
ツールバーボタンリスト作成関数
bool m_bFocusFloating
フローティングウィンドウフォーカス有効フラグ
virtual bool ShowElementListAll(CWndPane *pcParent, bool bShow) noexcept
全エレメントウィンドウリスト表示関数
virtual LRESULT WmNotifyChildCommand() noexcept override
static int const SEPARATOR_HEIGHT
セパレータコントロール垂直サイズ
virtual LRESULT WmDestroy() noexcept override
各種メッセージ処理関数
static wchar_t const *const KEY_VIEW_TOOLBAR
ツールバー表示状態キー文字列
static int const STATUSBAR_INDEX_OTHERS
その他の表示インデックス
virtual LRESULT WmSetFocus() noexcept override
各種メッセージ処理関数
constexpr WORD const ID_WINDOW_LIST
ウィンドウ::ウィンドウ(リスト)
virtual int GetHideableChildCount() noexcept
非表示可能子ペインウィンドウ数取得関数
virtual int GetElementListOrderIndex(CWndPane *pcPane, int *pnOrder) noexcept
エレメントウィンドウリストオーダー番号取得関数
virtual bool AppendCommonDebugMenu(HMENU hMenu) noexcept
共通デバッグメニュー追加関数
virtual CWndElement * GetCurrentElement() const noexcept
カレントエレメントウィンドウ取得関数
LIB_WINDOW_API bool SetMenuCommandData(HMENU hMenu, UINT uId, ULONG_PTR uData) noexcept
メニューコマンドデータ設定関数
HWND m_hStatusBar
ステータスバーコントロールハンドル
virtual bool ShowDebugInfo() noexcept
デバッグ情報表示関数
static bool ResumeConfigStatic(CJsonConfig &rcConfig) noexcept
静的構成情報復元関数
virtual CWndPane * GetPaneWindow(HWND hWnd) const noexcept
表示フラグ取得関数
constexpr WORD const ID_HELP_ABOUT
ヘルプ::バージョン情報
static wchar_t const *const STATUSBAR_TITLE_ERROR
ステータスバー積算誤差タイトル文字列
virtual bool DeleteElementListAll(CWndPane *pcParent) noexcept
全エレメントウィンドウリスト削除関数
virtual bool Create(wchar_t const *pszObjectName=nullptr) noexcept
作成関数
virtual LRESULT WmExitMenuLoop() noexcept override
virtual bool GetChildPaneInfo(SChildPaneInfo &rsChildInfo) noexcept override
子ペインウィンドウ情報取得関数
virtual CWndElement * AppendNewElementWindow(HWND hParent, CWndElement *(*pfnCreateElement)()) noexcept
新規エレメントウィンドウ追加関数
constexpr WORD const ID_FILE_SAVE
ファイル::保存
LONGLONG m_nPerformanceFreq
パフォーマンス周波数
bool m_bValidMenuSelect
メニュー項目選択有効フラグ
virtual bool SetCurrentElement(CWndElement *pcElement) noexcept
カレントエレメントウィンドウ設定関数
bool m_bUpdatedFpsValue
FPS測定値更新フラグ
virtual bool UpdateToolBar() noexcept
ツールバー更新関数
virtual bool UpdateMenuBar() noexcept
メニューバー更新関数
CArray< TBBUTTON > * m_pcToolBarButtonList
ツールバーボタンリストポインタ
constexpr WORD const ID_FILE_OPEN
ファイル::開く
virtual bool ExecMenuCommand(WORD wId, WORD wCode, HWND hCtrl) noexcept override
メニューコマンド実行関数
bool m_bMenuMouseActivate
メニューマウスアクティベートフラグ
virtual LRESULT WmCommand() noexcept override
virtual bool SaveElementListConfig(CJsonConfig &rcConfig, wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報保存関数
static int const STATUSBAR_INDEX_ERROR_VALUE
積算誤差表示インデックス
LIB_COMMON_API bool SetWindowPosition(HWND hWnd, EWindowPosition ePos) noexcept
ウィンドウ表示位置設定関数
virtual LRESULT WmMenuSelect() noexcept override
virtual wchar_t const * GetBuffer() const noexcept
文字列バッファ取得関数
bool m_bFocusOverlap
オーバーラップウィンドウフォーカス有効フラグ
static int const STATUSBAR_INDEX_ERROR_WIDTH
積算誤差表示幅
JSON構成情報自動セクションブロッククラスヘッダファイル
static int const STATUSBAR_INDEX_FPS_TITLE
FPS測定値タイトル表示インデックス
HIMAGELIST m_hIconImageList
アイコンイメージリストハンドル
constexpr WORD const ID_WINDOW_POS_TOP
ウィンドウ::表示位置::上側
static wchar_t const *const SECTION_OVERLAP_LIST
オーバーラップウィンドウリストセクション文字列
static wchar_t const *const KEY_FOCUS_FLOATING
フローティングウィンドウフォーカス有効状態キー文字列
virtual bool InitElementListConfig(CJsonConfig &rcConfig, CWndElement *(*pfnCreateElement)(), wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報初期化関数
virtual int GetCount() const noexcept
配列要素数取得関数
LONGLONG m_nSecondCount
1秒待ちカウント
virtual bool ShowChildAll(bool bShow) noexcept override
全子ウィンドウ表示関数
virtual bool IdleCallBackProc() noexcept
アイドル処理コールバック関数
LIB_WINDOW_API bool IsOwnOrChild(HWND hWnd, HWND hChild) noexcept
自分または子ウィンドウ判定関数
virtual bool UpdateStatusBar() noexcept
ステータスバー更新関数
static wchar_t const *const SECTION_FLOATING_LIST
フローティングウィンドウリストセクション文字列
static wchar_t const *const KEY_VIEW_STATUSBAR
ステータスバー表示状態キー文字列
virtual bool SaveConfig(CJsonConfig &rcConfig) noexcept override
ウィンドウ構成情報保存関数
virtual int GetOrderIndex(CWndPane *pcPane=nullptr, int *pnOrder=nullptr) noexcept
ペインウィンドウオーダー番号取得関数
virtual int GetOrderIndex(CWndPane *pcPane=nullptr, int *pnOrder=nullptr) noexcept override
ペインウィンドウオーダー番号取得関数