[MFC]CImageList仅显示黑色的问题

简介:

一、问题代码及截图

    1.1  截图

      1.1.1  Win7

       

      1.1.2  Win2003 / XP

      

    1.2  代码

    CImageList    m_ilTB;
    CBitmap m_about;
    CBitmap m_config;
    CBitmap m_exit;
    m_ilTB.Create( 32 32 , TRUE  |  ILC_COLOR8,  3 0 );
    m_ilTB.SetBkColor(::GetSysColor(COLOR_BTNFACE));
// :GetSysColor(COLOR_BTNFACE)

    
// RGB(0, 0, 0) &m_config
    
// HICON hIcon = NULL;
    m_config.LoadBitmap(IDB_BITMAP_CONFIG);
    m_ilTB.Add(
& m_config, & m_config );

    m_about.LoadBitmap(IDB_BITMAP_ABOUT);
    m_ilTB.Add(
& m_about, & m_about );

    m_exit.LoadBitmap(IDB_BITMAP_EXIT);
    m_ilTB.Add(
& m_exit, & m_exit );
    
    m_toolBar.GetToolBarCtrl().SetImageList(
& m_ilTB);

      代码说明:

        a).  IDB_BITMAP_CONFIGIDB_BITMAP_ABOUTIDB_BITMAP_EXIT为三张bmp图片.

        b).  这段代码加在OnInitDialog中

二、函数说明

    2.1  百度百科:http://baike.baidu.com/view/1725414.htm?fr=ala0_1

    2.2  Add方法

int  Add(
   CBitmap
*  pbmImage,
   CBitmap
*  pbmMask 
);
int  Add(
   CBitmap
*  pbmImage,
   COLORREF crMask 
);
int  Add(
   HICON hIcon 
);

      1.2中是用的第一个重载,关键是第二个参数pbmMask,网络上的翻译是:指向包含掩码的位图的指针。如果无掩码与图象列表一起使用,此参数被忽略。而后来翻阅资料才知道一般人用的是第二个方法重载,通过crMask来实现透明效果。

三、正常代码

    m_config.LoadBitmap(IDB_BITMAP_CONFIG);
    m_ilTB.Add(
& m_config,RGB( 255 , 255 , 255 ));

    m_about.LoadBitmap(IDB_BITMAP_ABOUT);
    m_ilTB.Add(
& m_about,RGB( 255 , 255 , 255 ));

    m_exit.LoadBitmap(IDB_BITMAP_EXIT);
    m_ilTB.Add(
& m_exit,RGB( 255 , 255 , 255 ));

    修改完后在XP、2003、Win7下居显示正常!

本文转自博客园农民伯伯的博客,原文链接:[MFC]CImageList仅显示黑色的问题,如需转载请自行联系原博主。

目录
相关文章
|
人工智能 自然语言处理 物联网
RoSA: 一种新的大模型参数高效微调方法
随着语言模型不断扩展到前所未有的规模,对下游任务的所有参数进行微调变得非常昂贵,PEFT方法已成为自然语言处理领域的研究热点。PEFT方法将微调限制在一小部分参数中,以很小的计算成本实现自然语言理解任务的最先进性能。
417 1
|
存储 缓存 固态存储
冯诺依曼体系究竟是什么?
冯诺依曼体系究竟是什么?
1447 0
|
安全 机器人 云计算
计算巢AppFlow-如何在钉钉群实现智能答疑
随着大模型能力越来越强大,利用大语言模型进行智能答疑已经成为了一个非常普遍和常见的场景。然而,各个产品或业务方要能够准确有效地进行答疑,仅依靠大模型的通用能力是远远不够的,这时候利用私有领域FAQ文档进行大模型的检索增强生成往往可以有效解决上述问题。
|
人工智能 数据可视化 数据处理
快速在 PaddleLabel 标注的花朵分类数据集上展示如何应用 PaddleX 训练 MobileNetV3_ssld 网络
快速在 PaddleLabel 标注的花朵分类数据集上展示如何应用 PaddleX 训练 MobileNetV3_ssld 网络
1064 0
快速在 PaddleLabel 标注的花朵分类数据集上展示如何应用 PaddleX 训练 MobileNetV3_ssld 网络
|
2月前
|
安全 数据可视化 BI
零代码2小时搭建一套轻量级ERP系统
很多企业在实施ERP时面临周期长、成本高、上线难等问题。本文介绍如何利用零代码工具快速搭建“轻量ERP”,聚焦核心业务流程,实现快速验证与迭代。通过流程、数据、规则和可视化四步法,企业可在两小时内完成系统上线,提升业务效率并降低实施风险。
|
11月前
|
数据采集 人工智能 DataWorks
DataWorks产品最佳实践测评
DataWorks产品最佳实践测评
|
9月前
|
SQL 分布式计算 DataWorks
轻松搞定,数据开发与分析也能如此简单方便!
DataWorks 是一站式智能大数据开发治理平台,支持阿里云多种大数据和AI计算服务。本次实验将引导您使用Data Studio中的Notebook开发环境,创建个人开发实例,连接MaxCompute等资源进行SQL开发,并体验Python数据分析及DataWorks Copilot智能助手功能。实验涵盖Notebook新建、多引擎SQL开发、交互式分析及智能数据探索,帮助用户快速上手DataWorks的智能化数据开发与管理功能。
|
11月前
|
存储 人工智能 项目管理
提升企业竞争力的关键:探索多人协同办公的优势与挑战
本文介绍了多人协同办公的背景、工具及优势。随着全球化和技术的发展,远程办公和跨区域协作成为趋势,企业依赖云计算、大数据等技术实现高效团队协作。文章详细介绍了云协作平台、即时通讯工具、项目管理工具和文件共享工具,并探讨了多人协同办公在提升工作效率、跨地域协作、促进创新和增强团队透明度等方面的优势。最后,展望了未来多人协同办公的创新方向,包括人工智能、虚拟现实和工具深度集成等。
|
12月前
|
边缘计算 人工智能 安全
探索边缘计算:架构、优势及未来趋势
探索边缘计算:架构、优势及未来趋势