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

  • 相关阅读:
    ActiveMQ的作用总结(应用场景及优势)
    深入剖析ThreadLocal实现原理以及内存泄漏问题
    Java ThreadLocal 原理分析
    关于iview ui的"Page分页"组件的使用
    使用TortoiseGit操作分支的创建与合并
    乐观锁与悲观锁的区别
    Linux下如何安装MongoDB及配置
    centos8安装图解(超详细教程)
    SpringBoot整合MongoDB
    PPT学习---醍醐灌顶!你对PPT的理解过时了!
  • 原文地址:https://www.cnblogs.com/Dincat/p/13477437.html
Copyright © 2011-2022 走看看