问题标签 [mfc-feature-pack]
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.
colors - 在 Office 2007 样式中使用 MFC 功能包时找出正在使用的颜色
我正在更新我们的一些遗留 C++ 代码以使用 Microsoft 为 Visual Studio 2008 发布的“MFC 功能包”。我们使用新类从 CFrameWndEx 派生我们的应用程序,并且正在应用 Office 2007 样式来提供我们的应用更现代的外观。这为我们提供了渐变填充的窗口标题、状态栏等,以及功能区工具栏的使用。
但是,我们的应用程序包含一些所有者绘制的控件,我想更新这些以匹配功能包使用的配色方案。理想情况下,我想知道当前使用的浅色和阴影工具栏颜色。
我在文档和网络上进行了搜索,但还没有找到任何东西。有谁知道如何找到这些信息?
[编辑]
特别是我们需要找出在运行时使用了哪些颜色。您可以使用新的静态函数 CMFCVisualManager::SetDefaultManager 在运行时更改应用程序的外观。
下面的 msdn 页面向您展示了可用的样式,尤其是 Office2007 外观: link to msdn
mfc - MFC Feature Pack 类菜单上的图标
在新的 MFC 功能(功能包)中,菜单出现在三个位置:
- 在菜单栏中 (CMFCMenuBar)
- 在弹出菜单中 (CMFCPopupMenu)
- 在 CMFCButton 的“下拉菜单”版本中
我想将图标(高颜色和透明)放在所有菜单中。我找到了 CFrameWndEx::OnDrawMenuImage() ,我可以用它来自定义在菜单栏项目前面绘制图标。这不是很方便,必须在2008年实现图标绘制,但它可以工作。对于其他人,我还没有找到解决方案。是否有一种自动设置菜单图标的方法?
mfc - 您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用吗?
您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用来更改应用程序的外观吗?如果是这样,它是如何完成的?
这个想法是使用随 MSVC 2008 发布的 MFC 功能包来更改控件的形状、颜色等,例如按钮。
mfc - 如何将 CMFCListCtrl 与 CListView 一起使用?
我想在我的CListView类中使用新的CMFCListCtrl功能(当然还有里面的新 CMFCHeaderCtrl)。不幸的是,您不能使用Attach()或SubclassWindow(),因为 SysListView32 窗口已经与 CListView 对象相关联。
我是否必须覆盖 CListView 的OnCmdMsg()并将所有消息路由到我自己的 CMFCListCtrl 实例?(这甚至会起作用吗?)还是有更简单/更清洁的解决方案?
c++ - 从 MFC Feature Pack 将注册表访问转换为 db 调用
我们可能会开始转换旧的 VS2003 MFC 项目以使用 MFC 功能包和 VS2008 提供的花哨的新功能。几个新的 UI 控件会非常好,除了一件事 - 它们会自动将信息保存到注册表。我的注册表没有问题,但是对于用户使用程序的多种环境,将用户数据保存到数据库要容易得多。
所以,我希望有一个主要的“访问注册表”功能可以重载以指向数据库。但简短的调查并没有发现任何问题。有没有其他人在做类似的事情上取得过成功?
c++ - 在 CView 而不是 CMainFrame 中创建停靠窗格
使用 VS2008 的 AppWizard(加上功能包)创建具有“Visual Studio”风格的 MDI 应用程序时,CMainFrame
该类获得一个方法CreateDockingWindows()
。
由于我不希望所有窗格始终可见,而是根据活动文档的类型显示它们,因此我将这些窗口设置为我的视图成员,并将创建移至OnInitialUpdate()
. CMainFrame
我以与将主框架设置为父窗口相同的方式创建这些窗格。
停靠窗口的位置会自动保存到注册表中,但它们不会被恢复,因为在框架初始化时停靠窗口还不存在。
使用视图创建停靠窗口是一个好主意,还是我应该期待更多问题?有没有更好的方法来完成我想要的?
提前致谢!
c++ - 如何在状态栏中显示 CMFCRibbonButton 的工具提示?
我CMFCRibbonStatusBar
在我的大型机中有一个,我向其中添加了一个CMFCRibbonButtonsGroup
再次具有CMFCRibbonButton
. 此按钮与菜单条目具有相同的 ID。
创建按钮的过程如下:
我想将此按钮用作状态指示器。
我想在以下两种情况下显示工具提示:
- 当状态改变和
- 当用户将鼠标移到按钮上时。
我不知道如何首先开始。我查看了ToolTipDemo
示例DlgToolTips
项目,但无法弄清楚如何去做,因为它们所做的只是显示工具栏项或对话框按钮的工具提示(CWnd
-derived 而不是CMFCRibbonButton
)。
如果您熟悉ToolTipDemo
示例项目:由于似乎有多种处理方式,我希望工具提示看起来像此屏幕截图中所示的“基于扩展可视化管理器”的工具提示。
谢谢!
c++ - 如何在 CTreeCtrl 中显示自定义工具提示?
我有一个派生自CTreeCtrl
. 在OnCreate()
我用自定义对象替换默认CToolTipCtrl
对象:
我的消息处理程序如下所示:
但是我从来没有收到过TTN_NEEDTEXT
消息。我看了一下 Spy++,看起来这条消息永远不会被发送。
这里可能是什么问题?
更新
我不确定这是否相关:CTreeCtrl
的父窗口类型为CDockablePane
。是否需要一些额外的工作才能使其正常工作?
c++ - CMFCToolTipCtrl 或 CTooltipManager 示例?
有没有人尝试过使用这些新的 VS2008 MFC 类呢?我似乎在任何地方都找不到任何例子。甚至 VS2008 示例 (1) 也没有提及这些类。(他们使用 CToolTip。)
(1)更新:我的错误。我已经下载了非 SP1 样本。我看到SP1 示例具有专门针对 2008 Feature Pack 的示例,包括答案中提到的 DlgToolTips 和 ToolTipDemo 项目。不幸的是,它们不涉及 doc/view 或 CTooltipManager。
具体来说,我试图在标准 MFC 视图/文档应用程序中显示工具提示,其中有两个并排视图,其父级为 CSplitterWnd。我在 SP1 之前就有了这个工作,我认为这是尝试新的 Feature Pack 工具提示类的好时机。
有没有办法让这些事情在不覆盖 PreTranslateMessage() 和手动调用 RelayEvent() 的情况下工作?(我不认为我在 MFC 中看到过像工具提示这样设计糟糕的东西。)
它看起来不像仅仅调用 CTooltipManager::CreateToolTip() 然后 AddTool() 在创建的提示上那么简单。
c++ - 如何在 CDockablePane 中放置 MFC CFormView?
如何将 MFC CFormView 放置在 VS 2008 MFC 功能包中引入的 CDockablePane 中?