SetWindowRgn后下边界和右边界绘制失效

假正经的班长 2011-10-23 09:39:00
如题,本来右边界和下边界是可以绘制的,但是在OnPaint里设置SetWindowRgn后,下边界和右边界变成了白色,上边和左边是正常的。这是为何?如果SetWindowRgn放在初始化里边,压根就没效果。SetWindowRgn究竟应该放在哪里呢?

void CHFWCtlDlgBase::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CDialog::OnPaint() for painting messages
CRect rcBck;
//边界圆角
CRgn rgn;
CRect RectToRound;
GetWindowRect(&RectToRound);
RectToRound.OffsetRect(-RectToRound.TopLeft());
rgn.CreateRoundRectRgn(RectToRound.left, RectToRound.top, RectToRound.right, RectToRound.bottom, 10, 10);
SetWindowRgn(rgn, TRUE);

//背景色
GetClientRect(rcBck);
dc.FillSolidRect(rcBck, BASEDLGBGCOLOR);
}

只剩下三分了
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnzlk 2011-10-25
  • 打赏
  • 举报
回复
放在onsize里面
wlwlxj 2011-10-25
  • 打赏
  • 举报
回复
构建rgn的时候 右 下各加1px
假正经的班长 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hnzlk 的回复:]

放在onsize里面
[/Quote]

非常感谢,不过我的对话框暂时是固定大小的,估计等改为可变大小时就写在Onsize里,非常感谢
假正经的班长 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wlwlxj 的回复:]

构建rgn的时候 右 下各加1px
[/Quote]

太感谢了,真的右、下各加一像素以后问题解决!!!真的太感谢了!!
假正经的班长 2011-10-24
  • 打赏
  • 举报
回复
UPUPUP

1,649

社区成员

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

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