Я рисую прямоугольник (в OpenGL), а угол зависит от положения курсора. Я изменяю положение пикселя в положение с плавающей точкой, но мне нужны ширина и высота (которые где-то сохраняются).
Итак, я провел некоторый тест, и в окне 1024×512 верхний левый угол действительно (0,0), но нижний угол (1007,473) или что-то рядом.
Теперь все работает нормально, но если окно будет изменено, то оно, очевидно, больше не будет работать, поэтому вот мой вопрос:
Как я могу получить размер границы?
Таким образом, я думаю, что могу вычесть его из размера окна и получить правильную позицию для моего курсора, чтобы нарисовать прямоугольник.
На окнах вы можете использовать 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;
Других решений пока нет …