有的图标文件中不是又分成几个小图标吗?就像VC中默认提供的那个"MFC"一样,它一个文件中有一个32*32,一个16*16共两个图标,那如果我要在程序中得到第二个(即16*16)图标句柄HICON应该怎么做?

解决方案 »

  1.   

    CImageList可以得到,但是好象必须是等大的,不知道不等大的行不行.
    关注
    我去翻翻资料去.
      

  2.   

    Call this member function to set the handle to a specific icon, as identified by hIcon.HICON SetIcon(
       HICON hIcon,
       BOOL bBigIcon 
    );
    Parameters
    hIcon 
    A handle to a previous icon. 
    bBigIcon 
    Specifies a 32 pixel by 32 pixel icon if TRUE; specifies a 16 pixel by 16 pixel icon if FALSE. 
    Return Value
    A handle to an icon.Res
    When the window class is registered, it selects an icon. 
      

  3.   

    其实我就是想获得这个图标文件里指定索引的任何一个图标,就像Axialis IconWorkshop那样的
      

  4.   

    hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
    MAKEINTRESOURCE(IDI_ICON_TEST), IMAGE_ICON, 16, 16, 0); //small icon
    hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
    MAKEINTRESOURCE(IDI_ICON_TEST), IMAGE_ICON, 32, 32, 0);//big icon
      

  5.   

    tonyswe(tong) 这有什么用啊,你还明白我的意思
    有些图标文件(*.ICO)里就有好几个甚至好几十个不同规格,也可能是不同样式,不同颜色数的图标,我想获取这个图标文件里指定索引的那个,如第11个图标的
      

  6.   

    句柄,用分析文件的方法可以完成,但不知有没有现在的API供调用
      

  7.   

    tonyswe(tong) 这有什么用啊,你还不明白我的意思.
    有些图标文件(*.ICO)里就有好几个甚至好几十个不同规格,也可能是不同样式,不同颜色数的图标,我想获取这个图标文件里指定索引的那个,如第11个图标的句柄,用分析文件的方法可以完成,但不知有没有现在的API供调用
      

  8.   

    *.ico可以放在第二个说的Cimagelist中,这个类就像一个数组,把所有的图片放在里面,在设置的时候,它的成员在creat 的时候分16×16 和32×32,如果你想用某个ico的时候,直接用它的索引值
      

  9.   


    m_imagesmalllist.Create(16,16,flase,1,0);
    m_imagebiglist.Create(32,32,false,1,0);
    HICON hicon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ROUND));
    m_imagesmalllist.Add(hicon);
    hicon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2));
    m_imagebiglist.Add(hicon);
      

  10.   

    楼上的可能还没明的我的意思.
    有些图标文件(*.ICO),它的一个文件里就有好几个甚至好几十个不同规格,也可能是不同样式,不同颜色数的图标(也就意味着加入工程后也只有一个ID,如:IDI_FULL),我想获取这个图标文件里指定索引的那个,如第11个图标的句柄,用分析文件的方法可以完成,但不知有没有现在的API供调用.
    虽然我现在用不到这个功能,可能今后也用不到,但就是想搞明白
      

  11.   

    CImageList BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask );
    假如一个ico文件有5个16×16的图标排列成一行
    m_ImageList.Create(IDB_TREEICONS, 16, 1, RGB(255, 255, 255));
    m_ImageList加载了5个16×16的图标。一个ico文件图标格式应该相同
      

  12.   

    可以不同的,Axialis IconWorkshop就可以把很多不同规格,不同颜色数的图标放到一个ICO文件里