![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение BorderStyle [D7, WinXP]
Grell © (2005-04-29 20:45:00)Как изменить свойство BorderStyle формы используя WinAPI?
mgcr (2005-05-01 22:04:00) [1]Agent13 © (01.05.05 21:21) [13]
WS_CLIPххх - они для формы уже есть.
Agent13 (2005-05-01 21:21:00) [2]Может для того, чтобы в подобных ситуациях не гадать, что ещё из WS_... забыли написать, лучше делать типо того:
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_Style)or WS_CLIPCHILDREN or WS_CLIPSIBLINGS);?
Игорь Шевченко (2005-04-30 22:39:00) [3]SetWindowLong(Handle, GWL_STYLE, WS_VISIBLE or WS_CLIPCHILDREN or WS_CLIPSIBLINGS or WS_CAPTION or WS_MAXIMIZEBOX or WS_MINIMIZEBOX or WS_SYSMENU);
Grell (2005-04-30 21:38:00) [4]SetWindowLong(Handle, GWL_STYLE, WS_VISIBLE or WS_CLIPCHILDREN or
WS_CLIPSIBLINGS or WS_CAPTION or WS_MAXIMIZEBOX or WS_MINIMIZEBOX);
Все равно не пашет =(
Игорь Шевченко (2005-04-30 19:54:00) [5]
> Работает но почемуто пропадают иконки мннмизации и тд..
Добавить в стили WS_MINIMIZEBOX or WS_MAXIMIZEBOX
Grell (2005-04-30 10:59:00) [6]
> А стиль bsSingle устанавливается следующей комбинацией:
>
> SetWindowLong(Handle, GWL_STYLE, WS_VISIBLE or WS_CLIPCHILDREN
> or
> WS_CLIPSIBLINGS or WS_CAPTION);
> SetWindowPos (Handle, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE
> or
> SWP_NOZORDER or SWP_DRAWFRAME);
Работает но почемуто пропадают иконки мннмизации и тд..
> SetWindowPos такого вида рекомендуется вызывать после любых
> изменений, связанных с размерами неклиентских областей окна.
Спасибо, учту!
Игорь Шевченко (2005-04-30 01:32:00) [7]
> SetWindowLong(Handle, GWL_STYLE, 0);
Я бы все-так рекомендовал SetWindowLong(Handle, GWL_STYLE, WS_VISBLE or WS_CLIPSIBLINGS or WS_CLIPCHILDREN)
А стиль bsSingle устанавливается следующей комбинацией:
SetWindowLong(Handle, GWL_STYLE, WS_VISIBLE or WS_CLIPCHILDREN or
WS_CLIPSIBLINGS or WS_CAPTION);
SetWindowPos (Handle, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or
SWP_NOZORDER or SWP_DRAWFRAME);
SetWindowPos такого вида рекомендуется вызывать после любых изменений, связанных с размерами неклиентских областей окна.
Grell (2005-04-29 23:30:00) [8]
> Возможно, не сработает
Да, не пашет :(
А
SetWindowLong(Handle, GWL_STYLE, 0);
SetWindowLong(Handle, GWL_EXSTYLE, 0);
работает отлично, спасибо!
Ученик (2005-04-29 23:21:00) [9]>Ученик (29.04.05 23:10) [5]
Возможно, не сработает
так будет bsNone
SetWindowLong(Handle, GWL_STYLE, 0);
SetWindowLong(Handle, GWL_EXSTYLE, 0);
bsSinle в Win32 какой-то странный (отличный от Win16)
Ученик (2005-04-29 23:10:00) [10]>Grell (29.04.05 23:02) [4]
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION)
Grell (2005-04-29 23:02:00) [11]2Ученик На bsNone или bsSingle.
Ученик (2005-04-29 22:38:00) [12]>Grell (29.04.05 20:45)
В общем случае
SetWindowLong(Handle, GWL_STYLE, ..)
SetWindowLong(Handle, GWL_EXSTYLE, ..)
Marser (2005-04-29 22:37:00) [13]См. GetWindowLong, SetWindowLong и константы стиля окна - WS_ и WS_EX_
Ученик (2005-04-29 22:36:00) [14]>Grell (29.04.05 20:45)
На что ?