4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
1 | |
Как получить размеры и положение всего окна?03.11.2014, 12:06. Показов 6963. Ответов 24
Метки нет (Все метки)
0
|
03.11.2014, 12:06 | |
Ответы с готовыми решениями:
24
Как установить размеры и положение нового окна? Как получить размеры клиентской области окна-родителя в функции дочернего окна? Как в апплете получить размеры окна броузера? Как помимо сообщения WM_SIZE получить размеры клиентской области окна? |
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.11.2014, 13:46 [ТС] | 3 |
На винде.
0
|
03.11.2014, 13:50 | 4 |
GetWindowRect
Не по теме: Без тебя на форуме скучно..
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
03.11.2014, 14:35 [ТС] | 5 | |||||
0
|
03.11.2014, 15:14 | 6 |
Лично я не понял где там -8 ...
Не совсем по теме: Зачем каждый раз вызывать DefWindowProc? Зачем каждый раз сохранять размер и позицию? Куда записывается позиция, как читается и как устанавливается? Не по теме: Quite - это тихий, Quit - это выход. Добавлено через 21 секунду Лично я не понял где там -8 ... Не совсем по теме: Зачем каждый раз вызывать DefWindowProc? Зачем каждый раз сохранять размер и позицию? Куда записывается позиция, как читается и как устанавливается? Не по теме: Quite - это тихий, Quit - это выход.
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.11.2014, 15:41 [ТС] | 7 |
После выполнения 5-й и 10-й строк.
Добавлено через 23 секунды В файл. Добавлено через 18 секунд read. Добавлено через 41 секунду Просто давлю крысой "развернуть".
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
03.11.2014, 16:09 [ТС] | 9 | |||||
Что не понятного? Жму сюда:
,потом в оконной процедуре
0
|
03.11.2014, 16:25 | 10 |
Теперь хоть что-то понятно. Рамка ушла за приделы экрана, поэтому координаты отрицательные.
Когда ты жмёшь на кнопку "Развернуть", окно получает сообщение WM_SIZE с кодом SIZE_MAXIMIZED в wParam. Если окно "развёрнуто" то информацию об этом тоже нужно сохранить в файл конфигурации, чтобы потом его можно было развернуть с помощью функции ShowWindow( hWnd, SW_MAXIMIZE ); Добавлено через 15 секунд Теперь хоть что-то понятно. Рамка ушла за приделы экрана, поэтому координаты отрицательные. Когда ты жмёшь на кнопку "Развернуть", окно получает сообщение WM_SIZE с кодом SIZE_MAXIMIZED в wParam. Если окно "развёрнуто" то информацию об этом тоже нужно сохранить в файл конфигурации, чтобы потом его можно было развернуть с помощью функции ShowWindow( hWnd, SW_MAXIMIZE );
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.11.2014, 16:26 [ТС] | 11 |
Нет. Рамка не ушла за границы экрана, а распахнулась нормально:
. Это весь скриншот. Но GetWindowRect прочитала отрицательные координаты.
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.11.2014, 16:30 [ТС] | 12 |
А вот чему эти координаты соответствуют:
. Я сохранил прочитанные координаты в файл и использовал для функции CreateWindow и это тоже весь экран.
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
03.11.2014, 16:33 [ТС] | 13 | |||||
Нет. Я сохраняю сами размеры.
0
|
03.11.2014, 16:36 | 14 |
Гугл (кстати удобная штука) говорит, что отрицательные координаты потому что они относительны какого-то дочернего элемента (может быть рабочей области). На другом форуме нашел такой же вопрос, там чувак пишет, что решил проблему путем поиска главного окна через FindWindowEx.
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
03.11.2014, 16:47 [ТС] | 15 | |||||
Тогда почему при
Добавлено через 1 минуту Это и так оконная процедура главного кона. Его не надо искать.
0
|
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
|
|
03.11.2014, 16:52 | 16 |
Такие дела. Нужно пользоваться отладчиком чтобы.
Когда вы нажимаете развернуть окно, по ширине оно разворачивается на всю клиентскую ширину, без рамки, но getwindowrect возвращает координаты с рамкой по краям.
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.11.2014, 17:00 [ТС] | 18 |
А где я по-вашему прочитал минус восемь?
Добавлено через 1 минуту Как исправить?
0
|
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
|
|
03.11.2014, 17:30 | 20 |
Я бы, наверно, выбрал сохранять еще флаг окна(развернуто, свернуто) и показывать с ним. А может сделал бы по другому, тут что вам нужно, способ тысяча. Влом вникать дальше. Можете проверять wParam; // resizing flag
и делать расчеты, как вам кажется правильно или брать ширину клиентскую, или взять ширину монитора... Сами придумайте способ. Добавлено через 16 секунд Я бы, наверно, выбрал сохранять еще флаг окна(развернуто, свернуто) и показывать с ним. А может сделал бы по другому, тут что вам нужно, способ тысяча. Влом вникать дальше. Можете проверять wParam; // resizing flag и делать расчеты, как вам кажется правильно или брать ширину клиентскую, или взять ширину монитора... Сами придумайте способ.
0
|
03.11.2014, 17:30 | |
03.11.2014, 17:30 | |
Помогаю со студенческими работами здесь
20
Как получить скрин именно окна другой программы, а не всего, того что находится на мониторе Какими способами можно в приложении ASP.NET получить размеры экрана пользователя и размер окна браузера? Как узнать размеры окна? Как узнать размеры окна? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |