Как мы можем получить размер границы окна?

Я рисую прямоугольник (в OpenGL), а угол зависит от положения курсора. Я изменяю положение пикселя в положение с плавающей точкой, но мне нужны ширина и высота (которые где-то сохраняются).

Итак, я провел некоторый тест, и в окне 1024×512 верхний левый угол действительно (0,0), но нижний угол (1007,473) или что-то рядом.

Теперь все работает нормально, но если окно будет изменено, то оно, очевидно, больше не будет работать, поэтому вот мой вопрос:

Как я могу получить размер границы?
Таким образом, я думаю, что могу вычесть его из размера окна и получить правильную позицию для моего курсора, чтобы нарисовать прямоугольник.

0

Решение

На окнах вы можете использовать GetWindowRect а также GetClientRect

RECT windowRect;
GetWindowRect(hwnd, &windowRect);

RECT clientRect;
GetClientRect(hwnd, &clientRect);

int borderWidth = ((windowRect.right - windowRect.left) - (clientRect.right -clientRect.left))/2;

Хоть GetClientRect должен дать вам внутреннюю ширину окна, и этого должно быть достаточно для вас.

int innerWidth = clientRect.right - clientRect.left;
2

Другие решения

Других решений пока нет …