EnableMenuItem API的使用 - C++ Builder / Windows SDK/API
VC平台下新建的win app工程,想测试下菜单变灰,但似乎没效果?
WndProc:
case IDM_INIT:{ Init(hWnd); break;}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);}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);}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); }