我在Windows XP平台上使用Visual Studio 6.0(VC ++ with MFC)。我正在尝试创建一个具有组框标题的组框作为复选框。我的意图是:如果启用了复选框,则应启用组框内的控件;或者禁用。
这有可能实现吗?如果是,请给我一些指示。
感谢。
答案 0 :(得分:5)
您可以尝试一些事情,具体取决于您希望保持理念的真实程度以及您准备投入多少工作:
使用普通的组框,然后在其中使第一个项目成为复选框。这很容易实现,但是你失去了将复选框作为标题的目标。
使用普通的组框,然后在您知道标题的位置,放置您的复选框。你将不得不执行一些棘手的计算,以使其适应性很好,并且没有闪烁地画好。
在群组框中使用某种形式的superclass或subclass / subclass。您可以覆盖WM_PAINT处理程序以仅绘制组框的框架。在您知道标题的位置放置一个普通的复选框。这应该会更好,因为你可以更好地控制绘图,但是要做到正确可能会很棘手。根据我的经验,子类化实现的风险低于超类。
答案 1 :(得分:4)
您使用的是Dialog编辑器吗?如果是这样,请放下组框。接下来,在它上面,在组框的行上放置一个复选框。编辑资源以设置Z顺序,或在代码中执行。您希望复选框位于组框的顶部。为复选框添加处理程序,并根据复选框状态启用/禁用控件。
答案 2 :(得分:1)
几年前我写了一篇名为CGroupCheck的文章,它可以从CodeProject获得:http://www.codeproject.com/KB/buttons/groupcheck123.aspx