c++ - 暂时使 MFC 功能区中的控件处于非事件状态或禁用状态

标签 c++ user-interface mfc ribbon

我有一个用于 MFC 应用程序的功能区 UI。在某些过程中,我想禁用功能区上的某些控件,以便不再处理用户为这些控件生成的事件,直到再次启用该控件。有谁知道这可以做到吗?我查看了功能区控件的 API,但没有看到 SetEnable 方法或类似方法。

CMFCRibbonComboBox* pMyComboBox = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, m_wndRibbonBar.FindByID(ID_THIS));
// pMyComboBox->SetEnable(FALSE); // I am looking for something similar if it exists

最佳答案

MFC 通常通过 ON_UPDATE_COMMAND_UI 消息处理程序处理 UI 元素(例如工具栏按钮、控件等)的更新。

ON_UPDATE_COMMAND_UI(id, memberFxn )

基本上,您为要启用/禁用的控件编写一个处理程序等。当它被调用时,您将被传递一个指向 CCmdUI 对象的指针,该对象将允许您更改控件的状态。看看here了解更多信息。

关于c++ - 暂时使 MFC 功能区中的控件处于非事件状态或禁用状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551349/

相关文章:

c++ - 如何在OPENCV C++中将元素存储到 vector 的 vector

python - 来自 Process 的简单 wxPython post 事件

python - python PyQt4 中 sys.argv 的用途是什么

c++ - Boost数据驱动测试输出: "Assertion occurred in a following context"

c++ - 通过 clang-format 实现格式化的好方法是什么?

java - 在java的内存游戏中保持2张图片打开一段时间

c++ - 如果没有单击按钮,MFC 鼠标运动 OnMouseMove 事件 nFlags 值?

c++ - 在 MFC DLL 中导出返回 vector 的函数

c++ - 在 MFC 的 CListCtrl 中禁用多个项目的按钮

c++ - 为什么绘制的模型不在屏幕中央