Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 17:45   #1
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию Изменить параметры чужого окна

Подскажите, как можно изменить размеры чужого окна если у него стоят ограничения.

Тоесть, есть окно, предположим написанное на дельфи, в нем к примеру стоит
Код:
form1.Constraints.MinHeight:=500;
Как сделать высоту менее 500 px?
MoveWindow здесь не помогает...
Moonquake
phphel вне форума Ответить с цитированием
Старый 25.04.2012, 18:17   #2
Willer55
Пользователь
 
Регистрация: 17.08.2011
Сообщений: 35
По умолчанию

Точно не помню как. Могу подсказать в какую сторону посмотреть. Есть функция у WinApi для получение ссылки на окно, по имени типа(вроде бы). У Красного в книге "Практика в OpenGL" на первых страницах написано как это сделать.
Willer55 вне форума Ответить с цитированием
Старый 25.04.2012, 18:39   #3
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

И?Если ты про это:
Код:
findwindow(nil,pchar('Caption'));
То это я тоже знаю, вопрос в другом.
Moonquake
phphel вне форума Ответить с цитированием
Старый 25.04.2012, 18:44   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну если у чужого окна...
Тогда видимо нужно перехватывать оконную процедуру и править MINMAXINFO в сообщении WM_GETMINMAXINFO.
Нужен либо хук на сообщения либо инжектировать длл в процесс, которому принадлежит окно и сабклассить процедуру окна.
EUGY вне форума Ответить с цитированием
Старый 25.04.2012, 18:46   #5
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

http://msdn.microsoft.com/ru-RU/libr...(v=vs.85).aspx
подойдет?
=master= вне форума Ответить с цитированием
Старый 25.04.2012, 18:54   #6
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Мдя, прозевал SWP_NOSENDCHANGING
EUGY вне форума Ответить с цитированием
Старый 25.04.2012, 18:58   #7
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

SetWindowPos не помогает.

EUGY, спс, попробую что - нить нагуглить..
Moonquake
phphel вне форума Ответить с цитированием
Старый 25.04.2012, 19:32   #8
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

http://www.delphikingdom.com/asp/ans...IDAnswer=48481
вот тут аналогичное решение..но чет разобраться как прикрутить код не могу..
Moonquake
phphel вне форума Ответить с цитированием
Старый 26.04.2012, 20:58   #9
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Собственно, решается все следующим кодом:

Код:
var
   wnd:HWND;
   caption,NameApp:string;
   TheChildHandle:HWND;
   r: TRect;
   RectW, RectH: integer;
begin
   NameApp:='Window';
   wnd:=FindWindow(nil, pchar(NameApp));
   if wnd<>0
   then begin
    GetWindowRect(wnd, R);
    RectW := R.Right - R.Left;
    RectH := R.Bottom - R.Top;

    SetWindowPos(Wnd, HWND_TOP, 1, 1, 1, 1, SWP_NOSENDCHANGING);
    SetWindowPos(Wnd, HWND_TOP, R.Left, R.Top, RectW, RectH, SWP_NOSENDCHANGING)
   end
   else begin
    showmessage('Not find window '+NameApp);
   end;
Код "сбивает" параметры MINMAX указанного окна, после чего можно спокойно изменять размеры.
Moonquake
phphel вне форума Ответить с цитированием
Старый 26.04.2012, 21:05   #10
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

А кто-то утверждал что
Цитата:
SetWindowPos не помогает.
=master= вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить размер ячеек StingGrig-a у чужого окна. 27men Помощь студентам 2 27.06.2011 19:29
Замена заголовка чужого окна dacorp Общие вопросы Delphi 3 13.06.2010 00:05
Сворачивание чужого окна artemavd Общие вопросы Delphi 2 27.04.2010 07:45
VirtualStringTree чужого окна akaTemporary Общие вопросы Delphi 0 29.01.2010 14:32
delphi прозрачность чужого окна guffer Общие вопросы Delphi 1 26.11.2009 22:20