LoadIcon和LoadImage都无法Load入256色以上的ICON,请问如何才能做得到?

解决方案 »

  1.   

    应该是可以的啊,不过对于一个ICON 有很多的格式,你可以先查查你的 ICON 文件大小,另外对于窗体默认是 16*16 的,可能你只有大图标而没有小图标
      

  2.   

    由于VC默认的工具条在加载位图时只认16色位图,现提供以下方法实现。
    1、创建工具条位图,将若干小位图连接成长位图
    然后利用图形工具将其转换为一个灰度图象
    2、将这两个位图(toolbar-256.bmp, toolbar-gray.bmp)拷贝到工程目录中的res目录下。并在工程中导入(如IDR_MAINFRAME_256, IDR_MAINFRAME_GRAY)
    3、在Toolbar创建之后 (一般在OnCreate中, Toolbar对象调用Create方法之后)加入以下代码:
     //加载256色工具条 
     CImageList *pImgList = m_wndToolBar.GetToolBarCtrl().GetImageList();
     int nBtnCnt = pImgList->GetImageCount();
     pImgList->DeleteImageList();
     pImgList->Create(17, 17, ILC_COLOR8 | ILC_MASK, 0, nBtnCnt);
     CBitmap bmp;
     bmp.LoadBitmap(IDR_MAINFRAME_RGB);
     pImgList->Add(&bmp, RGB(192,192,192));
     m_wndToolBar.GetToolBarCtrl().SetImageList(pImgList);
     m_wndToolBar.GetToolBarCtrl().AddBitmap(nBtnCnt,IDR_MAINFRAME_GRAY);
    另外,拼接位图请用photoshop、photoImpact等工具。VC自带的位图编辑工具非常有限而且无法处理灰度图象
      

  3.   

    我问的是HICON,你说的好像全是关于位图,是不是搞错了?