我在Windows XP平台上使用Visual Studio 6.0(VC++与MFC)。我正在尝试创建一个组框,并将组框的标题作为复选框。我的意图是这样的:如果启用该复选框,则应启用组框内的控件;否则禁用。

这有可能实现吗?如果是,请给我一些指示。

谢谢。

有帮助吗?

解决方案

您可以尝试以下几种方法,具体取决于您想要坚持自己的想法的真实程度以及您准备投入多少工作:

简单方法

使用普通的组框,然后在其中将第一项设为复选框。这很容易完成,但是您失去了将复选框作为标题的目标。

时髦的绘画方法1

使用普通的组框,然后在您知道标题所在的空间中放置复选框。您将必须执行一些棘手的计算才能使其很好地适应并绘制得很好而不闪烁。

时髦的绘画方法2

使用某种形式的 超类 或者 子类/子类 在组框上。您可以重写 WM_PAINT 处理程序以仅绘制组框的框架。在您知道标题所在的位置放置一个普通复选框。这应该效果更好,因为您可以更好地控制绘图,但正确执行可能会很困难。根据我的经验,子类化的实施风险比超类化要低。

其他提示

您使用对话框编辑器?如果是这样,放下组框。接下来,在它的上面,把复选框在组框的线。编辑资源设置Z顺序,或做在代码。你想要的复选框要对组框的顶部。取决于复选框状态添加处理程序的复选框和允许/禁止的控制。

我写了一个叫CGroupCheck几年回来了,它可以从CodeProject: HTTP: //www.codeproject.com/KB/buttons/groupcheck123.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top