13 #pragma managed( push, off )    47         : 
CArray( std::move( rcInstance ) )
    58         for ( 
int nIndex = ( 
m_nCount - 1 ); 0 <= nIndex; --nIndex ) {
    61             if ( 
nullptr != pcElement ) {
    78             for ( 
int nIndex = 0;; ++nIndex ) {
    88                 if ( 
nullptr == pcElement ) {
    93                 else if ( !pcElement->
Create( hParent, hMenu ) ) {
   111             for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   114                 if ( 
nullptr != pcElement ) {
   122                     else if ( 0 > result ) {
   141             if ( ( 0 > nIndex ) || ( 
m_nCount <= nIndex ) ) {
   164             for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   167                 if ( 
nullptr != pcElement ) {
   169                     if ( pcElement->
IsShow() ) {
   177                         else if ( 0 > result ) {
   239             for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   242                 if ( 
nullptr != pcElement ) {
   264             if ( 
nullptr == pszElementName ) {
   269             else if ( 
nullptr == pfnCreateElement ) {
   282                 for ( 
int nIndex = 0;; ++nIndex ) {
   284                     if ( nCount <= nIndex ) {
   289                             if ( ( 0 <= nIndex ) && ( 
m_nCount > nIndex ) ) {
   302                     if ( 
nullptr != pcElement ) {
   309                             if ( 
Append( pcElement ) ) {
   336             if ( 
nullptr == pszElementName ) {
   345                 if ( 
nullptr == pszElementName ) {
   350                 else for ( 
int nIndex = 0;; ++nIndex ) {
   360                     if ( 
nullptr != pcElement ) {
   388             if ( 
nullptr == pszElementName ) {
   397                 if ( 
nullptr == pszElementName ) {
   418                     for ( 
int nIndex = 0;; ++nIndex ) {
   428                         if ( 
nullptr != pcElement ) {
   454             if ( 
nullptr == pcParent ) {
   460             for ( 
int nIndex = 0;; ++nIndex ) {
   470                 if ( 
nullptr != pcElement ) {
   472                     ++rsChildInfo.m_nCount;
   475                     if ( pcElement->
IsShow() ) {
   477                         ++rsChildInfo.m_nShow;
   481                         ++rsChildInfo.m_nHide;
   485                     if ( pcParent->CanHideChildWindow( pcElement ) ) {
   487                         ++rsChildInfo.m_nHideable;
   491                     if ( pcParent->CanDeleteChildWindow( pcElement ) ) {
   493                         ++rsChildInfo.m_nDeletable;
   516             for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   519                 if ( 
nullptr != pcElement ) {
   542             for ( 
int nIndex = 0; 
m_nCount > nIndex; ++nIndex ) {
   545                 if ( 
nullptr != pcElement ) {
   548                     if ( 
nullptr != pcPane ) {
   568             if ( 
nullptr == pcParent ) {
   574             for ( 
int nIndex = 0;; ++nIndex ) {
   584                 if ( 
nullptr != pcElement ) {
   586                     if ( !pcParent->ShowChildWindow( pcElement, bShow ) ) {
   610             if ( 
nullptr == pcParent ) {
   616             for ( 
int nIndex = 
m_nCount;; --nIndex ) {
   626                 if ( 
nullptr != pcElement ) {
   633                     else if ( !pcParent->DeleteChildWindow( pcElement ) ) {
   652             if ( 
nullptr == pcElement ) {
   657             else if ( 
Append( pcElement ) ) {
   659                 if ( pcElement->Create( hParent ) ) {
   687             if ( 0 == ::IsWindow( hParent ) ) {
   692             else if ( 
nullptr == pfnCreateElement ) {
   699             if ( 
nullptr == pcElement ) {
   725             if ( 
nullptr == hMenu ) {
   730             else if ( 
nullptr == pcParent ) {
   735             else if ( 
nullptr == pszElementName ) {
   741             int nOrder = pcParent->GetOrderIndex();
   748             WORD wCode = 
static_cast< WORD 
>( nOrder );
   751             HMENU hSubMenu = ::CreatePopupMenu();
   752             if ( 
nullptr == hSubMenu ) {
   758             for ( 
int nIndex = 0;; ++nIndex ) {
   764                         if ( 0 < ::GetMenuItemCount( hSubMenu ) ) {
   766                             ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0, 
nullptr );
   770                         UINT uId = MAKELONG( wIdNew, wCode );
   771                         ::AppendMenuW( hSubMenu, MF_STRING, uId, 
CString().Format( L
"新規%s", pszElementName ) );
   772                         SetMenuCommandData( hSubMenu, uId, reinterpret_cast< ULONG_PTR >( pcParent->GetHandle() ) );
   776                     if ( 0 < ::GetMenuItemCount( hMenu ) ) {
   778                         ::AppendMenuW( hMenu, MF_SEPARATOR, 0, 
nullptr );
   782                     ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ), 
CString().Format( L
"%sリスト", pszElementName ) );
   785                         ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
   795                 if ( 
nullptr != pcElement ) {
   797                     HMENU hSubSubMenu = ::CreatePopupMenu();
   798                     if ( 
nullptr == hSubSubMenu ) {
   805                         if ( 0 < ::GetMenuItemCount( hSubSubMenu ) ) {
   807                             wchar_t szBuffer[ MAX_PATH ];
   808                             ::GetWindowTextW( pcElement->
GetHandle(), szBuffer, MAX_PATH );
   811                             if ( 0 < ::GetMenuItemCount( hSubMenu ) ) {
   813                                 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0, 
nullptr );
   817                             ::AppendMenuW( hSubMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubSubMenu ), szBuffer );
   820                                 ::EnableMenuItem( hSubMenu, ( ::GetMenuItemCount( hSubMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
   825                             ::DestroyMenu( hSubSubMenu );
   830                         ::DestroyMenu( hSubSubMenu );
   838                 ::DestroyMenu( hSubMenu );
   857 #pragma managed( pop ) static wchar_t const *const KEY_CURRENT_INDEX
カレントインデックスキー文字列 
virtual bool Get(int &rnValue, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
整数型設定値取得関数 
virtual HWND & GetHandle() noexcept
ウィンドウハンドル取得関数 
virtual bool ShowChildAll(bool bShow) noexcept
全子ウィンドウ表示関数 
virtual bool Create(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept override
ウィンドウ作成関数 
virtual int GetShowCurrentIndex() const  noexcept
表示状態カレントインデックス取得関数 
virtual bool IsShow() noexcept
表示フラグ取得関数 
virtual bool ResumeElementListConfig(CJsonConfig &rcConfig, wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報復元関数 
virtual CWndElement * GetElementWindow(HWND hWnd) const  noexcept
エレメントウィンドウ取得関数 
virtual bool CreateListWindow(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept
エレメントウィンドウリスト作成関数 
virtual bool SetCurrentIndex(int nIndex) noexcept
カレントインデックス設定関数 
virtual CWndElement * GetShowCurrentElement() const  noexcept
表示状態カレントエレメントウィンドウ取得関数 
virtual bool Append(CArray const &rcInstance) noexcept
追加関数 
virtual void Clear() noexcept
クリア関数 
LIB_WINDOW_API int GetEnableMenuCommandCount(HMENU hMenu) noexcept
メニューコマンド有効数取得関数 
virtual bool ResumeConfig(CJsonConfig &rcConfig) noexcept
ウィンドウ構成情報復元関数 
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言 
virtual CWndPane * GetElementListOrderPane(int *pnOrder) noexcept
エレメントウィンドウリストオーダー番号ペインウィンドウ取得関数 
virtual int GetCurrentIndex() const  noexcept
カレントインデックス取得関数 
virtual bool DeleteChildAll() noexcept
全子ウィンドウ削除関数 
virtual bool GetChildElementListInfo(CWndPane *pcParent, SChildPaneInfo &rsChildInfo) noexcept
子エレメントウィンドウリスト情報取得関数 
virtual bool AppendElementWindow(HWND hParent, CWndElement *pcElement) noexcept
エレメントウィンドウ追加関数 
virtual bool Set(int nValue, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
整数型設定値設定関数 
virtual bool SaveConfig(CJsonConfig &rcConfig) noexcept
ウィンドウ構成情報保存関数 
virtual void Clear() noexcept override
クリア関数 
virtual bool InitConfig(CJsonConfig &rcConfig) noexcept
ウィンドウ構成情報初期化関数 
virtual bool RemoveElementWindow(CWndElement *pcElement) noexcept
エレメントウィンドウ削除関数 
static wchar_t const *const KEY_ELEMENT_COUNT
エレメントウィンドウ数キー文字列 
virtual bool AppendDebugMenu(HMENU hMenu) noexcept
デバッグメニュー追加関数 
virtual bool AppendElementListDebugSubMenu(HMENU hMenu, CWndPane *pcParent, wchar_t const *pszElementName, WORD wIdNew) noexcept
エレメントウィンドウリストデバッグサブメニュー追加関数 
static wchar_t const *const SECTION_ELEMENT_INFO
エレメントウィンドウ情報セクション文字列 
virtual bool ShowElementListAll(CWndPane *pcParent, bool bShow) noexcept
全エレメントウィンドウリスト表示関数 
virtual int GetElementListOrderIndex(CWndPane *pcPane, int *pnOrder) noexcept
エレメントウィンドウリストオーダー番号取得関数 
virtual CWndElement * GetCurrentElement() const  noexcept
カレントエレメントウィンドウ取得関数 
LIB_WINDOW_API bool SetMenuCommandData(HMENU hMenu, UINT uId, ULONG_PTR uData) noexcept
メニューコマンドデータ設定関数 
virtual bool DeleteElementListAll(CWndPane *pcParent) noexcept
全エレメントウィンドウリスト削除関数 
virtual CWndElement * AppendNewElementWindow(HWND hParent, CWndElement *(*pfnCreateElement)()) noexcept
新規エレメントウィンドウ追加関数 
virtual bool GetChildPaneInfo(SChildPaneInfo &rsChildInfo) noexcept
子ペインウィンドウ情報取得関数 
virtual CWndPane * GetOrderPane(int *pnOrder) noexcept
オーダー番号ペインウィンドウ取得関数 
virtual bool SaveElementListConfig(CJsonConfig &rcConfig, wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報保存関数 
CWndList() noexcept
コンストラクタ 
JSON構成情報自動セクションブロッククラスヘッダファイル 
virtual bool InitElementListConfig(CJsonConfig &rcConfig, CWndElement *(*pfnCreateElement)(), wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報初期化関数 
virtual int GetOrderIndex(CWndPane *pcPane=nullptr, int *pnOrder=nullptr) noexcept
ペインウィンドウオーダー番号取得関数