Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-1130674394
Neosted
2005-10-30 15:13
2005.11.20
Как в своей программе использовать файл конфига?


11-1111916035
RadaR
2005-03-27 13:33
2005.11.20
UNICODE


2-1131051303
Toxa_ua
2005-11-03 23:55
2005.11.20
~ ?


14-1130401242
SL
2005-10-27 12:20
2005.11.20
Автоподставы. Как они надоели!


3-1128600013
Ascer
2005-10-06 16:00
2005.11.20
Выбор из справочника





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский