Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать размеры окна через API?


demon ©   (2008-08-05 12:50:00) 

О вообще, мне нужно установить предел ширины и высоты окна, ниже которых окно не уменьшишь, это нужно делать в обработчике сообщения WM_SIZE, правильно?


Игорь Шевченко   (2008-08-06 10:03:00) [1]


> Я ламерок, все делал научным тыком


Есть предложение учиться научным тыком самому, а не напрягать народ на форуме. Удачи.


Loginov Dmitry   (2008-08-06 07:40:00) [2]

> А еще писать используя KOL хочеться, но это точно рано.


а ЗАЧЕМ???


demon   (2008-08-06 01:15:00) [3]

DVM, Спасибо!
Юрий Зотов, Вы наверное правы, но уж очень хочеться. А еще писать используя KOL хочеться, но это точно рано.


Юрий Зотов   (2008-08-06 00:51:00) [4]

> demon ©   (05.08.08 22:25) [9]

> inherited; // <-тут ругаеться компилятор

Рано Вы за WinAPI взялись, вот поверьте. Не с того начинаете. Очень неэффективный путь выбрали, очень много времени и сил впустую уйдет.


DVM   (2008-08-05 23:08:00) [5]

WM_GETMINMAXINFO:
 begin
   PMINMAXINFO(lParam)^.ptMinTrackSize.X := 500;
   PMINMAXINFO(lParam)^.ptMinTrackSize.Y := 500;
   result := 0;
 end;


demon   (2008-08-05 22:47:00) [6]

Для визуальной формы я нашел кусок кода, работает, разобрался как.
Но здесь, без понятия... Прошу помощи!


demon   (2008-08-05 22:35:00) [7]

Я ламерок, все делал научным тыком, попросило - прописал в var, вот и все.
Но намек понял, попробую разобраться.


DVM   (2008-08-05 22:30:00) [8]


> demon ©   (05.08.08 22:25) [9]

ты смотрел что находится в lParam сообщения WM_GETMINMAXINFO?
На кой ляд заводишь свою переменную mminfo : tagMINMAXINFO ?


demon   (2008-08-05 22:25:00) [9]

Вот код

var
mminfo : tagMINMAXINFO;
.......
///(в обработчике):
     WM_GETMINMAXINFO :
       begin
         with mminfo do
         begin
           ptMinTrackSize.x:=200;          
           ptMinTrackSize.y:=100;          
           ptMaxSize.x:=200;          
           ptMaxSize.y:=100;                
         end;
     inherited; // <-тут ругаеться компилятор
     end;
....

Подозреваю что в with чтото другое нужно, по крайней мере в чужих исходниках там указатель какойто, но там примеры на VCL а не API.


Игорь Шевченко   (2008-08-05 22:07:00) [10]


> а как вернуть в окно установленые параметры?


Как прикажешь тебя понимать, Саид ?


demon   (2008-08-05 21:32:00) [11]

а как вернуть в окно установленые параметры?
inherited не работает (наверно он только для форм на VCL)


DVM   (2008-08-05 14:49:00) [12]


> DVM ©   (05.08.08 13:52) [5]


> WM_SIZE обладает более широкими возможностями

ой, я имел в виду WM_SIZING конечно же.


DVM   (2008-08-05 13:52:00) [13]


> demon ©   (05.08.08 12:50)  

WM_SIZE это сообщение приходит окну уже после того, как его размер изменился. Это лишь уведомление. В его обработчике не получится как то повлиять или воспрепятствовать изменению размера.
WM_GETMINMAXINFO - позволит установить минимальные и максимальные размеры окна.
WM_SIZE обладает более широкими возможностями, чем WM_GETMINMAXINFO, так как кроме минимального и максимального размера, позволит задать, например как окно должно менять свои размеры (например, с шагом в 50 точек или еще как).


Игорь Шевченко   (2008-08-05 13:25:00) [14]


> это нужно делать в обработчике сообщения WM_SIZE, правильно?


нет, неправильно. Это нужно делать в обработчике WM_GETMINMAXINFO.
Еще проще вместо напряга людей на форуме вдумчиво изучить Forms.pas - там оно все расписано, с картинками.


demon   (2008-08-05 13:16:00) [15]


>  Противоположный вариант - WM_GETMINMAXINFO.

про это непонял, можно поподробнее?


Alucard   (2008-08-05 12:59:00) [16]

Это нужно делать в WM_SIZING. Противоположный вариант - WM_GETMINMAXINFO.


@!!ex   (2008-08-05 12:52:00) [17]

>>Как узнать размеры окна через API?
GetWindowRect вроде.


Наверх

Титульная страница Поиск, карта сайта Написать письмо