Перейти к содержанию
Авторизация  
Senpai

c++ Координаты клиентской области окна относительно рабочего стола

Рекомендуемые сообщения

rHWyk6kbDt8.jpg
Как получить вот эти координаты ?
GetClientRect возвращает только размер.
GetWindowRect возвращает координаты самого окна

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
57 минут назад, Senpai сказал:

Как получить вот эти координаты ?

может тут ( в самом последнем посте) - подойдёт -ТЫК

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, Garik66 сказал:

может тут ( в самом последнем посте) - подойдёт -ТЫК

Забыл уточнить. У чужого окна надо узнать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты скажи, что ты хочешь сделать. Зачем тебе относительно рабочего стола координаты?  И скрин не видно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, JustHack сказал:

Ты скажи, что ты хочешь сделать. Зачем тебе относительно рабочего стола координаты?  И скрин не видно.

629367dedf5942fd628649771dfd4190.jpg
а так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FindWindow + GetWindowRect

image.png.0166c370614c69177f609c881b068aaf.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, partoftheworlD сказал:

FindWindow + GetWindowRect

image.png.0166c370614c69177f609c881b068aaf.png

f24f39eb85ac8993bfa280606055a718.jpg
нуу, так ведь? Это ж не то.

"извлекает размеры рамки ограничивающей прямоугольник заданного окна. Размеры даются в экранных координатах, которые
отсчитываются относительно левого верхнего угла экрана"
А мне надо без обводки. Крч, координаты клиентской области

Изменено пользователем Senpai

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, Senpai сказал:

нуу, так ведь? Это ж не то

А если подумать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, Senpai сказал:

А мне надо без обводки. Крч, координаты клиентской области

Вычитай значит просто толщину этой рамки и все. Оно будет статично, что на win7, что на win10
 

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, roma91212 сказал:

Вычитай значит просто толщину этой рамки и все. Оно будет статично, что на win7, что на win10
 

Ну вот, все сломал.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, roma91212 сказал:

Вычитай значит просто толщину этой рамки и все. Оно будет статично, что на win7, что на win10
 

а если рамки нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, вот решение:

void GetWindowPos(HWND hWnd, int *x, int *y)
{
    POINT p = { 0 };
    MapWindowPoints(hWnd, GetDesktopWindow(), &p, 1);
    (*x) = p.x;
    (*y) = p.y;
}

Всем спасибо
 

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, Senpai сказал:

вот решение

Решение чего? Ты же так и не ответил, что за задача перед тобой стоит. Если ты делаешь что-то в игре, то узнать размер области можно 2 строчками кода, без всех этих костылей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.