Solution46
LibWindow 名前空間

ウィンドウライブラリ名前空間 [詳解]

クラス

class  CLibWindow
 ウィンドウ子ライブラリクラス [詳解]
 
class  CWndBase
 基本ウィンドウクラス [詳解]
 
class  CWndContainer
 コンテナウィンドウクラス [詳解]
 
class  CWndDocking
 ドッキングウィンドウクラス [詳解]
 
class  CWndDockingPartition
 ドッキングパーティションウィンドウクラス [詳解]
 
class  CWndDocument
 ドキュメントウィンドウクラス [詳解]
 
class  CWndDocumentTab
 ドキュメントタブウィンドウクラス [詳解]
 
class  CWndFloating
 フローティングウィンドウクラス [詳解]
 
class  CWndList
 ウィンドウリストクラス [詳解]
 
class  CWndMain
 メインウィンドウクラス [詳解]
 
class  CWndOverlap
 オーバーラップウィンドウクラス [詳解]
 
class  CWndPane
 ペインウィンドウクラス [詳解]
 
class  CWndParamAuto
 ウィンドウメッセージ引数自動保存クラス [詳解]
 
class  CWndPartition
 パーティションウィンドウクラス [詳解]
 
class  CWndTitleBar
 タイトルバークラス [詳解]
 
class  CWndToolBar
 ツールバークラス [詳解]
 
class  CWndToolDocument
 ツールドキュメントウィンドウクラス [詳解]
 
struct  SChildPaneInfo
 子ペインウィンドウ情報構造体 [詳解]
 

型定義

using CWndElement = CWndPane
 エレメントウィンドウクラス型 [詳解]
 

列挙型

enum  EPartitionPos {
  EPartitionPos::Invalid, EPartitionPos::Left, EPartitionPos::Top, EPartitionPos::Right,
  EPartitionPos::Bottom, EPartitionPos::Size
}
 パーティション配置位置種別列挙体 [詳解]
 

関数

LIB_WINDOW_API bool GetMenuCommandItem (HMENU hMenu, UINT uId, HMENU *phMenu=nullptr, MENUITEMINFOW *psItem=nullptr, UINT uMask=0) noexcept
 メニューコマンド項目情報取得関数 [詳解]
 
LIB_WINDOW_API bool SetMenuCommandItem (HMENU hMenu, UINT uId, MENUITEMINFOW const *psItem) noexcept
 メニューコマンド項目情報設定関数 [詳解]
 
LIB_WINDOW_API HMENU FindMenuCommand (HMENU hMenu, UINT uId) noexcept
 メニューコマンド検索関数 [詳解]
 
LIB_WINDOW_API bool GetMenuCommandData (HMENU hMenu, UINT uId, ULONG_PTR &ruData) noexcept
 メニューコマンドデータ取得関数 [詳解]
 
LIB_WINDOW_API bool SetMenuCommandData (HMENU hMenu, UINT uId, ULONG_PTR uData) noexcept
 メニューコマンドデータ設定関数 [詳解]
 
LIB_WINDOW_API bool IsEnableMenuCommand (HMENU hMenu, UINT uId) noexcept
 メニューコマンド有効状態取得関数 [詳解]
 
LIB_WINDOW_API bool EnableMenuCommand (HMENU hMenu, UINT uId, bool bEnable) noexcept
 メニューコマンド有効状態設定関数 [詳解]
 
LIB_WINDOW_API bool IsCheckMenuCommand (HMENU hMenu, UINT uId) noexcept
 メニューコマンドチェック状態取得関数 [詳解]
 
LIB_WINDOW_API bool CheckMenuCommand (HMENU hMenu, UINT uId, bool bCheck) noexcept
 メニューコマンドチェック状態設定関数 [詳解]
 
LIB_WINDOW_API int GetEnableMenuCommandCount (HMENU hMenu) noexcept
 メニューコマンド有効数取得関数 [詳解]
 
LIB_WINDOW_API HWND GetParentOrOwner (HWND hWnd) noexcept
 親またはオーナーウィンドウ取得関数 [詳解]
 
LIB_WINDOW_API bool IsOwnOrChild (HWND hWnd, HWND hChild) noexcept
 自分または子ウィンドウ判定関数 [詳解]
 

変数

constexpr WORD const ID_FILE_NEW = 0x0001
 ファイル::新規作成 [詳解]
 
constexpr WORD const ID_FILE_OPEN = 0x0002
 ファイル::開く [詳解]
 
constexpr WORD const ID_FILE_CLOSE = 0x0003
 ファイル::閉じる [詳解]
 
constexpr WORD const ID_FILE_SAVE = 0x0004
 ファイル::保存 [詳解]
 
constexpr WORD const ID_FILE_SAVE_AS = 0x0005
 ファイル::名前を付けて保存 [詳解]
 
constexpr WORD const ID_FILE_SAVE_ALL = 0x0006
 ファイル::すべて保存 [詳解]
 
constexpr WORD const ID_FILE_PRINT = 0x0007
 ファイル::印刷 [詳解]
 
constexpr WORD const ID_FILE_RECENT_FILE = 0x0008
 ファイル::最近使ったファイル [詳解]
 
constexpr WORD const ID_FILE_EXIT = 0x0009
 ファイル::終了 [詳解]
 
constexpr WORD const ID_EDIT_UNDO = 0x000A
 編集::元に戻す [詳解]
 
constexpr WORD const ID_EDIT_REDO = 0x000B
 編集::やり直し [詳解]
 
constexpr WORD const ID_EDIT_CUT = 0x000C
 編集::切り取り [詳解]
 
constexpr WORD const ID_EDIT_COPY = 0x000D
 編集::コピー [詳解]
 
constexpr WORD const ID_EDIT_PASTE = 0x000E
 編集::貼り付け [詳解]
 
constexpr WORD const ID_EDIT_DELETE = 0x000F
 編集::削除 [詳解]
 
constexpr WORD const ID_EDIT_SELECT_ALL = 0x0010
 編集::すべて選択 [詳解]
 
constexpr WORD const ID_VIEW_TOOLBAR = 0x0011
 表示::ツールバー [詳解]
 
constexpr WORD const ID_VIEW_STATUSBAR = 0x0012
 表示::ステータスバー [詳解]
 
constexpr WORD const ID_TOOL_CUSTOMIZE = 0x0013
 ツール::カスタマイズ [詳解]
 
constexpr WORD const ID_TOOL_OPTION = 0x0014
 ツール::オプション [詳解]
 
constexpr WORD const ID_WINDOW_NEW = 0x0015
 ウィンドウ::新規ウィンドウ [詳解]
 
constexpr WORD const ID_WINDOW_FLOATING = 0x0016
 ウィンドウ::フローティング [詳解]
 
constexpr WORD const ID_WINDOW_DOCKING = 0x0017
 ウィンドウ::ドッキング [詳解]
 
constexpr WORD const ID_WINDOW_LIST = 0x0018
 ウィンドウ::ウィンドウ(リスト) [詳解]
 
constexpr WORD const ID_WINDOW_POS_LEFT = 0x0019
 ウィンドウ::表示位置::左側 [詳解]
 
constexpr WORD const ID_WINDOW_POS_RIGHT = 0x001A
 ウィンドウ::表示位置::右側 [詳解]
 
constexpr WORD const ID_WINDOW_POS_TOP = 0x001B
 ウィンドウ::表示位置::上側 [詳解]
 
constexpr WORD const ID_WINDOW_POS_BOTTOM = 0x001C
 ウィンドウ::表示位置::下側 [詳解]
 
constexpr WORD const ID_WINDOW_POS_FULL = 0x001D
 ウィンドウ::表示位置::フルサイズ [詳解]
 
constexpr WORD const ID_WINDOW_POS_MAXIMIZE = 0x001E
 ウィンドウ::表示位置::最大化 [詳解]
 
constexpr WORD const ID_HELP_ABOUT = 0x001F
 ヘルプ::バージョン情報 [詳解]
 
constexpr WORD const ID_DEBUG_SHOW_ALL = 0x1001
 デバッグ::すべて表示 [詳解]
 
constexpr WORD const ID_DEBUG_HIDE_ALL = 0x1002
 デバッグ::すべて隠す [詳解]
 
constexpr WORD const ID_DEBUG_DELETE_ALL = 0x1003
 デバッグ::すべて削除 [詳解]
 
constexpr WORD const ID_DEBUG_SHOW_DENUG_INFO = 0x1004
 デバッグ::デバッグ情報表示 [詳解]
 
constexpr WORD const ID_DEBUG_DRAW_DOUBLE_BUFFER = 0x1005
 デバッグ::ダブルバッファリング描画 [詳解]
 
constexpr WORD const ID_DEBUG_REALTIME_RESIZE_PARTITION = 0x1006
 デバッグ::リアルタイムパーティションサイズ変更 [詳解]
 
constexpr WORD const ID_DEBUG_SHOW = 0x1101
 デバッグ::表示 [詳解]
 
constexpr WORD const ID_DEBUG_HIDE = 0x1102
 デバッグ::非表示 [詳解]
 
constexpr WORD const ID_DEBUG_DELETE = 0x1103
 デバッグ::削除 [詳解]
 
constexpr WORD const ID_DEBUG_NEW_ELEMENT = 0x1104
 デバッグ::新規エレメントウィンドウ [詳解]
 
constexpr WORD const ID_DEBUG_NEW_OVERLAP = 0x1105
 デバッグ::新規オーバーラップウィンドウ [詳解]
 
constexpr WORD const ID_DEBUG_NEW_FLOATING = 0x1106
 デバッグ::新規フローティングウィンドウ [詳解]
 
constexpr WORD const ID_DEBUG_POS_LEFT = 0x1111
 デバッグ::パーティション配置位置左側 [詳解]
 
constexpr WORD const ID_DEBUG_POS_TOP = 0x1112
 デバッグ::パーティション配置位置上側 [詳解]
 
constexpr WORD const ID_DEBUG_POS_RIGHT = 0x1113
 デバッグ::パーティション配置位置右側 [詳解]
 
constexpr WORD const ID_DEBUG_POS_BOTTOM = 0x1114
 デバッグ::パーティション配置位置下側 [詳解]
 
constexpr WORD const ID_DEBUG_POS_ORDER = 0x1200
 デバッグ::パーティション配置順序コマンド先頭 [詳解]
 
constexpr WORD const ID_DEBUG_POS_ORDER_END = 0x12FF
 デバッグ::パーティション配置順序コマンド最後尾 [詳解]
 
constexpr WORD const ID_DEBUG_PARENT_MENU = 0x1300
 デバッグ::親ウィンドウメニューコマンド先頭 [詳解]
 
constexpr WORD const ID_DEBUG_PARENT_MENU_END = 0x13FF
 デバッグ::親ウィンドウメニューコマンド最後尾 [詳解]
 
constexpr UINT const WM_NOTIFY_CHILD_SET_FOCUS = ( WM_APP + 1 )
 子ウィンドウフォーカス取得通知 [詳解]
 
constexpr UINT const WM_NOTIFY_CHILD_KILL_FOCUS = ( WM_APP + 2 )
 子ウィンドウフォーカス喪失通知 [詳解]
 
constexpr UINT const WM_NOTIFY_CHILD_LBUTTONDOWN = ( WM_APP + 3 )
 子ウィンドウ左ボタンダウン通知 [詳解]
 
constexpr UINT const WM_NOTIFY_CHILD_LBUTTONUP = ( WM_APP + 4 )
 子ウィンドウ左ボタンアップ通知 [詳解]
 
constexpr UINT const WM_NOTIFY_CHILD_COMMAND = ( WM_APP + 5 )
 子ウィンドウコマンド実行通知 [詳解]
 
template class LIB_WINDOW_API CArray< CWndElement * >
 
template class LIB_WINDOW_API CArray< TBBUTTON >
 

詳解

ウィンドウライブラリ名前空間

ウィンドウライブラリ名前空間です。

注意
なし

型定義詳解

エレメントウィンドウクラス型

CWndList.h26 行目に定義があります。

列挙型詳解

パーティション配置位置種別列挙体

パーティション配置位置種別列挙体です。

注意
なし
列挙値
Invalid 

無効値

Left 

左側

Top 

上側

Right 

右側

Bottom 

下側

Size 

列挙体サイズ

CWndPane.h58 行目に定義があります。

58  {
59  Invalid, ///< 無効値
60  Left, ///< 左側
61  Top, ///< 上側
62  Right, ///< 右側
63  Bottom, ///< 下側
64  Size ///< 列挙体サイズ
65  };

関数詳解

bool LibWindow::GetMenuCommandItem ( HMENU  hMenu,
UINT  uId,
HMENU *  phMenu = nullptr,
MENUITEMINFOW *  psItem = nullptr,
UINT  uMask = 0 
)
noexcept

メニューコマンド項目情報取得関数

メニューコマンド項目情報取得関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
[in]phMenuメニューハンドルポインタ
[in]psItemメニュー項目情報構造体ポインタ
[in]uMaskメニュー項目情報マスク
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibWindowUtility.cpp26 行目に定義があります。

参照元 FindMenuCommand(), GetMenuCommandData().

26  {
27  // 処理ブロック
28  bool result = false;
29  do {
30  // メニューハンドルを調べる
31  if ( nullptr == hMenu ) {
32  // 失敗!
33  break;
34  }
35  // 巡回する
36  else for ( int nIndex = 0, nCount = ::GetMenuItemCount( hMenu ); nCount > nIndex; ++nIndex ) {
37  // メニュー項目情報を取得する
38  MENUITEMINFOW sItem = { sizeof( MENUITEMINFOW ) };
39  sItem.fMask = ( MIIM_ID | MIIM_SUBMENU | uMask );
40  if ( 0 != ::GetMenuItemInfoW( hMenu, nIndex, true, &sItem ) ) {
41  // サブメニューハンドルを調べる
42  if ( nullptr != sItem.hSubMenu ) {
43  // メニューコマンド項目情報を取得する
44  if ( GetMenuCommandItem( sItem.hSubMenu, uId, phMenu, psItem, uMask ) ) {
45  // 成功!
46  result = true;
47  break;
48  }
49  }
50  // コマンドIDを調べる
51  else if ( uId == sItem.wID ) {
52  // メニューハンドルポインタを調べる
53  if ( nullptr != phMenu ) {
54  // メニューハンドルを取得する
55  *phMenu = hMenu;
56  }
57 
58  // メニュー項目情報構造体ポインタを調べる
59  if ( nullptr != psItem ) {
60  // メニュー項目情報を取得する
61  *psItem = sItem;
62  }
63 
64  // 成功!
65  result = true;
66  break;
67  }
68  }
69  }
70  } while ( false );
71 
72  // 実行結果を返す
73  return result;
74  }
LIB_WINDOW_API bool GetMenuCommandItem(HMENU hMenu, UINT uId, HMENU *phMenu=nullptr, MENUITEMINFOW *psItem=nullptr, UINT uMask=0) noexcept
メニューコマンド項目情報取得関数

被呼び出し関係図:

bool LibWindow::SetMenuCommandItem ( HMENU  hMenu,
UINT  uId,
MENUITEMINFOW const *  psItem 
)
noexcept

メニューコマンド項目情報設定関数

メニューコマンド項目情報設定関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
[in]psItemメニュー項目情報構造体ポインタ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibWindowUtility.cpp78 行目に定義があります。

参照元 SetMenuCommandData().

78  {
79  // 処理ブロック
80  bool result = false;
81  do {
82  // メニューハンドルを調べる
83  if ( nullptr == hMenu ) {
84  // 失敗!
85  break;
86  }
87  // メニュー項目情報構造体ポインタを調べる
88  else if ( nullptr == psItem ) {
89  // 失敗!
90  break;
91  }
92  // 巡回する
93  else for ( int nIndex = 0, nCount = ::GetMenuItemCount( hMenu ); nCount > nIndex; ++nIndex ) {
94  // メニュー項目情報を取得する
95  MENUITEMINFOW sItem = { sizeof( MENUITEMINFOW ) };
96  sItem.fMask = ( MIIM_ID | MIIM_SUBMENU );
97  if ( 0 != ::GetMenuItemInfoW( hMenu, nIndex, true, &sItem ) ) {
98  // サブメニューハンドルを調べる
99  if ( nullptr != sItem.hSubMenu ) {
100  // メニューコマンド項目情報を設定する
101  if ( SetMenuCommandItem( sItem.hSubMenu, uId, psItem ) ) {
102  // 成功!
103  result = true;
104  break;
105  }
106  }
107  // コマンドIDを調べる
108  else if ( uId == sItem.wID ) {
109  // メニュー項目情報を設定する
110  if ( 0 != ::SetMenuItemInfoW( hMenu, nIndex, true, psItem ) ) {
111  // 成功!
112  result = hMenu;
113  }
114  break;
115  }
116  }
117  }
118  } while ( false );
119 
120  // 実行結果を返す
121  return result;
122  }
LIB_WINDOW_API bool SetMenuCommandItem(HMENU hMenu, UINT uId, MENUITEMINFOW const *psItem) noexcept
メニューコマンド項目情報設定関数

被呼び出し関係図:

HMENU LibWindow::FindMenuCommand ( HMENU  hMenu,
UINT  uId 
)
noexcept

メニューコマンド検索関数

メニューコマンド検索関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
戻り値
メニューハンドル
注意
なし

LibWindowUtility.cpp126 行目に定義があります。

参照先 GetMenuCommandItem().

参照元 CheckMenuCommand(), EnableMenuCommand(), IsCheckMenuCommand(), IsEnableMenuCommand().

126  {
127  // 処理ブロック
128  HMENU result = nullptr;
129  do {
130  // メニューコマンド項目情報を取得する
131  if ( !GetMenuCommandItem( hMenu, uId, &hMenu ) ) {
132  // 失敗!
133  break;
134  }
135 
136  // 成功!
137  result = hMenu;
138  } while ( false );
139 
140  // 実行結果を返す
141  return result;
142  }
LIB_WINDOW_API bool GetMenuCommandItem(HMENU hMenu, UINT uId, HMENU *phMenu=nullptr, MENUITEMINFOW *psItem=nullptr, UINT uMask=0) noexcept
メニューコマンド項目情報取得関数

呼び出し関係図:

被呼び出し関係図:

bool LibWindow::GetMenuCommandData ( HMENU  hMenu,
UINT  uId,
ULONG_PTR &  ruData 
)
noexcept

メニューコマンドデータ取得関数

メニューコマンドデータ取得関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
[out]ruDataコマンドデータ参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibWindowUtility.cpp146 行目に定義があります。

参照先 GetMenuCommandItem().

参照元 LibWindow::CWndMain::WmCommand(), LibWindow::CWndPane::WmCommand(), LibWindow::CWndPane::WmContextMenu().

146  {
147  // 処理ブロック
148  bool result = false;
149  do {
150  // メニューコマンド項目情報を取得する
151  MENUITEMINFOW sItem;
152  if ( !GetMenuCommandItem( hMenu, uId, nullptr, &sItem, MIIM_DATA ) ) {
153  // 失敗!
154  break;
155  }
156 
157  // コマンドデータを取得する
158  ruData = sItem.dwItemData;
159 
160  // 成功!
161  result = true;
162  } while ( false );
163 
164  // 実行結果を返す
165  return result;
166  }
LIB_WINDOW_API bool GetMenuCommandItem(HMENU hMenu, UINT uId, HMENU *phMenu=nullptr, MENUITEMINFOW *psItem=nullptr, UINT uMask=0) noexcept
メニューコマンド項目情報取得関数

呼び出し関係図:

被呼び出し関係図:

bool LibWindow::SetMenuCommandData ( HMENU  hMenu,
UINT  uId,
ULONG_PTR  uData 
)
noexcept

メニューコマンドデータ設定関数

メニューコマンドデータ設定関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
[in]uDataコマンドデータ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibWindowUtility.cpp170 行目に定義があります。

参照先 SetMenuCommandItem().

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndList::AppendElementListDebugSubMenu(), LibWindow::CWndPane::AppendShowDeleteMenu(), LibWindow::CWndPane::CreateContextMenu().

170  {
171  // 処理ブロック
172  bool result = false;
173  do {
174  // メニュー項目情報を作成する
175  MENUITEMINFOW sItem = { sizeof( MENUITEMINFOW ) };
176  sItem.fMask = MIIM_DATA;
177  sItem.dwItemData = uData;
178 
179  // メニューコマンド項目情報を設定する
180  if ( !SetMenuCommandItem( hMenu, uId, &sItem ) ) {
181  // 失敗!
182  break;
183  }
184 
185  // 成功!
186  result = true;
187  } while ( false );
188 
189  // 実行結果を返す
190  return result;
191  }
LIB_WINDOW_API bool SetMenuCommandItem(HMENU hMenu, UINT uId, MENUITEMINFOW const *psItem) noexcept
メニューコマンド項目情報設定関数

呼び出し関係図:

被呼び出し関係図:

bool LibWindow::IsEnableMenuCommand ( HMENU  hMenu,
UINT  uId 
)
noexcept

メニューコマンド有効状態取得関数

メニューコマンド有効状態取得関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
戻り値
実行結果
  • true 有効
  • false 無効
注意
なし

LibWindowUtility.cpp195 行目に定義があります。

参照先 FindMenuCommand().

参照元 LibWindow::CWndMain::UpdateToolBar().

195  {
196  // 処理ブロック
197  bool result = false;
198  do {
199  // メニューコマンドを検索する
200  hMenu = FindMenuCommand( hMenu, uId );
201  if ( nullptr == hMenu ) {
202  // 失敗!
203  break;
204  }
205 
206  // メニュー項目フラグを取得する
207  UINT uState = ::GetMenuState( hMenu, uId, MF_BYCOMMAND );
208 
209  // メニュー項目有効状態を調べる
210  result = ( MF_ENABLED == ( uState & ( MF_GRAYED | MF_DISABLED ) ) );
211  } while ( false );
212 
213  // 実行結果を返す
214  return result;
215  }
LIB_WINDOW_API HMENU FindMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド検索関数

呼び出し関係図:

被呼び出し関係図:

bool LibWindow::EnableMenuCommand ( HMENU  hMenu,
UINT  uId,
bool  bEnable 
)
noexcept

メニューコマンド有効状態設定関数

メニューコマンド有効状態設定関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
[in]bEnable有効フラグ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibWindowUtility.cpp219 行目に定義があります。

参照先 FindMenuCommand().

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndPane::AppendShowDeleteMenu().

219  {
220  // 処理ブロック
221  bool result = false;
222  do {
223  // メニューコマンドを検索する
224  hMenu = FindMenuCommand( hMenu, uId );
225  if ( nullptr == hMenu ) {
226  // 失敗!
227  break;
228  }
229  // メニュー項目有効状態を設定する
230  else if ( 0 == ::EnableMenuItem( hMenu, uId, ( MF_BYCOMMAND | ( bEnable? MFS_ENABLED: MFS_DISABLED ) ) ) ) {
231  // 失敗!
232  break;
233  }
234 
235  // 成功!
236  result = true;
237  } while ( false );
238 
239  // 実行結果を返す
240  return result;
241  }
LIB_WINDOW_API HMENU FindMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド検索関数

呼び出し関係図:

被呼び出し関係図:

bool LibWindow::IsCheckMenuCommand ( HMENU  hMenu,
UINT  uId 
)
noexcept

メニューコマンドチェック状態取得関数

メニューコマンドチェック状態取得関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
戻り値
実行結果
  • true チェック状態
  • false 非チェック状態
注意
なし

LibWindowUtility.cpp245 行目に定義があります。

参照先 FindMenuCommand().

245  {
246  // 処理ブロック
247  bool result = false;
248  do {
249  // メニューコマンドを検索する
250  hMenu = FindMenuCommand( hMenu, uId );
251  if ( nullptr == hMenu ) {
252  // 失敗!
253  break;
254  }
255 
256  // メニュー項目フラグを取得する
257  UINT uState = ::GetMenuState( hMenu, uId, MF_BYCOMMAND );
258 
259  // メニュー項目チェック状態を調べる
260  result = ( MF_CHECKED == ( uState & MF_CHECKED ) );
261  } while ( false );
262 
263  // 実行結果を返す
264  return result;
265  }
LIB_WINDOW_API HMENU FindMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド検索関数

呼び出し関係図:

bool LibWindow::CheckMenuCommand ( HMENU  hMenu,
UINT  uId,
bool  bCheck 
)
noexcept

メニューコマンドチェック状態設定関数

メニューコマンドチェック状態設定関数です。

引数
[in]hMenuメニューハンドル
[in]uIdコマンドID
[in]bCheckチェックフラグ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibWindowUtility.cpp269 行目に定義があります。

参照先 FindMenuCommand().

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndPane::AppendShowDeleteMenu().

269  {
270  // 処理ブロック
271  bool result = false;
272  do {
273  // メニューコマンドを検索する
274  hMenu = FindMenuCommand( hMenu, uId );
275  if ( nullptr == hMenu ) {
276  // 失敗!
277  break;
278  }
279  // メニュー項目チェック状態を設定する
280  else if ( 0 == ::CheckMenuItem( hMenu, uId, ( MF_BYCOMMAND | ( bCheck? MFS_CHECKED: MFS_UNCHECKED ) ) ) ) {
281  // 失敗!
282  break;
283  }
284 
285  // 成功!
286  result = true;
287  } while ( false );
288 
289  // 実行結果を返す
290  return result;
291  }
LIB_WINDOW_API HMENU FindMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド検索関数

呼び出し関係図:

被呼び出し関係図:

int LibWindow::GetEnableMenuCommandCount ( HMENU  hMenu)
noexcept

メニューコマンド有効数取得関数

メニューコマンド有効数取得関数です。

引数
[in]hMenuメニューハンドル
戻り値
実行結果
  • true 有効
  • false 無効
注意
なし

LibWindowUtility.cpp295 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndPartition::AppendDebugMenu(), LibWindow::CWndList::AppendElementListDebugSubMenu(), LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateContextMenu().

295  {
296  // 処理ブロック
297  int result = 0;
298  do {
299  // 巡回する
300  for ( int nIndex = 0, nCount = ::GetMenuItemCount( hMenu ); nCount > nIndex; ++nIndex ) {
301  // メニュー項目情報を取得する
302  MENUITEMINFOW sItem = { sizeof( MENUITEMINFOW ) };
303  sItem.fMask = ( MIIM_STATE | MIIM_ID | MIIM_SUBMENU );
304  if ( 0 != ::GetMenuItemInfoW( hMenu, nIndex, true, &sItem ) ) {
305  // サブメニューハンドルを調べる
306  if ( nullptr != sItem.hSubMenu ) {
307  // メニューコマンド有効数を加算する
308  result += GetEnableMenuCommandCount( sItem.hSubMenu );
309  }
310  // メニュー項目有効状態を調べる
311  else if ( MF_ENABLED == ( ( MF_GRAYED | MF_DISABLED ) & sItem.fState ) ) {
312  // 有効コマンド数をインクリメントする
313  ++result;
314  }
315  }
316  }
317  } while ( false );
318 
319  // 実行結果を返す
320  return result;
321  }
LIB_WINDOW_API int GetEnableMenuCommandCount(HMENU hMenu) noexcept
メニューコマンド有効数取得関数

被呼び出し関係図:

HWND LibWindow::GetParentOrOwner ( HWND  hWnd)
noexcept

親またはオーナーウィンドウ取得関数

親またはオーナーウィンドウ取得関数です。

引数
[in]hWndウィンドウハンドル
戻り値
ウィンドウハンドル
注意
なし

LibWindowUtility.cpp325 行目に定義があります。

参照元 LibWindow::CWndPane::AppendShowDeleteMenu(), LibWindow::CWndPane::CreateContextMenu(), LibWindow::CWndDockingPartition::ExecMenuCommand(), LibWindow::CWndContainer::ExecMenuCommand(), LibWindow::CWndPane::ExecMenuCommand(), LibWindow::CWndPane::GetParentPane(), LibWindow::CWndBase::GetTopLevelWindow(), LibWindow::CWndPane::WmKillFocus(), LibWindow::CWndPane::WmNotifyChildCommand(), LibWindow::CWndPane::WmNotifyChildKillFocus(), LibWindow::CWndPane::WmNotifyChildSetFocus(), LibWindow::CWndPane::WmSetFocus().

325  {
326  // 処理ブロック
327  HWND result = nullptr;
328  do {
329  // 親ウィンドウを取得する
330  HWND hParent = ::GetParent( hWnd );
331  if ( nullptr == hParent ) {
332  // オーナーウィンドウを取得する
333  hParent = ::GetWindow( hWnd, GW_OWNER );
334  if ( nullptr == hParent ) {
335  // 失敗!
336  break;
337  }
338  }
339 
340  // 成功!
341  result = hParent;
342  } while ( false );
343 
344  // 実行結果を返す
345  return result;
346  }

被呼び出し関係図:

bool LibWindow::IsOwnOrChild ( HWND  hWnd,
HWND  hChild 
)
noexcept

自分または子ウィンドウ判定関数

自分または子ウィンドウ判定関数です。

引数
[in]hWndウィンドウハンドル
[in]hChild子ウィンドウハンドル
戻り値
ウィンドウハンドル
注意
なし

LibWindowUtility.cpp350 行目に定義があります。

参照元 LibWindow::CWndContainer::DeleteChildWindow(), LibWindow::CWndMain::DeleteChildWindow(), LibWindow::CWndBase::Destroy(), LibWindow::CWndDocumentTab::DrawTabControl(), LibWindow::CWndDocumentTab::DrawTitleBar(), LibWindow::CWndPane::ShowChildWindow().

350  {
351  // 処理ブロック
352  bool result = false;
353  do {
354  // 自分自身か、または子ウィンドウか調べる
355  if ( ( hChild == hWnd ) || ( 0 != ::IsChild( hWnd, hChild ) ) ) {
356  // 成功!
357  result = true;
358  }
359  } while ( false );
360 
361  // 実行結果を返す
362  return result;
363  }

被呼び出し関係図:

変数詳解

constexpr WORD const LibWindow::ID_FILE_NEW = 0x0001
constexpr WORD const LibWindow::ID_FILE_OPEN = 0x0002
constexpr WORD const LibWindow::ID_FILE_CLOSE = 0x0003

ファイル::閉じる

CommandIdDef.h29 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel().

constexpr WORD const LibWindow::ID_FILE_SAVE = 0x0004
constexpr WORD const LibWindow::ID_FILE_SAVE_AS = 0x0005

ファイル::名前を付けて保存

CommandIdDef.h31 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel().

constexpr WORD const LibWindow::ID_FILE_SAVE_ALL = 0x0006

ファイル::すべて保存

CommandIdDef.h32 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_FILE_PRINT = 0x0007

ファイル::印刷

CommandIdDef.h33 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_FILE_RECENT_FILE = 0x0008

ファイル::最近使ったファイル

CommandIdDef.h34 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_FILE_EXIT = 0x0009

ファイル::終了

CommandIdDef.h35 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_EDIT_UNDO = 0x000A

編集::元に戻す

CommandIdDef.h36 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_EDIT_REDO = 0x000B

編集::やり直し

CommandIdDef.h37 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_EDIT_CUT = 0x000C

編集::切り取り

CommandIdDef.h38 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_EDIT_COPY = 0x000D

編集::コピー

CommandIdDef.h39 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_EDIT_PASTE = 0x000E

編集::貼り付け

CommandIdDef.h40 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_EDIT_DELETE = 0x000F

編集::削除

CommandIdDef.h41 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_EDIT_SELECT_ALL = 0x0010

編集::すべて選択

CommandIdDef.h42 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_VIEW_TOOLBAR = 0x0011

表示::ツールバー

CommandIdDef.h43 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_VIEW_STATUSBAR = 0x0012

表示::ステータスバー

CommandIdDef.h44 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_TOOL_CUSTOMIZE = 0x0013

ツール::カスタマイズ

CommandIdDef.h45 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_TOOL_OPTION = 0x0014
constexpr WORD const LibWindow::ID_WINDOW_NEW = 0x0015

ウィンドウ::新規ウィンドウ

CommandIdDef.h47 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_WINDOW_FLOATING = 0x0016

ウィンドウ::フローティング

CommandIdDef.h48 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::ExecMenuCommand(), LibWindow::CWndDocking::WmLButtonDblClk().

constexpr WORD const LibWindow::ID_WINDOW_DOCKING = 0x0017

ウィンドウ::ドッキング

CommandIdDef.h49 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_WINDOW_LIST = 0x0018

ウィンドウ::ウィンドウ(リスト)

CommandIdDef.h50 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu().

constexpr WORD const LibWindow::ID_WINDOW_POS_LEFT = 0x0019

ウィンドウ::表示位置::左側

CommandIdDef.h51 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_WINDOW_POS_RIGHT = 0x001A

ウィンドウ::表示位置::右側

CommandIdDef.h52 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_WINDOW_POS_TOP = 0x001B

ウィンドウ::表示位置::上側

CommandIdDef.h53 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_WINDOW_POS_BOTTOM = 0x001C

ウィンドウ::表示位置::下側

CommandIdDef.h54 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_WINDOW_POS_FULL = 0x001D

ウィンドウ::表示位置::フルサイズ

CommandIdDef.h55 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_WINDOW_POS_MAXIMIZE = 0x001E

ウィンドウ::表示位置::最大化

CommandIdDef.h56 行目に定義があります。

参照元 LibWindow::CWndMain::AppendMainMenu(), LibWindow::CWndMain::CreateAccel(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_HELP_ABOUT = 0x001F
constexpr WORD const LibWindow::ID_DEBUG_SHOW_ALL = 0x1001

デバッグ::すべて表示

CommandIdDef.h61 行目に定義があります。

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_HIDE_ALL = 0x1002

デバッグ::すべて隠す

CommandIdDef.h62 行目に定義があります。

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_DELETE_ALL = 0x1003

デバッグ::すべて削除

CommandIdDef.h63 行目に定義があります。

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_SHOW_DENUG_INFO = 0x1004

デバッグ::デバッグ情報表示

CommandIdDef.h64 行目に定義があります。

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_DRAW_DOUBLE_BUFFER = 0x1005

デバッグ::ダブルバッファリング描画

CommandIdDef.h65 行目に定義があります。

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_REALTIME_RESIZE_PARTITION = 0x1006

デバッグ::リアルタイムパーティションサイズ変更

CommandIdDef.h66 行目に定義があります。

参照元 LibWindow::CWndMain::AppendCommonDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_SHOW = 0x1101

デバッグ::表示

CommandIdDef.h70 行目に定義があります。

参照元 LibWindow::CWndPane::AppendShowDeleteMenu(), LibWindow::CWndPane::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_HIDE = 0x1102

デバッグ::非表示

CommandIdDef.h71 行目に定義があります。

参照元 LibWindow::CWndPane::AppendShowDeleteMenu(), LibWindow::CWndPane::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_DELETE = 0x1103

デバッグ::削除

CommandIdDef.h72 行目に定義があります。

参照元 LibWindow::CWndPane::AppendShowDeleteMenu(), LibWindow::CWndPane::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_NEW_ELEMENT = 0x1104

デバッグ::新規エレメントウィンドウ

CommandIdDef.h73 行目に定義があります。

参照元 LibWindow::CWndContainer::AppendDebugMenu(), LibWindow::CWndContainer::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_NEW_OVERLAP = 0x1105

デバッグ::新規オーバーラップウィンドウ

CommandIdDef.h74 行目に定義があります。

参照元 LibWindow::CWndMain::AppendDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_NEW_FLOATING = 0x1106

デバッグ::新規フローティングウィンドウ

CommandIdDef.h75 行目に定義があります。

参照元 LibWindow::CWndMain::AppendDebugMenu(), LibWindow::CWndMain::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_POS_LEFT = 0x1111

デバッグ::パーティション配置位置左側

CommandIdDef.h76 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndDockingPartition::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_POS_TOP = 0x1112

デバッグ::パーティション配置位置上側

CommandIdDef.h77 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndDockingPartition::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_POS_RIGHT = 0x1113

デバッグ::パーティション配置位置右側

CommandIdDef.h78 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndDockingPartition::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_POS_BOTTOM = 0x1114

デバッグ::パーティション配置位置下側

CommandIdDef.h79 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndDockingPartition::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_POS_ORDER = 0x1200

デバッグ::パーティション配置順序コマンド先頭

CommandIdDef.h80 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::AppendDebugMenu(), LibWindow::CWndDockingPartition::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_POS_ORDER_END = 0x12FF

デバッグ::パーティション配置順序コマンド最後尾

CommandIdDef.h81 行目に定義があります。

参照元 LibWindow::CWndDockingPartition::ExecMenuCommand().

constexpr WORD const LibWindow::ID_DEBUG_PARENT_MENU = 0x1300

デバッグ::親ウィンドウメニューコマンド先頭

CommandIdDef.h82 行目に定義があります。

参照元 LibWindow::CWndPane::CreateContextMenu(), LibWindow::CWndPane::WmContextMenu().

constexpr WORD const LibWindow::ID_DEBUG_PARENT_MENU_END = 0x13FF

デバッグ::親ウィンドウメニューコマンド最後尾

CommandIdDef.h83 行目に定義があります。

参照元 LibWindow::CWndPane::WmContextMenu().

constexpr UINT const LibWindow::WM_NOTIFY_CHILD_SET_FOCUS = ( WM_APP + 1 )

子ウィンドウフォーカス取得通知

CWndPane.h28 行目に定義があります。

参照元 LibWindow::CWndPane::WmApp(), LibWindow::CWndPane::WmNotifyChildSetFocus(), LibWindow::CWndPane::WmSetFocus().

constexpr UINT const LibWindow::WM_NOTIFY_CHILD_KILL_FOCUS = ( WM_APP + 2 )

子ウィンドウフォーカス喪失通知

CWndPane.h29 行目に定義があります。

参照元 LibWindow::CWndPane::WmApp(), LibWindow::CWndPane::WmKillFocus(), LibWindow::CWndPane::WmNotifyChildKillFocus().

constexpr UINT const LibWindow::WM_NOTIFY_CHILD_LBUTTONDOWN = ( WM_APP + 3 )

子ウィンドウ左ボタンダウン通知

CWndPane.h30 行目に定義があります。

参照元 LibWindow::CWndPane::WmApp(), LibWindow::CWndToolBar::WmLButtonDown().

constexpr UINT const LibWindow::WM_NOTIFY_CHILD_LBUTTONUP = ( WM_APP + 4 )

子ウィンドウ左ボタンアップ通知

CWndPane.h31 行目に定義があります。

参照元 LibWindow::CWndPane::WmApp(), LibWindow::CWndToolBar::WmLButtonUp().

constexpr UINT const LibWindow::WM_NOTIFY_CHILD_COMMAND = ( WM_APP + 5 )

CWndList.cpp854 行目に定義があります。

template class LIB_WINDOW_API LibWindow::CArray< TBBUTTON >

CWndMain.cpp2545 行目に定義があります。