我想将这个按钮的角圆掉,不知道怎么实现较方便
CImageList 里好像有个SetOverlayImage可以设置遮罩
但不知道怎么用,设置遮罩后图片需要什么特殊处理么?CBitmapButton m_OK;
m_OK.SubclassWindow(GetDlgItem(IDOK));
CImageList imageList;
imageList.CreateFromImage(IDB_OKBTN, 71, 4, CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION);
m_OK.SetImageList(imageList);
m_OK.SetImages(0, 1, 2, 3);
m_OK.SetBitmapButtonExtendedStyle(BMPBTN_HOVER, BMPBTN_HOVER);
m_OK.SetToolTipText(_T("确定"));
imageList.Detach();

解决方案 »

  1.   

    兄台,看这个http://www.viksoe.dk/code/fadebutton.htm
      

  2.   

    如果是想实现真正的圆角那么就得RGN,如果只是想圆角处透明弄个掩码色应该就可以,只不过在CLIPCHIDREN样式下需要做点处理
      

  3.   

    还不如设计图片的透明色,让每张图片都有圆角效果,
    imageList.CreateFromImage(IDB_OKBTN, 71, 4, CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION);然后使用红色那个参数换成你的透明色。
      

  4.   


    是不是我将红色那个参数设置成我的透明色就可以将按钮所有具有该颜色的地方透明掉,然后透明的地方显示
    父窗口的背景色?
    我正是需要这种效果,我不需要RGN,只要看上去像圆角就行了,远角又不是很厉害,骗骗眼睛 呵呵
      

  5.   

    http://blog.csdn.net/ToCpp/archive/2009/01/22/3849541.aspx
    看看这个行不
      

  6.   


    呵呵,我仅仅想直接用CBitmapButton
    自己实现的自绘当然没问题的啦