SetWindowRgn后下边界和右边界绘制失效解决方法
SetWindowRgn后下边界和右边界绘制失效
如题,本来右边界和下边界是可以绘制的,但是在OnPaint里设置SetWindowRgn后,下边界和右边界变成了白色,上边和左边是正常的。这是为何?如果SetWindowRgn放在初始化里边,压根就没效果。SetWindowRgn究竟应该放在哪里呢?
------解决方案--------------------
构建rgn的时候 右 下各加1px
------解决方案--------------------
放在onsize里面
如题,本来右边界和下边界是可以绘制的,但是在OnPaint里设置SetWindowRgn后,下边界和右边界变成了白色,上边和左边是正常的。这是为何?如果SetWindowRgn放在初始化里边,压根就没效果。SetWindowRgn究竟应该放在哪里呢?
- C/C++ code
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); } 只剩下三分了
------解决方案--------------------
构建rgn的时候 右 下各加1px
------解决方案--------------------
放在onsize里面