• CreateCheckboxImageList -一个非mfc函数,用于创建主题化复选框的imagelist


    介绍 复选框图像通常在树控件和 列表控件,其中使用一个实际的复选框控件 困难或将导致创建大量的子控件。 我使用的是早期版本的CreateCheckboxImageList 在我XHtmlTree 篇文章。在这个版本中,我删除了MFC依赖关系 并添加选项来指定复选框图像的大小。 感谢赵玉恒的出色表现 视觉风格 我使用它作为uxtheme.dll包装器的基础。 CreateCheckboxImageList API 下面是CreateCheckboxImageList函数: 隐藏,复制Code

    //=============================================================================
    //
    // CreateCheckboxImageList()
    //
    // Purpose:     Create themed checkbox image list
    //
    // Parameters:  hDC              - device context for drawing
    //              nSize            - height and width of images
    //              crBackground     - fill color
    //              bUseVisualThemes - TRUE = use themes if enabled
    //
    // Returns:     HIMAGELIST       - imagelist handle; NULL if create fails
    //

    的CreateCheckboxImageList函数创建一个图像列表 16幅图像,按此枚举定义: 隐藏,复制Code

    enum { COLD_UNUSED_1 = 0,        // 0000
           COLD_UNCHECKED_NORMAL,    // 0001
           COLD_CHECKED_NORMAL,      // 0010
           COLD_TRISTATE_NORMAL,     // 0011
    
           COLD_UNUSED_2,            // 0100
           COLD_UNCHECKED_DISABLED,  // 0101
           COLD_CHECKED_DISABLED,    // 0110
           COLD_TRISTATE_DISABLED,   // 0111
    
           HOT_UNUSED_1,             // 1000
           HOT_UNCHECKED_NORMAL,     // 1001
           HOT_CHECKED_NORMAL,       // 1010
           HOT_TRISTATE_NORMAL,      // 1011
    
           HOT_UNUSED_2,             // 1100
           HOT_UNCHECKED_DISABLED,   // 1101
           HOT_CHECKED_DISABLED,     // 1110
           HOT_TRISTATE_DISABLED };  // 1111
    

    前8张图片是“冷的”,后8张是“热的”。从 从冷到热,你可以或以8为状态。从正常转换到 禁用后,可以或状态用4。 在MFC应用程序中使用CreateCheckboxImageList 它很容易使用CreateCheckboxImageList与MFC通过简单 将HIMAGELIST附加到CImageList: 隐藏,复制Code

    HIMAGELIST hil = 0;
    hil = HDCheckboxImageList::CreateCheckboxImageList(pDC->m_hDC, 16,
            GetSysColor(COLOR_WINDOW), TRUE);
    CImageList imagelist;    // usually this will be class variable
    imagelist.Attach(hil);
    

    CreateCheckboxImageList演示 CreateCheckboxImageList演示应用程序显示四个图像列表 不同的尺寸: 当启用可视主题复选框未选中时,复选框 没有创建视觉主题: 如何使用 步骤1 -添加文件 要将CreateCheckboxImageList集成到应用程序中,首先需要 添加以下文件到您的项目: CreateCheckboxImageList.cpp cpp文件应该设置为不使用预编译头 在Visual Studio。否则,您将得到错误 隐藏,复制Code

    fatal error C1010: unexpected end of file while looking for precompiled header directive
    

    步骤2 -添加头文件到源模块 在你想使用CreateCheckboxImageList的模块中, 包含头文件createcheckboximaglib .h。 步骤3 -添加代码 在OnInitDialog或其他初始化例程中, 添加创建imagelist的代码,然后在其中绘制适当的图像 DrawItem()或OnPaint()函数。 文件XVisualStyles.h包含头文件 uxtheme.h tmschema.h。这些文件可以在 Windows平台的SDK。通常,在这里我将插入下载url 对于平台SDK,但是它的位置经常变化,所以最好 让谷歌为你找到它: http://www.google.com/search?q=%22platform + sdk % 22。 修订历史 版本1.1 - 2008年4月15日 首次公开发行 版本1.0 - 2007年7月15日 嵌入在XHtmlTree 使用 这个软件被发布到公共领域。你可以自由使用它 以您喜欢的任何方式,除了您不能出售此源代码。如果你 修改或扩展它,请考虑张贴新的代码在这里为每个人 与你分享。本软件是“按原样”提供的,没有任何明示或暗示 保修。我不承担任何损害或损失的业务 此软件可能导致。 本文转载于:http://www.diyabc.com/frontweb/news758.html

  • 相关阅读:
    SAP training scope SAP从入门到精通课程体系
    萨提亚·纳德拉
    说说为什么不再写博客了
    课上用过的Linux命令
    中国商用密码生产企业和商用密码产品及标准
    在Python中运行gmssl
    基于CMPP协议集成短信测试桩全流程实践分享 做梦的人
    mysqlslap: Error when connecting to server: 1064 Reach limit of connections 做梦的人
    大数据清洗表中没有找到对应表 做梦的人
    自动生成镜像,在上传到仓库 做梦的人
  • 原文地址:https://www.cnblogs.com/Dincat/p/13456095.html
Copyright © 2020-2023  润新知