问题标签 [cmfctoolbar]

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 投票
1 回答
228 浏览

c++ - 如何从自定义对话框工具栏属性页中隐藏 CMFCToolBar?

我正在开发包含功能区和一些工具栏的 Mfc 应用程序。我制作了一个 CMFCToolBar 虚拟对象来存储功能区选项卡中的所有图标并稍后使用它。

我已经从 UI 中隐藏了虚拟工具栏。但无法从自定义对话框工具栏属性页中隐藏。 图片(无标题栏是虚拟工具栏)

我不希望用户在属性页中看到虚拟工具栏。为此,我还制作了 CMFCToolBarsCustomizeDialog 扩展并继承了 ShowToolBar 函数,但它不起作用。

代码:

0 投票
1 回答
1247 浏览

c++ - 如何在 mfc 中设置大小和透明/清除 CMFCToolBar 按钮和图标?

我已经创建了一些 ( CMFCToolBar) 工具栏并向它们添加了按钮和图标。我在 Microsoft 的官方网站上阅读了CMFCToolBar23x22 按钮大小和 16x15 图标大小(参考:链接)。

如果我对图标使用 16x15,那么图标会显得模糊。这是因为图标最初的大小为 16x16。我使用该功能SetSizes(CSize (23,23), CSize(16,16))更改图标大小,但图标显示不正确:

图片

还有另一种设置图标和按钮大小的方法吗?


更新

SetSize在创建工具栏之前调用了该函数,但图标仍然显得有些模糊:

图片

我想知道是否有办法将图标/按钮设置为透明,或者说清楚,就像我们可以通过函数设置工具栏透明TBSTYLE_TRANSPARENT一样。CreateEx

0 投票
1 回答
314 浏览

c++ - 如何设置动态创建的 CMFCToolbar 的原始状态?

我在我的 mfc 应用程序中动态创建了一些工具栏

工具栏没有位图或资源 ID。我使用函数 InsertButton 在我的工具栏中添加按钮

当我尝试通过菜单中的重置工具栏按钮重置此工具栏时。工具栏不会重置为其原始状态,只会提示消息框并且不会恢复任何更改。

我认为问题是在CMFCToolBar::RestoreOriginalstate()执行条件时:

得到 true 并且函数返回 false,因为 m_uiOriginalResID 中没有资源 ID。

有什么方法可以加载动态创建的工具栏,或者我必须继承 RestoreOriginalstate 函数并自己编写。

0 投票
1 回答
202 浏览

c++ - 如何在动态创建的 CMFCToolbar 的 ToolTip 中添加描述?

CMFCToolbar 继承了 EnableToolTip 功能,如果开发人员动态创建工具栏并且没有在资源中添加描述和标题,则该功能对开发人员没有帮助。我为 CMFCToolBar 做了一个扩展并写了一个函数:

在 cmfctoolbar 按钮中显示工具提示。

cmfctoolbar 按钮不带参数,也没有设置描述的功能。构造函数采用如下参数:

如果我将参数 lpszText 设置为标题,则仅工具提示显示如下

如果有人可以提出更好的方法,我需要向此工具栏添加描述并像这样查看它

0 投票
1 回答
186 浏览

c++ - 如何在 MFC 工具栏中添加自定义控件

我正在使用CMFCToolBarMFC 功能,并且想要制作图片中给出的自定义工具栏

在此处输入图像描述 我可以添加组合框,但无法在组合框中添加行。我有以下需求:

  • 带文本的行CMFCtoolbarComboboxButtom
  • 带有向上/向下箭头的组合框,用于增加和减少值。

如何在其中添加线条CMFCtoolbarComboBoxButton并放置多个控件,例如宽度和高度控件?

使用 Visual C++ 2018

0 投票
1 回答
183 浏览

c++ - 如何手动显示 CMFCToolBarComboBoxButton 子菜单?

的标准行为CMFCToolBarComboBoxButton是有一个可点击的按钮和一个用于显示子菜单的下拉箭头。我想独立于点击的位置显示子菜单。我该怎么做?

我创建按钮的代码或多或少如下(它是从一个更大的项目中提取的,因此我为任何丢失的不太重要的代码段道歉):

我一直在四处寻找,找不到相关的答案。

0 投票
1 回答
100 浏览

mfc - MFC:使用 CTreeCtrl 和 CToolbar 创建一个类(CWnd?)

我有一个CDialog基于应用程序的应用程序,它有两个并排的,CTreeCtrl并且两棵树在它们之上几乎相同CToolbars。目前,当对话框从其中一个工具栏接收到消息时,它会将消息传递给相应的树。我想创建一个新类,可能从 CWnd 派生,其中包含 oneCTreeCtrl和 one CToolbar。这个新类会将消息从它的一个工具栏传递到它的一棵树。它将删除大量冗余代码(大概)简化正在进行的开发。

我的问题是,CWnd这个任务是否合适(结合 aCTreeCtrlCToolbar)?

谢谢!

0 投票
1 回答
52 浏览

visual-c++ - 工具栏正在重新排列

我正在使用 VC++ MFC 并在我的软件中有以下工具栏。

原始工具栏位置

虽然使用不同的屏幕和软件被最小化,但如果我们断开另一个屏幕,工具栏会在恢复应用程序后变得混乱。

重新排列工具栏

有时,当使用单屏并更改屏幕分辨率或笔记本电脑盖关闭并重新打开时,也会出现该问题,大多数情况下,当应用程序最小化时,我们会更改任何内容。

我们不会每次都执行任何代码来绘制工具栏。在软件启动时,我们从注册表中读取工具栏位置并创建工具栏,在关闭应用程序时,我们读取工具栏当前位置并将其保存回注册表。

请建议我应该怎么做才能解决这个问题..

谢谢...

0 投票
1 回答
55 浏览

c++ - 为什么我的 CMFCToolBar 在 CDialog 上重叠?

我在这里处于设计阶段。

代码:

我将上述内容称为OnInitDialog我的CDialog.

为什么工具栏重叠:

在此处输入图像描述

更新

我简化了代码,只使用了一个基本的工具栏资源:

但结果还是一样。

更新

我注意到如果我只是在 IDE 中调整对话框的大小,那么我就有了工具栏的空间。但是如何在 IDE 中准确地调整它的大小以允许 32 像素高的工具栏?

在此处输入图像描述

0 投票
1 回答
971 浏览

c++ - MFC:如何设置 CEdit 框的焦点?

我正在处理我的第一个简单的 MFC 项目,但我正在努力解决一个问题:想要CEdit在其中一个对话框中设置所有框的焦点。我的想法是当打开对话框时,焦点放在第一个编辑框上,然后用“选项卡”在它们之间交换。

我看到了方法SetFocus(),但我无法正确应用它。我也找不到用特定键实现焦点顺序的解决方案。

提前感谢所有花时间帮助我的人!