SetWindowRgn后下边界和右边界绘制失效解决方法

SetWindowRgn后下边界和右边界绘制失效
如题,本来右边界和下边界是可以绘制的,但是在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里面