这是我写的一段简单代码,功能是在一个窗口外面画一个宽度为g_iGrayBorder的灰色边框,然后再画一个宽度为g_iWhiteBorder的白色边框,
由于我调用了rc.Inflate(-g_iWhiteBorder, -g_iWhiteBorder);而没有恢复,所以结果应该是白色边框会占有灰色边框g_iWhiteBorder的宽度,
结果灰色边框就变成g_iGrayBorder - g_iWhiteBorder的宽度了,之前都工作的很好,没有问题,可现在我把g_iWhiteBorder设置为了1,(为什么不能为1)
问题就出来了:
顶端和左端都没有问题,灰色宽度还是g_iGrayBorder - g_iWhiteBorder,可是底端和右端就出问题了,灰色宽度是g_iGrayBorder,白色边框没有
占有灰色边框,弄了半天多没想明白是什么,大虾出来帮忙!(我是数了网格发现的)void DrawWindowFrame(HWND hWnd)
{
WINDOWINFO wininfo;
GetWindowInfo(hWnd,&wininfo); HDC hWndDC=GetWindowDC(hWnd);
RECT rect(wininfo.rcWindow); Rect rc( 0, 0, rect.right - rect.left, rect.bottom - rect.top);
Graphics gDC(hWndDC); Pen grayPen( Color(125,125,125), g_iGrayBorder);//gray
grayPen.SetAlignment(PenAlignmentInset);
rc.Inflate(-g_iWhiteBorder, -g_iWhiteBorder);
gDC.DrawRectangle(&grayPen, rc);


Pen whitePen( Color(255,255,255), g_iWhiteBorder);
whitePen.SetAlignment(PenAlignmentInset);
gDC.DrawRectangle(&whitePen,rc); ReleaseDC(hWnd,hWndDC);
}