问题标签 [cpropertysheet]

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 回答
325 浏览

mfc - 在属性表页脚上绘制颜色的问题?

我设计了一个属性表并将其页脚绘制为OnPaint()事件中的某个渐变。页脚如下所示。观察红色圈出的按钮区域。 在此处输入图像描述

在 OnPaint 我做如下,

上图中的按钮不是透明的,但实际上按钮的背景应该如下图所示。

在此处输入图像描述

向导按钮的背景或页脚区域应如上图所示。但如果您可以查看第一张图片,因为“后退”按钮、“下一步”和“取消”按钮周围有一些白色。

如果我这样做,图像如下灰色。但该颜色应该是渐变色,我无法创建渐变画笔。

在此处输入图像描述

我尝试在 CtlColor 中返回 NULL,但我看不出有任何区别。

CPropertySheet从and派生出我自己的课程CButton

谁能告诉我如何删除这些按钮周围的边框。

0 投票
1 回答
545 浏览

mfc - 如何隐藏属性表?

我有一个属性表,我在隐藏表时遇到了问题。我将简要解释我做了什么。

在 PropertySheet OnWizardFinish() 我试图隐藏工作表并执行以下操作,

所以这里只有消息框应该是可见的并且工作表应该被隐藏这是我所期望的。ShowWindowAsync但在后台工作表仍然存在。

我在基于对话框的应用程序中尝试过同样的事情,它按预期工作,后台窗口被隐藏,只显示消息框。

更多细节: 在此处输入图像描述

现在,当我单击完成时,工作表应该被隐藏并应该显示一个类似这样的消息框, 在此处输入图像描述

谁能告诉我如何在属性表向导中实现这一点。

0 投票
1 回答
831 浏览

c++ - CPropertySheet 只显示一秒钟

我正在尝试将具有三个 CPropertyPages 的 CPropertySheet 添加到我的 MFC 应用程序中。我的问题是属性表只显示不到一秒钟然后关闭。当我在创建 CPropertySheet 后打开一个不同的模式对话框时,CPropertySheet 保持打开状态,我可以毫无问题地使用它。这是我的代码:

我认为我的问题可能出imagedlg->Create(在我NULL用作第一个参数时。我正在使用的教程this代替NULL. 但是,这给出了错误:

IntelliSense:“CSLIMOptCplusplusApp *”类型的参数与“CWnd *”类型的参数不兼容

我也试过imagedlg->Create();了,它也只闪了一下。我希望我的 CPropertySheet 保持打开状态,直到它关闭。谢谢你的帮助!

编辑: 这是我希望我的属性表看起来像的图像。我的第一个选项卡使用 ListControl 更改数据库选项,其他两个选项卡将执行其他操作。我的意图是保持对话框/属性表看起来和现在一样,但保持打开而不是关闭。 属性表

0 投票
1 回答
357 浏览

c++ - 消除 CPropertySheet / 选项卡式对话框页面下方的间隙

我有一个用于显示三个 CPropertyPages 的 CPropertySheet。我删除了默认的“应用”和“帮助”按钮。我的问题是,现在它们被移除了,我在它们曾经所在的地方有很大的差距。有没有办法消除这个差距?谢谢!

这是我所说 的差距的图片:差距

在移除按钮之前,它们位于间隙的右侧。请注意,“更改选项”页面是在 Visual Studio 的设计器中创建的,页面在“打印”按钮下方结束。主要的管理选项 CPropertySheet 完全由代码创建。这是初始化 CPropertySheet 和页面的代码(以及删除“帮助”和“应用”按钮:


如果需要任何进一步的细节,我会编辑。谢谢。

0 投票
1 回答
1397 浏览

c++ - 如何正确更改 CPropertySheet 上的选项卡

我有一个带有三个选项卡的 CPropertySheet。每个选项卡都有一个不同的 CPropertyPage 类。当我的 CPropertySheet 与调试器一起加载时,第一页总是正确显示。但是,当我单击任何其他选项卡时,CPropertyPage 区域变为空白。即使我单击第一个选项卡,该区域仍然是空的。我正在使用 Visual Studio、MFC、C++。

我正在尝试找到正确的方法来处理不同的标签点击并让我的标签正确显示。这是初始化我的属性表及其页面的代码:

这是我的 CPropertySheet 类的代码:

0 投票
1 回答
492 浏览

c++ - 在选项卡选择上更新 CPropertyPage

我正在寻找单击后更新 CPropertyPage 的最佳方法。目前,我的页面在OnInitDialog(). 但是,当用户在第一页上做某事时,它会影响第二页上的内容。

我能想到的唯一解决方案是“更新”按钮。单击按钮后,页面将通过调用在OnInitDialog(). 当用户单击 CPropertySheet 的不同 CPropertyPage 时是否会发生事件?

0 投票
2 回答
165 浏览

c++ - 破坏属性表的 OK、CANCEL 和 HELP 窗口的效果

我想为项目使用基于 CPropertySheet 的应用程序,并且我不想要 CPropertySheet 类附带的那些默认的 OK、Cancel、Help 和 Apply 按钮。因此,我销毁了 OnInitDialog 上的那些窗口。这是供参考的代码:

CProductUI 是 CPropertySheet 的一个类。 但是,当我在调试模式下使用 VC++2008 编译程序时,我在“ CPropertySheet::OnInitDialog();
行收到调试断言失败错误消息,谁能解释一下为什么会发生这种情况?

0 投票
1 回答
81 浏览

c++ - 在 CPropertyPage 中“嵌入”wxWidgets

我负责一个包含大量遗留 MFC 代码的大小适中的 Windows 产品。我没有时间将整个产品转换为 wxWidgets,但一直在用 wxWidgets 实现新的对话框。我需要更新较大的 MFC 对话框 (CPropertySheet) 的单个选项卡 (CPropertyPage)。为了最终将整个产品转换为 wxWidgets,如果可以的话,我想用 wxWidgets 重新实现这一选项卡。我没有在网上找到任何这样做的例子,但似乎应该是可能的。似乎 CPropertyPage 类可以有一个定义属性页图形大小的 CStatic 框。CPropertyPage 实现需要实例化和管理一个 wxWidgets 类,该类承载 CStatic 框内的实际用户控件。CStatic 框内的所有内容都将由 wxWidgets 类实例绘制和管理,包括事件。我认为 wxPanel 将是合适的 wxWidgets 类。外部的一切都将由 CPropertyPage 管理。

有没有人看到为什么这不能工作或这将非常困难的任何原因?我不是 wxWidgets 或 MFC 开发方面的专家,所以我不确定。如果没有人告诉我我疯了,我会试着报告我学到的东西。

TIA 供您参考,艾伦

0 投票
0 回答
407 浏览

mfc - MFC:来自 CPropertyPage 的 CDialog

我有 CPropertySheet,其中包含多个 CPropertyPage 作为选项卡。在其中一个 CPropertyPage 中,我有一个按钮,单击该按钮会启动一个 CDialog。我试图让 CPropertyPage 的控件在 CDialog 类方法中调用 GetParent() 方法,但不知何故我没有得到正确的父窗口,当我尝试访问 CPropertypage 的成员时,它会引发访问冲突异常。

以下是我使用的代码:

同样的事情曾经在 Visual Studio 2008 中工作,但是当我搬到 Visual Studio 2013 时,它抛出了异常。

0 投票
0 回答
93 浏览

c++ - PropertySheet 窗口句柄

下面的代码,创建一个属性表,在应用程序文件中没有问题。

但是,当我将相同的代码放入 DLL 并从另一个应用程序的菜单项调用它时,m_pMainWnd无法使用(应用程序中的菜单在属性表后面保持可见)。

我试图创建一个句柄

CWnd* m_pWnd = &Pr_Sheet;

m_pWnd在 CProp_Sheet 构造函数中使用,但尽管在运行时正确编译失败总是发生在

提前感谢您的任何评论。