首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

EnableMenuItem API的使用解决方法

2012-02-14 
EnableMenuItem API的使用 - C++ Builder / Windows SDK/APIVC平台下新建的win app工程,想测试下菜单变灰,

EnableMenuItem API的使用 - C++ Builder / Windows SDK/API
VC平台下新建的win app工程,想测试下菜单变灰,但似乎没效果?

WndProc:

C/C++ code
case IDM_INIT:{    Init(hWnd);    break;}


case IDM_INIT:
{
Init(hWnd);
break;
}

Init:
C/C++ code
void Init(HWND hWnd){    HMENU hMenu = LoadMenu(NULL, MAKEINTRESOURCE(IDC_MENU));    if (NULL == hMenu)    {        MessageBox(hWnd, "Ok", "Menu null", MB_OK);        return ;    }    HMENU hSubMenu = GetSubMenu(hMenu, 1);    if (NULL == hSubMenu)    {        MessageBox(hWnd, "Ok", "SubMenu null", MB_OK);        return ;    }    if (EnableMenuItem(hSubMenu, 0, MF_BYPOSITION | MF_GRAYED))    {        MessageBox(hWnd, "Ok", "Init finished", MB_OK);    }    DestroyMenu(hMenu);}


C/C++ code
void Init(HWND hWnd){    HMENU hMenu = LoadMenu(NULL, MAKEINTRESOURCE(IDC_MENU));    if (NULL == hMenu)    {        MessageBox(hWnd, "Ok", "Menu null", MB_OK);        return ;    }    if (EnableMenuItem(hMenu, IDM_START, MF_BYPOSITION | MF_ENABLED))    {        MessageBox(hWnd, "Ok", "Init finished", MB_OK);    }    DestroyMenu(hMenu);}



[解决办法]
C/C++ code
void Init(HINSTANCE hInstance, HWND hWnd){    // HMENU hMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX));        HMENU hMenu = GetMenu(hWnd);    if (NULL == hMenu)    {        MessageBox(hWnd, L"Ok", L"Menu null", MB_OK);        return ;    }    if (EnableMenuItem(hMenu, IDM_ABOUT, MF_DISABLED))    // 设置 关于 菜单为不能    {        MessageBox(hWnd, L"Ok", L"Init finished", MB_OK);    }    DestroyMenu(hMenu); } 

热点排行