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

mfc - CPropertyPage 对话 OnOk 如果出现错误不应关闭对话

我有一个从类继承的CPropertyPage类。我有一个OnOk()方法和一个OnKillActive()方法。每当我在对话上按确定时。OnKillActive()被调用但从OnOk()未被调用。问题取决于我不想在按下确定时关闭对话的条件。但对话将在按下 OK 时结束。

按确定时如何防止对话关闭?

代码:

0 投票
2 回答
1465 浏览

c++ - 如何从属性表中删除确定、取消和应用按钮

所以我尝试使用这段代码,但它不起作用:

提前致谢。

0 投票
2 回答
252 浏览

mfc - 向派生的 CMFCPropertySheet 类添加调整大小锚点

感谢 Stack Overflow 的支持,我已经能够创建自己的CResizingMFCPropertySheet支持调整大小的。现在,我添加了一个调整大小的锚点,并使用了以下代码:

注意:以上代码已修改,不再使用动态布局 - 不起作用)。

该方法被调用OnInitDialog。首次显示工作表时,它看起来不错:

属性表

您可以在右下角看到锚点。现在,当我去调整窗口大小时:

调整工作表

如您所见,它没有正确渲染锚。

更新

我已经设置WS_CLIPSIBLINGS了,没有区别。

更新

只是为了让大家知道新主题抓手无法正常工作的原因是因为我没有添加OnNcHitTest处理程序等。

0 投票
1 回答
148 浏览

visual-c++ - SetWindowPos() 适用于对话框,但不适用于 CPropertyPage

我有一个 type 的对话框CPropertyPage,在对话框中我显示一个CPropertySheet对象以显示几个选项卡。

最初,当我测试这个对话框时,我让它作为一个单独的对话框窗口 ( dialog.DoModal()) 运行。当我将它作为单独的对话框窗口运行时,该SetWindowPos()功能起作用,并且我成功地将CPropertySheet对象移动到正确的位置。

但是,然后我尝试将其合并CPropertyPage到另一个 parentCPropertySheet中。这是该SetWindowPos()功能不起作用的时候。

CPropertySheet当我有 a时 ,它似乎忽略了它CPropertyPage,它包含在 another 中CPropertySheet。有人知道为什么吗?

已编辑:添加了额外的代码和图片。

编码:

窗格“pane.h”:

顶部CPropertySheet,顶部.h:

顶部CPropertySheet,顶部.cpp:

对话框'CMyDlg',MyDlg.h:

对话框'CMyDlg',MyDlg.cpp:

就是.doModal()我的CMyDlg.

就是在顶部绘制底部时绘制的内容。

0 投票
1 回答
140 浏览

c++ - 如何在 CPropertySheet 中定义新颜色?

我正在尝试在 CPropertySheet(mfc 库)的某些区域中定义新颜色。我尝试过的是重载OnCtlColor并定义新的背景颜色。这种方法效果很好,但它不会给我想要的区域着色。

在下一张图片中,您可以看到我的方法得到了什么。

控件的图像

在此图像中,您可以看到 4 个彩色区域:

  1. 红色:我可以使用着色的区域OnCtlColor
  2. 深灰色和黑色:我可以使用OnCtlColor 对象 CPropertyPage 着色的区域
  3. 浅灰色(用蓝色箭头表示):我要着色的区域
  4. 白边:我也想着色的区域。

我不知道如何使用这个库或使用任何可定制的对象为所有区域着色。任何帮助将不胜感激。

谢谢!

更新 1

在阿德里安的回答之后,它看起来像这样

但是,仍有一个区域我们无法着色。

回答

在尝试很多组合之前,我已经完成了接下来的两个对象,这让我可以定义我需要的颜色。你可以找到后面的所有源代码。这段代码的结果可以在这张图片中查看

属性页

标题

cpp

属性表

标题

cpp

0 投票
1 回答
135 浏览

c++ - 如何获取 CPropertySheet 对象的可见客户端矩形?

我正在尝试更改我的 MFC CPropertySheet 对象的一些颜色。我可以更改我想要的所有区域的颜色。但是,我仍然无法控制一个区域。这是我的代码得到的图像。

在此处输入图像描述

如您所见,我可以使用下面的代码在顶部和左侧边距上绘制一个细边框。

但是,我不能使用相同的方法来绘制其他的(底部和右侧边框)。我认为我使用的矩形比屏幕上显示的要大,但我不知道该怎么做才能得到那个矩形。

有人知道该怎么做吗?