Jianchidaodi
面朝大海,春暖花开

      记得 Windows 里的快捷方式么,将你的程序拖到桌面上建立一个快捷方式,不论程序用的是什么IconMicrosoft都会在Icon左下脚加上一个小小的箭头,很好玩是不是?下面我提供两种方式来实现这种效果:

1. 直接利用HICON CreateIconIndirect ( PICONINFO piconinfo );

HICON CombineIcon(
                 HICON hBaseIcon, 
//底层Icon,yi:xFc(`WDM教育N=yz"放在下面的那个

                 HICON hTopIcon, 
//上层Icon,盖在上面的那个
                 

                 
int iWidth, //Icon的宽度

                 
int iHeight, //Icon的高度

                 COLORREF colorkey
//透明色

                 )
{
    HDC hdc 
= GetDC(NULL);

    //建立一个兼容DC,用于作图

    HDC memdc 
= CreateCompatibleDC(hdc);

     //注意,这里的参数dc不能为兼容dc,否则就是单色位图

    HBITMAP membmp 
= (HBITMAP)CreateCompatibleBitmap(hdc, 3232);

    HBITMAP oldbmp 
= (HBITMAP)SelectObject(memdc, membmp);

    HBRUSH br 
= (HBRUSH)GetStockObject(colorkey);    
    
    RECT rect;
    rect.left 
= 0;
    rect.right 
= 32;
    rect.top 
= 0;
    rect.bottom 
= 32;

    SelectObject(memdc, br);

    //填充透明色

    FillRect(dc, 
&rcct, br); 


    DrawIconEx(memdc, 
00, hBaseIcon, iWidth, iHeight0, NULL, DI_NORMAL);  

    DrawIconEx(memdc, 
00, hTopIcon , iWidth, iHeight0, NULL, DI_NORMAL);
   
     //保持图片

    SelectObject(memdc, oldbmp);

    ICONINFO info;

    info.fIcon 
= true;
    info.hbmMask 
= CreateBitmap(323211, NULL);
    info.hbmColor 
= membmp;

    return
 CreateIconIndirect(&info);


}


2. 利用ImageList.ExtractIcon 将bitmap 转化成Icon



posted on 2006-11-15 10:56  Jianchidaodi  阅读(932)  评论(0编辑  收藏  举报