CCheckStatic






4.94/5 (16投票s)
2001年3月13日

113157

1843
一个静态派生类,提供一个复选框来启用/禁用其内部的项目。
引言
最近在工作中,我被要求帮忙将一个按钮放在静态框的顶部,但决定编写一个封装所需行为的类。我当时并没有立即行动,直到昨晚我的儿子哭闹着让我无法入睡,这个想法才又浮现在我半睡半醒的状态中。
基本思想是这样的:如果你拖动一个静态框来限定一些控件,你可以在头文件中更改变量类型为CCheckStatic
,然后你就会自动在静态框的左上角获得一个复选框,并且选中/取消选中该框将启用/禁用框内具有制表符停止位的任何控件(嗯,差不多,请阅读演示屏幕以了解一些已知问题)。当我提到“自动”时,请不要忘记需要在OnInitDialog中调用Init()方法来完成所有设置。
如果你想更进一步,你可以简单地添加你想要控制的项目的ID,并且只有这些项目会受到影响。这允许你排除框内的项目,也可以包含框外的项目。这也意味着框中的每个项目不需要制表符停止位。所以这可能是最好的方法,但它需要更多的设置,而且我一直喜欢一个类能够照顾好自己,同时保持灵活性,因此两种行为都提供给你选择...
以下是CCheckStatic
公开的方法列表。希望它相当清晰易懂。
//void Init(); // Though shalt always call this before using my class. //int AddItem(int ID); // Adds a control to the custom list //void ClearItems(); // Empties the custom list //void SetCheck(BOOL check); // Sets the check state and toggles dialog items
这就是我所要说的全部。欢迎随时发送建议/批评/FatBrain礼品券到上面的地址,随你喜欢。