Главная страница
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.089 c
14-1130184262
Volodya
2005-10-25 00:04
2005.11.20
Переполнение йомкости для отработаного чернила


2-1130806936
Живописец
2005-11-01 04:02
2005.11.20
Как нарисовать на Delphi дерево ?


14-1130323680
Digitman
2005-10-26 14:48
2005.11.20
TOpenDialog.OnIncludeItem


9-1114769981
VolanD666
2005-04-29 14:19
2005.11.20
Far Cry


9-1118375385
Anonim
2005-06-10 07:49
2005.11.20
Как сохранить нарисованное OpenGL ем в Bmp-файл?