Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизКак изменить свойство 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c