Rliny
2016-07-11 15:27
采纳率: 100%
浏览 3.0k
已采纳

DuiLib界面库中控件圆角半径有锯齿,怎么使用GDI+改善啊?

void CRenderClip::GenerateRoundClip(HDC hDC, RECT rc, RECT rcItem, int width, int height, CRenderClip& clip)
{
RECT rcClip = { 0 };
::GetClipBox(hDC, &rcClip);
clip.hOldRgn = ::CreateRectRgnIndirect(&rcClip);
clip.hRgn = ::CreateRectRgnIndirect(&rc);
HRGN hRgnItem = ::CreateRoundRectRgn(rcItem.left, rcItem.top, rcItem.right + 1, rcItem.bottom + 1, width, height);
::CombineRgn(clip.hRgn, clip.hRgn, hRgnItem, RGN_AND);
::ExtSelectClipRgn(hDC, clip.hRgn, RGN_AND);
clip.hDC = hDC;
clip.rcItem = rc;
::DeleteObject(hRgnItem);
}
这个函数里应该是用GDI实现的一个圆角半径区域剪裁,怎么用GDI+实现,去除锯齿呢?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2016-07-11 20:27
    已采纳

    dc->SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);
    http://blog.csdn.net/pjl1119/article/details/17349049

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Rliny 2016-07-13 02:01

    我自己已经解决了这个问题

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题