13 #pragma managed( push, off ) 26 bool GetMenuCommandItem( HMENU hMenu, UINT uId, HMENU* phMenu, MENUITEMINFOW* psItem, UINT uMask ) noexcept {
31 if (
nullptr == hMenu ) {
36 else for (
int nIndex = 0, nCount = ::GetMenuItemCount( hMenu ); nCount > nIndex; ++nIndex ) {
38 MENUITEMINFOW sItem = {
sizeof( MENUITEMINFOW ) };
39 sItem.fMask = ( MIIM_ID | MIIM_SUBMENU | uMask );
40 if ( 0 != ::GetMenuItemInfoW( hMenu, nIndex,
true, &sItem ) ) {
42 if (
nullptr != sItem.hSubMenu ) {
51 else if ( uId == sItem.wID ) {
53 if (
nullptr != phMenu ) {
59 if (
nullptr != psItem ) {
83 if (
nullptr == hMenu ) {
88 else if (
nullptr == psItem ) {
93 else for (
int nIndex = 0, nCount = ::GetMenuItemCount( hMenu ); nCount > nIndex; ++nIndex ) {
95 MENUITEMINFOW sItem = {
sizeof( MENUITEMINFOW ) };
96 sItem.fMask = ( MIIM_ID | MIIM_SUBMENU );
97 if ( 0 != ::GetMenuItemInfoW( hMenu, nIndex,
true, &sItem ) ) {
99 if (
nullptr != sItem.hSubMenu ) {
108 else if ( uId == sItem.wID ) {
110 if ( 0 != ::SetMenuItemInfoW( hMenu, nIndex,
true, psItem ) ) {
128 HMENU result =
nullptr;
158 ruData = sItem.dwItemData;
175 MENUITEMINFOW sItem = {
sizeof( MENUITEMINFOW ) };
176 sItem.fMask = MIIM_DATA;
177 sItem.dwItemData = uData;
201 if (
nullptr == hMenu ) {
207 UINT uState = ::GetMenuState( hMenu, uId, MF_BYCOMMAND );
210 result = ( MF_ENABLED == ( uState & ( MF_GRAYED | MF_DISABLED ) ) );
225 if (
nullptr == hMenu ) {
230 else if ( 0 == ::EnableMenuItem( hMenu, uId, ( MF_BYCOMMAND | ( bEnable? MFS_ENABLED: MFS_DISABLED ) ) ) ) {
251 if (
nullptr == hMenu ) {
257 UINT uState = ::GetMenuState( hMenu, uId, MF_BYCOMMAND );
260 result = ( MF_CHECKED == ( uState & MF_CHECKED ) );
275 if (
nullptr == hMenu ) {
280 else if ( 0 == ::CheckMenuItem( hMenu, uId, ( MF_BYCOMMAND | ( bCheck? MFS_CHECKED: MFS_UNCHECKED ) ) ) ) {
300 for (
int nIndex = 0, nCount = ::GetMenuItemCount( hMenu ); nCount > nIndex; ++nIndex ) {
302 MENUITEMINFOW sItem = {
sizeof( MENUITEMINFOW ) };
303 sItem.fMask = ( MIIM_STATE | MIIM_ID | MIIM_SUBMENU );
304 if ( 0 != ::GetMenuItemInfoW( hMenu, nIndex,
true, &sItem ) ) {
306 if (
nullptr != sItem.hSubMenu ) {
311 else if ( MF_ENABLED == ( ( MF_GRAYED | MF_DISABLED ) & sItem.fState ) ) {
327 HWND result =
nullptr;
330 HWND hParent = ::GetParent( hWnd );
331 if (
nullptr == hParent ) {
333 hParent = ::GetWindow( hWnd, GW_OWNER );
334 if (
nullptr == hParent ) {
355 if ( ( hChild == hWnd ) || ( 0 != ::IsChild( hWnd, hChild ) ) ) {
366 #pragma managed( pop ) LIB_WINDOW_API bool GetMenuCommandData(HMENU hMenu, UINT uId, ULONG_PTR &ruData) noexcept
メニューコマンドデータ取得関数
LIB_WINDOW_API bool SetMenuCommandItem(HMENU hMenu, UINT uId, MENUITEMINFOW const *psItem) noexcept
メニューコマンド項目情報設定関数
LIB_WINDOW_API bool CheckMenuCommand(HMENU hMenu, UINT uId, bool bCheck) noexcept
メニューコマンドチェック状態設定関数
LIB_WINDOW_API int GetEnableMenuCommandCount(HMENU hMenu) noexcept
メニューコマンド有効数取得関数
LIB_WINDOW_API bool IsEnableMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド有効状態取得関数
LIB_WINDOW_API bool GetMenuCommandItem(HMENU hMenu, UINT uId, HMENU *phMenu=nullptr, MENUITEMINFOW *psItem=nullptr, UINT uMask=0) noexcept
メニューコマンド項目情報取得関数
LIB_WINDOW_API HMENU FindMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンド検索関数
LIB_WINDOW_API HWND GetParentOrOwner(HWND hWnd) noexcept
親またはオーナーウィンドウ取得関数
LIB_WINDOW_API bool EnableMenuCommand(HMENU hMenu, UINT uId, bool bEnable) noexcept
メニューコマンド有効状態設定関数
LIB_WINDOW_API bool SetMenuCommandData(HMENU hMenu, UINT uId, ULONG_PTR uData) noexcept
メニューコマンドデータ設定関数
LIB_WINDOW_API bool IsCheckMenuCommand(HMENU hMenu, UINT uId) noexcept
メニューコマンドチェック状態取得関数
LIB_WINDOW_API bool IsOwnOrChild(HWND hWnd, HWND hChild) noexcept
自分または子ウィンドウ判定関数