zoukankan      html  css  js  c++  java
  • CComboBox的禁用项目

    介绍

    这个类扩展了通常的组合框,可以禁用某些项。这些项目列在组合框中,但用户无法选择它们。

    基本推导分为四个部分:

      通过使组合框为owner-draw,我们可以用不同的颜色绘制禁用的项。覆盖所包含的列表框的WM_LBUTTONUP处理程序,我们实际上可以禁用对禁用项目的单击。重写CharToItem处理程序,我们可以禁用选择禁用项目的键盘。最后,通过对反映的CBN_SELENDOK做出反应,我们可以确保一个被禁用的项目没有被选中(由于CExtendedComboBox实现中的bug)。

    我们敦促读者仔细研究代码,以理解CExtendedComboBox类的内部结构。

    使用WM_CTLCOLORLISTBOX消息进行子类化来自另一篇文章。

    如何使用类

    CExtendedComboBox类是CComboBox的一个临时替换。你只需#include "ExtendedComboBox。而不是CComboBox类,你使用cdialog派生类的CExtendedComboBox类。

    CExtendedComboBox的行为是可定制的重写:

    virtual BOOL IsItemEnabled(UINT) const;

    这个函数将项的索引作为参数(该函数必须显式地检查参数是否超出范围)。它将返回TRUE / FALSE。默认实现使用项数据的最低有效位。

    这个类应该适用于所有组合框样式(CBS_SIMPLE、CBS_DROPDOWN和CBS_DROPLIST),尽管它只在CBS_DROPDOWN上进行了彻底的测试。组合框必须标记为CBS_OWNERDRAWFIXED (CBS_OWNERDRAWVARIABLE是可能的,但需要对代码进行一些更改)和CBS_HASSTRINGS。

    我有兴趣听到任何意见。

    历史

    • 2000年4月15日:初始版本

    许可证

    本文没有附带明确的许可,但可能包含文章文本或下载文件本身的使用条款。如果有疑问,请通过下面的讨论区联系作者。可以在这里找到作者可能使用的许可证列表。

    本文转载于:http://www.diyabc.com/frontweb/news13561.html

  • 相关阅读:
    SqlBulkCopy实现大容量数据快速插入数据库中
    防查询语句注入漏洞攻击
    wpf中数据绑定(Datacontext)的应用
    WPF中StackPanel的使用方法
    可空类型的使用《二》
    关于可空数据类型的介绍
    C# 之泛型详解
    C# 之String以及浅拷贝与深拷贝
    C# 小软件部分(二)
    MVC 之HTML辅助方法
  • 原文地址:https://www.cnblogs.com/Dincat/p/13477437.html
Copyright © 2011-2022 走看看