问题标签 [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.

0 投票
9 回答
4327 浏览

colors - 在 Office 2007 样式中使用 MFC 功能包时找出正在使用的颜色

我正在更新我们的一些遗留 C++ 代码以使用 Microsoft 为 Visual Studio 2008 发布的“MFC 功能包”。我们使用新类从 CFrameWndEx 派生我们的应用程序,并且正在应用 Office 2007 样式来提供我们的应用更现代的外观。这为我们提供了渐变填充的窗口标题、状态栏等,以及功能区工具栏的使用。

但是,我们的应用程序包含一些所有者绘制的控件,我想更新这些以匹配功能包使用的配色方案。理想情况下,我想知道当前使用的浅色和阴影工具栏颜色。

我在文档和网络上进行了搜索,但还没有找到任何东西。有谁知道如何找到这些信息?

[编辑]

特别是我们需要找出在运行时使用了哪些颜色。您可以使用新的静态函数 CMFCVisualManager::SetDefaultManager 在运行时更改应用程序的外观。

下面的 msdn 页面向您展示了可用的样式,尤其是 Office2007 外观: link to msdn

0 投票
5 回答
8759 浏览

mfc - MFC Feature Pack 类菜单上的图标

在新的 MFC 功能(功能包)中,菜单出现在三个位置:

  • 在菜单栏中 (CMFCMenuBar)
  • 在弹出菜单中 (CMFCPopupMenu)
  • 在 CMFCButton 的“下拉菜单”版本中

我想将图标(高颜色和透明)放在所有菜单中。我找到了 CFrameWndEx::OnDrawMenuImage() ,我可以用它来自定义在菜单栏项目前面绘制图标。这不是很方便,必须在2008年实现图标绘制,但它可以工作。对于其他人,我还没有找到解决方案。是否有一种自动设置菜单图标的方法?

0 投票
4 回答
6153 浏览

mfc - 您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用吗?

您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用来更改应用程序的外观吗?如果是这样,它是如何完成的?

这个想法是使用随 MSVC 2008 发布的 MFC 功能包来更改控件的形状、颜色等,例如按钮。

0 投票
3 回答
3583 浏览

mfc - 如何将 CMFCListCtrl 与 CListView 一起使用?

我想在我的CListView类中使用新的CMFCListCtrl功能(当然还有里面的新 CMFCHeaderCtrl)。不幸的是,您不能使用Attach()SubclassWindow(),因为 SysListView32 窗口已经与 CListView 对象相关联。

我是否必须覆盖 CListView 的OnCmdMsg()并将所有消息路由到我自己的 CMFCListCtrl 实例?(这甚至会起作用吗?)还是有更简单/更清洁的解决方案?

0 投票
2 回答
993 浏览

c++ - 从 MFC Feature Pack 将注册表访问转换为 db 调用

我们可能会开始转换旧的 VS2003 MFC 项目以使用 MFC 功能包和 VS2008 提供的花哨的新功能。几个新的 UI 控件会非常好,除了一件事 - 它们会自动将信息保存到注册表。我的注册表没有问题,但是对于用户使用程序的多种环境,将用户数据保存到数据库要容易得多。

所以,我希望有一个主要的“访问注册表”功能可以重载以指向数据库。但简短的调查并没有发现任何问题。有没有其他人在做类似的事情上取得过成功?

0 投票
1 回答
4429 浏览

c++ - 在 CView 而不是 CMainFrame 中创建停靠窗格

使用 VS2008 的 AppWizard(加上功能包)创建具有“Visual Studio”风格的 MDI 应用程序时,CMainFrame该类获得一个方法CreateDockingWindows()

由于我不希望所有窗格始终可见,而是根据活动文档的类型显示它们,因此我将这些窗口设置为我的视图成员,并将创建移至OnInitialUpdate(). CMainFrame我以与将主框架设置为父窗口相同的方式创建这些窗格。

停靠窗口的位置会自动保存到注册表中,但它们不会被恢复,因为在框架初始化时停靠窗口还不存在。

使用视图创建停靠窗口是一个好主意,还是我应该期待更多问题?有没有更好的方法来完成我想要的?

提前致谢!

0 投票
2 回答
3534 浏览

c++ - 如何在状态栏中显示 CMFCRibbonButton 的工具提示?

CMFCRibbonStatusBar在我的大型机中有一个,我向其中添加了一个CMFCRibbonButtonsGroup再次具有CMFCRibbonButton. 此按钮与菜单条目具有相同的 ID。

创建按钮的过程如下:

我想将此按钮用作状态指示器。

我想在以下两种情况下显示工具提示:

  • 当状态改变和
  • 当用户将鼠标移到按钮上时。

我不知道如何首先开始。我查看了ToolTipDemo示例DlgToolTips项目,但无法弄清楚如何去做,因为它们所做的只是显示工具栏项或对话框按钮的工具提示(CWnd-derived 而不是CMFCRibbonButton)。

如果您熟悉ToolTipDemo示例项目:由于似乎有多种处理方式,我希望工具提示看起来像此屏幕截图中所示的“基于扩展可视化管理器”的工具提示。

谢谢!

0 投票
5 回答
8281 浏览

c++ - 如何在 CTreeCtrl 中显示自定义工具提示?

我有一个派生自CTreeCtrl. 在OnCreate()我用自定义对象替换默认CToolTipCtrl对象:

我的消息处理程序如下所示:

但是我从来没有收到过TTN_NEEDTEXT消息。我看了一下 Spy++,看起来这条消息永远不会被发送。

这里可能是什么问题?

更新

我不确定这是否相关:CTreeCtrl的父窗口类型为CDockablePane。是否需要一些额外的工作才能使其正常工作?

0 投票
2 回答
2924 浏览

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() 在创建的提示上那么简单。

0 投票
5 回答
8550 浏览

c++ - 如何在 CDockablePane 中放置 MFC CFormView?

如何将 MFC CFormView 放置在 VS 2008 MFC 功能包中引入的 CDockablePane 中?