Главная страница
    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.057 c
2-1131205604
WebSQLNeeder
2005-11-05 18:46
2005.11.20
Лишняя пустая строка в конце TMemo при сохранении в фаил


14-1130833121
DiamondShark
2005-11-01 11:18
2005.11.20
Кто помнит, откуда фраза?


6-1122990135
Dyakon_Frost
2005-08-02 17:42
2005.11.20
Обработка интернет страницы!


4-1127110999
SergeyGood
2005-09-19 10:23
2005.11.20
Запуск от имени


1-1130322509
G0ga
2005-10-26 14:28
2005.11.20
Работа с TObjectList





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский