|
Вопрос # 5 297/ вопрос открыт / |
|
Здравствуйте, эксперты!
Нужно в цыкле перебрать все не свернутие на даний момент окна, и выполнить с ними следующие действия:
Если окно развернуто на весь екран, то нужно его свернуть в окно и установить для его некоторые размеры.
П.С. Также интересно как можно передвигать окна.
 |
Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 19 мая 2011, 10:29
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Ixer!
Перебор всех окон - это простая задача, избитая до байта. Ключевая функция - enumwindow, вот тут http://www.delphisources.ru/pages/faq/base/enumwindows.html есть пример.
Суть - Вы запускаете эту функцию и передаете ей в качестве параметра свою функцию. Windows перебирает все окна и для каждого из них вызывает Вашу функцию (можно считать, что там скрыт цикл).
А дальше с помощью АПИ можно делать все, что хочется.
например - GetWindowRect возвратит координаты окна (положение верхнего левого угла, ширину и высоту).
IsIconic - Свернуто ли окно
IsZoomed - Максимизировано ли это окно
MoveWindow - Перемещает окно
SetWindowPos - Устанавливает позицию окна
А потом посмотрите на этот пример http://www.delphimaster.ru/articles/winapi/index.html и разберитесь с параметрами этих функций. И комбинируйте их до получения желаемого эффекта.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 19 мая 2011, 10:43
Оценка за ответ: 5
Комментарий к оценке: Прямо в точку
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 23 мая 2011, 21:26; участников в обсуждении: 2.
|
pobechuk1988 (статус: Посетитель), 23 мая 2011, 21:23 [#1]:
ловить формы на дельфи сложно и муторно... C++ тебе в помощь
|
|
bugmenot (статус: 3-ий класс), 23 мая 2011, 21:26 [#2]:
Цитата (pobechuk1988):
ловить формы на дельфи сложно и муторно
чепуха, никаких сложностей нет, кроме (возможно) отсутствия директивы __closure
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|