[MFC]CImageList仅显示黑色的问题
来源:农民伯伯 责任编辑:栏目编辑 发表时间:2013-07-01 12:00 点击:次
前言
鼓捣MFC中的工具栏时用到了CImageList,没仔细翻阅资料就开始用,结果出现了Win7 (32/64bit)系统中显示没问题,到xp和2003下就只显示黑色的问题...
正文
一、问题代码及截图
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;
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);
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_CONFIG、IDB_BITMAP_ABOUT、IDB_BITMAP_EXIT为三张bmp图片.
b). 这段代码加在OnInitDialog中
二、函数说明
2.1 百度百科:http://baike.baidu.com/view/1725414.htm?fr=ala0_1
2.2 Add方法