问题标签 [cmfcmenubutton]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为什么没有为 CMFCMenuButton 绘制下拉箭头?
我在尝试将 CMFCMenuButton 添加到现有 MFC 应用程序时遇到了这个问题。它工作正常,甚至调整了按钮的大小以适应下拉箭头。但它没有画出下拉箭头,当我将鼠标悬停在按钮上时,我看到了以下调试输出:
事实证明,即使使用 Visual Studio 2010 RTM,当您创建全新的基于 MFC 对话框的应用程序时,CMFCMenuButton 也不会绘制箭头并显示相同的错误。最初我认为我没有正确安装或注册某些东西。但是,MFC Feature Pack 中的 NewControls 示例完美地显示了下拉箭头。
什么不见了?
c++ - CMFCMenuButton 带有以编程方式构建的菜单?
我是CMFCMenuButton
控件的新手;这是我的代码OnInitDialog()
:
当我运行该应用程序时,CMFCMenuButton
单击它时会显示一个下拉菜单......但这两个项目是空的,没有文本也没有图像。
我添加了最后一行来测试我构建的菜单;并且这两个项目正确显示在菜单栏中。
我还尝试使用从资源编辑器创建的菜单。它在菜单栏中显示得很好,但在 中CMFCMenuButton
,又出现了空白。
我错过了什么?
button - CMFCMenuButton 未在发布中显示下拉列表
我在 CDialogBar 上有一个 CMFCMenuButton,它有一个非常奇怪的行为:它在 Debug 构建中显示其下拉列表,但在 Release 构建中没有显示它。
调试构建:
发布版本:
我的派生类的 OnShowMenu() 方法的 __super::OnShowMenu() 调用似乎发生了错误。
更糟糕的是,我的机器上有一些配置没有进入 MFC 功能包方法......我做了一切来让它工作,但我无法到达那里。
请帮忙。
button - CMFCMenuButton 不尊重深色方案
如何更改外观或 MFCMenuButton?我们需要一些深色方案,所以样式设置为 CMFCVisualManagerOffice2007::Office2007_ObsidianBlack。可视化管理器设置如下:
一些 UI 的外观发生了变化,但 MFCMenuButton 样式仍为浅灰色。
c++ - 如何正确将 CMFCMenuButton 选择的 ID 发送到消息映射?
首先让我描述一下我所拥有的:
场景: CMFCMenuButton
,加载一个CMenu
,在对话框中
测试:单击菜单项
结果:消息映射将获取菜单的 ID,CMFCMenuButton
而不是菜单的 ID
如何获取实际menu ID clicked: useCMFCMenuButton::m_nMenuResult
这个想法是我想在这个对话框中有菜单项和按钮,并且会有与菜单项共享 ID 的按钮。
因此,在我为菜单按钮创建的处理程序中,我可以得到它m_nMenuResult
并将其发送到对话框或做任何我想做的事情,但这似乎不是应该如何CMFCMenuButton
工作的。正确的做法是什么?
代码
下面是一个关于如何重现它的示例。我也使用
ON_COMMAND_RANGE
withIDC_MFCMENUBUTTON1
来重用 OnMenu 函数的代码
c++ - CMFCMenuButton 的示例代码?
对不起新手的问题,但任何人都可以指点我说明使用 CMFCMenuButton 的示例代码吗?Microsoft 帮助引用了“新控件示例”,但这些示例似乎在 Visual Studio 2008“功能包”中,并且由于我运行的是 VS 2013 并且没有 VS 2008,因此它拒绝安装在我的系统上。我无法找到作为独立代码的示例。具体来说,我有一个对话框栏,在其中我想要一个标记为 Save 的按钮,其中包含 Save All 和 Save Visible 的下拉选项(默认为 Save All)。但任何工作代码至少会让我开始。
menu - CMFCMenuButton 不关闭
我有CDialog
一个CFMCMenuButton
。当我打开它时,一切正常:
当我单击其他地方关闭菜单时,就会出现问题。菜单似乎无法关闭,除非用户选择它的选项。如果我在键盘上按 Escape,对话框会自行关闭,这太激烈了;我真的希望它只关闭菜单。
我知道我可以通过将资源文件中的属性“OS Menu”设置为 True (或等效地分配其属性m_bOSMenu= TRUE
)来解决这个问题。我会得到:
如图所示,后果是:
- 我松开了图标(不是很重要)
- 我失去了一些项目的禁用(重要)由
OnInitMenuPopup
(旁注:第二个菜单列也是由完成的OnInitMenuPopup
,它看起来应该是)。如果用户单击这些选项,它们将起作用,但它们不应该。
我该如何解决这个问题?
c++ - 切换高对比度模式时,CMFCMenuButton 无法正确重新绘制
在我CMFCMenuButton
使用 MSVC 2013 的 C++ MFC 项目中。
当我切换高对比度模式时,按钮未正确重绘(为了比较,显示正常按钮):
调用Invalidate()
或ShowWindow(SW_HIDE);ShowWindow(SW_SHOW);
似乎没有效果 - 即使最小化对话框也不会导致正确的重绘。如何强制按钮使用更新的系统颜色重新绘制?
更新:在切换对比度模式后强制颜色只会使按钮文本可见,但按钮本身,即边框,不可见。