C++ (无 MFC ) 禁用/变灰菜单项
C++ ( Without MFC ) Disabling/Graying a menu item
我的程序在尝试灰显(并禁用)子菜单项时遇到了问题。
我正在寻找的是禁用"运行"项,除非所需的.ini条目不为空。
我的代码
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HMENU hmenu = GetMenu(hWnd);
// Reading in ini
if (0 == strcmp(webLocation, "")){
EnableMenuItem(hmenu,ID_WEBSERVICES_RUN,MF_DISABLED | MF_GRAYED);
WritePrivateProfileString(_T("WEBSERVICES"), _T("Location"), _T("Tool Not Found"), WpathStr);
}
我不确定我是否正确获得了 HMENU,以及为什么这段代码无法达到预期的效果。
任何这方面的帮助将不胜感激。
你不能只把它放在顶层的WndProc中。WndProc 进程事件,无论是否已构造窗口。由于许多不同的原因,它会被调用很多次。
您的 WndProc 几乎肯定会看起来像是message
上的一个大开关。你想要的WM_INITDIALOG
:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
// jump to a new function that reads the .ini
// and disables the control etc.
return OnInitDialog(hWnd, wParam, lParam);
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
相关文章:
- 难以从 CImageList 设置菜单项位图
- 连接资源文件中的字符串,并将其传递给菜单项字符串 (winapi) c++
- 获取 c++ mfc vs2015 中弹出资源菜单项的 id
- 无法在 cocos2dx 中显示菜单菜单项图像
- 带有回调函数的cocos2d-x菜单项错误
- 如何安全地将包含的对象(菜单项)与需要容器(菜单)的API同步
- QT在菜单项上显示模态对话框(.UI)单击
- 将菜单项添加到Windows Explorer右键单击Java中的上下文菜单
- 如何在Qt中再次将菜单项变灰
- 如何在 c++ win32 API 中向菜单项添加图标
- gtkmm3中的菜单项始终处于禁用状态
- 在cocos2dx中创建菜单项标签时断言失败
- 单击上下文菜单项时运行程序
- MFC 菜单项未打开对话框
- 正在获取所选子菜单项的值
- 为什么我的菜单项不可点击?
- 如何获取插入菜单项时要使用的下一个命令 ID
- 在C++中检索Windows中的菜单项列表
- 如何检查菜单中的哪个项目被选中?如何通过选择菜单项发送int/wxstring
- 如何使Qt中的菜单项变灰