Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];
ВнизКак узнать размеры окна через 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.071 c