WTL的CBitmapButton 位图按钮圆角处理问题

hurryboylqs 2009-10-09 11:34:55
我想将这个按钮的角圆掉,不知道怎么实现较方便
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();
...全文
617 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hurryboylqs 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xylicon 的回复:]
引用 5 楼 hurryboylqs 的回复:


是不是我将红色那个参数设置成我的透明色就可以将按钮所有具有该颜色的地方透明掉,然后透明的地方显示
父窗口的背景色?

是的。
[/Quote]
验证过,就是需要这种效果,嘿嘿
xylicon 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hurryboylqs 的回复:]


是不是我将红色那个参数设置成我的透明色就可以将按钮所有具有该颜色的地方透明掉,然后透明的地方显示
父窗口的背景色?[/Quote]

是的。
hurryboylqs 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tocpp 的回复:]
http://blog.csdn.net/ToCpp/archive/2009/01/22/3849541.aspx
看看这个行不
[/Quote]

呵呵,我仅仅想直接用CBitmapButton
自己实现的自绘当然没问题的啦
ToCpp 2009-10-10
  • 打赏
  • 举报
回复
hurryboylqs 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xylicon 的回复:]
还不如设计图片的透明色,让每张图片都有圆角效果,
imageList.CreateFromImage(IDB_OKBTN, 71, 4,CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION);

然后使用红色那个参数换成你的透明色。
[/Quote]

是不是我将红色那个参数设置成我的透明色就可以将按钮所有具有该颜色的地方透明掉,然后透明的地方显示
父窗口的背景色?
我正是需要这种效果,我不需要RGN,只要看上去像圆角就行了,远角又不是很厉害,骗骗眼睛 呵呵
wutaihua 2009-10-09
  • 打赏
  • 举报
回复
mark
xylicon 2009-10-09
  • 打赏
  • 举报
回复
还不如设计图片的透明色,让每张图片都有圆角效果,
imageList.CreateFromImage(IDB_OKBTN, 71, 4, CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION);

然后使用红色那个参数换成你的透明色。
ToCpp 2009-10-09
  • 打赏
  • 举报
回复
如果是想实现真正的圆角那么就得RGN,如果只是想圆角处透明弄个掩码色应该就可以,只不过在CLIPCHIDREN样式下需要做点处理
chenyu2202863 2009-10-09
  • 打赏
  • 举报
回复
兄台,看这个http://www.viksoe.dk/code/fadebutton.htm

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧