Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.14;
Скачать: CL | DM;

Вниз

Как узнать размеры окна через API?   Найти похожие ветки 

 
demon ©   (2008-08-05 12:50) [0]

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


 
@!!ex ©   (2008-08-05 12:52) [1]

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


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

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


 
demon ©   (2008-08-05 13:16) [3]


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

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


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


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


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


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


> demon ©   (05.08.08 12:50)  

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


 
DVM ©   (2008-08-05 14:49) [6]


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


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

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


 
demon ©   (2008-08-05 21:32) [7]

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


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


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


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


 
demon ©   (2008-08-05 22:25) [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.


 
DVM ©   (2008-08-05 22:30) [10]


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

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


 
demon ©   (2008-08-05 22:35) [11]

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


 
demon ©   (2008-08-05 22:47) [12]

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


 
DVM ©   (2008-08-05 23:08) [13]

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


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

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

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

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


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

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


 
Loginov Dmitry ©   (2008-08-06 07:40) [16]

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


а ЗАЧЕМ???


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


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


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



Страницы: 1 вся ветка

Текущий архив: 2008.09.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
2-1217714068
KilkennyCat
2008-08-03 01:54
2008.09.14
Где рисуется бордер компонента?


2-1217799907
demon
2008-08-04 01:45
2008.09.14
RegisterClass и RegisterClassEx в чем разница?


4-1195550970
guav
2007-11-20 12:29
2008.09.14
Список всех дисков (не томов, именно физических дисков).


15-1216798715
axis_of_evil
2008-07-23 11:38
2008.09.14
на моей памяти этот вопрос задавали раз 5, но ..


3-1205735599
Karburator
2008-03-17 09:33
2008.09.14
события открытия и закрытия списка поля в DBGrid-e