65.9K
CodeProject 正在变化。 阅读更多。
Home

CCheckStatic

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.94/5 (16投票s)

2001年3月13日

viewsIcon

113157

downloadIcon

1843

一个静态派生类,提供一个复选框来启用/禁用其内部的项目。

  • 下载源代码文件 - 17 Kb
  • 下载演示项目 - 7 Kb
  • Sample Image - CCheckStatic.gif

    引言

    最近在工作中,我被要求帮忙将一个按钮放在静态框的顶部,但决定编写一个封装所需行为的类。我当时并没有立即行动,直到昨晚我的儿子哭闹着让我无法入睡,这个想法才又浮现在我半睡半醒的状态中。

    基本思想是这样的:如果你拖动一个静态框来限定一些控件,你可以在头文件中更改变量类型为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礼品券到上面的地址,随你喜欢。

    © . All rights reserved.