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

Вниз

Как изменить свойство BorderStyle   Найти похожие ветки 

 
ArtemESC ©   (2005-09-18 21:16) [0]

Как изменить это свойство в окне с некоторым Hwnd.

Вообще-то мне надо аналогичное следующему:
      BorderStyle := bsNone;


 
Nick Denry ©   (2005-09-18 21:48) [1]

Если при создании, то стиль WS_POPUP,

Если при каком либо действии тоесть уже после создания, то

SetWindowLong(YourWindowHandle, GWL_STYLE, GetWindowLong(YourWindowHandle, GWL_STYLE) xor WS_BORDER);


 
Игорь Шевченко ©   (2005-09-18 23:42) [2]


> SetWindowLong(YourWindowHandle, GWL_STYLE, GetWindowLong(YourWindowHandle,
>  GWL_STYLE) xor WS_BORDER);


Сам-то пробовал ?


 
Nick Denry ©   (2005-09-19 00:55) [3]

Честно? Нет, видел в одном примере....

а что должно быть вместо?


 
Игорь Шевченко ©   (2005-09-19 01:09) [4]

Nick Denry ©   (19.09.05 00:55) [3]


> Честно? Нет, видел в одном примере....


Я тебе совет дам - всегда перед постом в форум убедись, что решение опробовано лично тобой. Во избежание.


> а что должно быть вместо?


А вот мне стало интересно, и я написал пару приложений :) Первое из формы с кнопкой, по кнопке вызывается Close основной формы.

Второе ищет окно первого, заносит его в переменную FWnd и выполняет  последовательность действий:

var
 RClient, R: TRect;
begin
 Windows.GetClientRect(FWnd, RClient);
 GetWindowRect(FWnd, R);
 R.Right := R.Left + RClient.Right;
 R.Bottom := R.Top + RClient.Bottom;
 SetWindowLong(FWnd, GWL_STYLE, GetWindowLong(FWnd, GWL_STYLE) and
   not WS_CAPTION);
 SetWindowPos (Fwnd, 0, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top,
   SWP_NOZORDER or SWP_DRAWFRAME);


Манипуляции с прямоугольником мне потребовались для того, чтобы окно сохраняло свой размер, так как если оставить только прямоугольник WindowRect, то окно увеличится в размерах (как минимум, по высоте). Я специально не стал убирать возможность изменения размеров окна мышкой.

Ключевой фукнцией здесь является SetWindowPos с указанными флажками, убери этот вызов и ты сразу увидишь, что вызов SetWindowLong не дает никакого видимого эффекта.

Кстати, от такого изменения стиля окна можно защититься в целевом приложении, обрабатывая сообщения WM_STYLECHANGING/WM_STYLECHANGED.

Удачи!


 
Nick Denry ©   (2005-09-19 10:23) [5]

Во избежание.

Угу. Учту обязательно, а то и правда нехорошо может получится.

написал пару приложений :)

прикольно :)



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
2-1130744171
abu
2005-10-31 10:36
2005.11.20
Целые числа в TDate


2-1130599825
TStas
2005-10-29 19:30
2005.11.20
Относительные пути


14-1130674394
Neosted
2005-10-30 15:13
2005.11.20
Как в своей программе использовать файл конфига?


6-1123138130
vova3085
2005-08-04 10:48
2005.11.20
Вопрос про сетевые подключения...........


2-1130453251
Dub
2005-10-28 02:47
2005.11.20
что за глюк и с чем его кушать?