в моем коде:
void Surface::paintBorders(const Color& color, int borderWidth){
HBRUSH colorBrush = CreateSolidBrush(color.getRGB());
RECT border;
//Top Border:
border.top = 0;
border.bottom = borderWidth;
border.left = 0;
border.right = mRect.right - mRect.left;
FillRect(mHDC, &border, colorBrush);
//Bottom border
border.top = mRect.bottom - mRect.top - borderWidth;
border.bottom = mRect.bottom - mRect.top;
border.left = 0;
border.right = mRect.right - mRect.left;
FillRect(mHDC, &border, colorBrush);
//Right border
border.top = 0;
border.bottom = mRect.bottom - mRect.top;
border.left = mRect.right - mRect.left - borderWidth;
border.right = mRect.right - mRect.left;
FillRect(mHDC, &border, colorBrush);
//Left border
border.top = 0;
border.bottom = mRect.bottom - mRect.top;
border.left = 0;
border.right = borderWidth;
FillRect(mHDC, &border, colorBrush);
DeleteObject(colorBrush);
}
окрашиваются только верхняя и левая границы, нижняя и правая - нет. Я цитирую из MSDN:
Эта функция включает левую и верхнюю границы, но исключает правую и нижнюю границы прямоугольника.
Я не знаю, связано это или нет. Я точно знаю, что все координаты в порядке, также параметры HDC и HBRUSH. есть идеи?
ОК, ребята, я получил ответ, очевидно, был получен GetWindowRect вместо GetClientRect, который испортил все координаты