问题标签 [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 投票
2 回答
876 浏览

visual-c++ - MFC 功能包 - 关闭后无法显示可停靠窗格

通过使用该向导并选择 Office 2007 样式,您可以创建一个看起来像 IDE 的 UI - 左侧是可停靠的文件资源管理器窗格,右侧是可停靠的属性窗格。

但是,当您关闭这些可停靠窗格时,您将无法再次显示它们。即使你重新编译项目。

我搜索了一些论坛,看起来我不是唯一一个遇到这个问题的人。有没有办法再次显示这些窗格?

0 投票
2 回答
2446 浏览

visual-c++ - MFC 功能包 - 如何更新属性网格控件

我是 MFC 新手,对“MFC 功能包”的新功能有点困惑。通过向导,我现在有一个看起来像 IDE 的应用程序 - 左侧有一个可停靠的文件资源管理器,右侧有一个可停靠的属性窗口。我可以通过 ON_WM_LBUTTONDBLCLK 和 GetItemText() 获取文件资源管理器窗口中的选定项目。

问题: 单击文件资源管理器窗口中的项目后,属性窗口应该“更新”。前任。我单击树控件中的一个项目“按钮”,属性窗口应显示“图像”、“字体”和“颜色”,我该怎么做?如何更新 propertygridCtrl 的内容?

0 投票
1 回答
1970 浏览

c++ - MFC 功能包 - 如何使用 CMFCPropertyGridProperty::GetValue 获取字体、样式和大小

通过使用 CMFCPropertyGridProperty::GetValue 我能够获取属性网格的内容。

我有一个属性虽然可以获取字体,但当您单击它时,会显示一个对话框来选择字体、大小和样式。

使用此代码:

CMFCPropertyGridProperty* pCurSel = m_wndPropList.GetCurSel();

CString 测试 = pCurSel->GetValue();

我可以在字段中获取字符串,但是如果您将值作为字符串获取,则只能获取字体名称和字体大小 [ 例如。塔霍马(8)]。我想将值作为字符串获取,以便可以将这些值写入 XML 文件。选择字体、大小和样式的对话框必须返回一个 DWORD 类型的值(我想)。但是我如何提取它的返回值,以便从字面上得到选择的内容,如“tahoma”、“10”和“Bold”?

请帮忙...谢谢...

0 投票
1 回答
677 浏览

c++ - MFC 功能包错误?基于功能区的 GUI 在休眠(睡眠模式)后不恢复

我强迫了一个可能的漏洞Windows Vista 下 MFC Feature Pack 的功能。它可以很容易地重新创建:

  1. 使用 MFC 功能包(带有基于功能区的界面)创建一个新的 SDI 应用程序。如果需要,您还可以添加一些浮动面板;
  2. 不要更改任何内容,只需构建一个 Release;
  3. 关闭 Visual Studio,运行应用程序并将您的计算机设置为睡眠模式(休眠)。
  4. 从睡眠模式恢复计算机,您会看到应用程序没有很好地恢复:它没有正确显示窗口的标题;不可能增加窗口大小(它会削减框架)等。

有没有人强迫这种行为?

我正在使用 Windows Vista Business SP2 并在我的台式机和笔记本电脑上获得相同的行为。可惜没有在XP或其他平台下测试。

PS:我已经通过将视觉样式切换到任何其他并返回接收 WM_POWERBROADCAST 解决了基于工具栏的应用程序的上述问题。但该技巧不适用于基于功能区的应用程序。

0 投票
1 回答
3040 浏览

visual-c++ - 如何删除 Visual C++“扩展菜单”箭头?

在 Visual C++ 中创建带有子菜单的菜单时,我发现子菜单以箭头开头,我必须单击以展开以查看其内容。有没有办法(以编程方式)让子菜单弹出已经展开(没有箭头可以点击)?

这是我正在谈论的图像,在单击上述箭头之前和之后: 也在这里截屏

0 投票
1 回答
3023 浏览

mfc - MFC 选项卡式文档 - 如何启用鼠标中键关闭文档?

如果您创建一个新的 MFC 应用程序(使用 MFC 功能包)并使用所有默认值,请单击完成。它使用新的“选项卡式文档”样式创建 MDI 应用程序。

替代文字

我认为这些都很棒,只是我无法通过在选项卡上单击鼠标中键来关闭选项卡式文档窗口,这让我很恼火。

这在 Firefox、IE、Chrome 和更重要的VS2008中是可能的。但是单击选项卡上的中间按钮不会执行任何操作。

我无法弄清楚如何覆盖标签栏以允许我处理ON_WM_MBUTTONDOWN消息。有任何想法吗?

编辑:猜想我需要继承从 CMDIFrameWndEx::GetMDITabs 返回的 CMFCTabCtrl ......

0 投票
1 回答
2021 浏览

mfc-feature-pack - 如何将 CFormView 派生类附加到 CMFCTabCrtl?

我已经使用基类 CFormView、功能区、标题栏等创建了 MFC MDI 项目。在 CMainFrame 中,OnCreate() 调用 EnableMDITabbedGroups(),它会自动添加一个选项卡并附加 CMyProjectView 视图。现在我想添加第二个选项卡并将第二个视图附加到该选项卡。我创建了新对话框并向其中添加了 CFormView 派生类。

这是代码:

现在,我很确定我错过了一些微不足道的事情或一起走错了方向,但我无法获得新的视图来显示。此外,我无法在 CMainFrame 中捕获 AFX_WM_CHANGE_ACTIVE_TAB 或 AFX_WM_CHANGING_ACTIVE_TAB。消息从 CMFCBaseTabCtrl::FireChangingActiveTab 发送,但没有任何反应。

0 投票
1 回答
2322 浏览

refresh - 添加/更新项目后如何刷新 CMFCRibbonBar

添加功能区项目或调用更新项目的方法后,功能区无法正确刷新。有时调整窗口大小后就可以了,但大多数时候面板处于折叠状态。

我尝试了所有我能想到的功能,ReposPanels、RecalcWidths、RecalcLayout 等,但没有任何效果......

0 投票
1 回答
1456 浏览

c++ - 如何从 CMFCPropertyFontProperty 获取字体大小

我正在使用此代码块从 CMFCPropertyFontProperty 控件的字体对话框中获取用户选择的字体名称、样式和大小。我已经能够获得名称和样式,但大小似乎返回了不同的值。

我意识到有一个公式:

但我似乎无法让它工作......我如何从 CMFCPropertyFontProperty 获得 hDC?请帮忙...

0 投票
2 回答
3234 浏览

c++ - 为什么 CMFCMenuBar 不使用加速器表?

在使用 VS2008 的 doc/view 项目中,MFCMenuBar似乎从项目中加载了正确的 MENU 资源 (IDR_MAINFRAME),因为添加和删除菜单项反映在菜单的 UI 中。它甚至将加速器附加到默认菜单项(例如 Ctrl+O 到 Open... 项)。但是,加速器表 (IDR_MAINFRAME) 似乎没有连接到菜单。将 Open... 的默认 Ctrl+O 更改为 Ctrl+7 之类的内容不起作用。Ctrl+O 仍然附加到 Open... 菜单项,并且 Ctrl+O 仍然调用 Open... 处理程序。资源文件中只有一个加速器表,所以我不知道 CMFCMenuBar 从哪里获取它的加速器信息。

此时,我已经能够通过手动加载 IDR_MAINFRAME 加速器表并自己翻译消息来使加速器工作。但 CMFCMenuBar 仍在附加默认加速器。

谁能解释这里发生了什么?如何强制 MFCMenuBar 使用我的加速器表并且不附加加速器或附加正确的加速器?