MFC CDC クラスと LineTo および MoveTo 関数を使用して描画するときに問題があります。CDC オブジェクトは、ポインターを移動した時点から始まらず、画像の中央のように最初のピクセル ブランクを残します。画像の左側のように角を描くと、CDC オブジェクトが最も外側のピクセルを解放していることは明らかです。カスタム ブラシを読み込もうとしましたが、異なる結果は得られませんでした。
memDC.FillSolidRect(client, BACKGROUND_COLOR);
CPen penBorder(PS_ENDCAP_SQUARE | PS_SOLID, BORDER_WIDTH, BORDER_COLOR);
//Draw the Horizontal line for the Status Bar
CPen* oldPen = memDC.SelectObject(&penBorder);
memDC.MoveTo(client.left + 0.5f * BORDER_WIDTH, client.top + 0.5f * BORDER_WIDTH);
memDC.LineTo(client.Width() - 0.5f * BORDER_WIDTH, client.top + 0.5f * BORDER_WIDTH);
CPen penRecess(PS_ENDCAP_SQUARE | PS_SOLID, BORDER_WIDTH, RECESS_COLOR);
//Draw the recess
memDC.SelectObject(&penRecess);
memDC.MoveTo(client.left + 1.5f * BORDER_WIDTH, client.top + 1.5f * BORDER_WIDTH);
memDC.LineTo(client.Width() - 0.5f * BORDER_WIDTH, client.top + 1.5f * BORDER_WIDTH);