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

Вниз

Как нарисовать свой заголовок формы??   Найти похожие ветки 

 
Veon   (2004-01-15 22:54) [0]

Делаю BorderStyle=bsNone, но тогда нельзя изменить размеры... а хотелось бы


 
Юрий Зотов ©   (2004-01-15 23:02) [1]

Два варианта. Сам не проверял, но попробовать стоит - тем более, что это недолго.

Вариант 1. Не ставить BorderStyle, а в CreateParams убрать из стилей окна WS_CAPTION.

Вариант 2. Посмотрите сообщение WM_NCHITTEST. Если, например, вернуть HTCAPTION, то система будет думать, что мышь находится над заголовком окна (и поведет себя сответственно). Аналогично и для рамок окна. Детали - в справке API.


 
Yr2   (2004-01-15 23:49) [2]

Первым делом надо убрать заголовок формы и перерисовать её:

procedure TForm1.FormCreate(Sender: TObject);
begin
windows.SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);
windows.SetWindowPos(Handle, HWND_TOP,Left, Top,Width, Height, SWP_FRAMECHANGED);
end;

так как Вы не сказали, что Вы хотите иметь в "своём" заголовке, то и не описываю... а там придётся, видимо, добавить кнопки закрытия/открытия, сделать перемещение формы с помощью мыши и т.д...


 
Veon   (2004-01-16 00:12) [3]


> так как Вы не сказали, что Вы хотите иметь в "своём" заголовке

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


 
Юрий Зотов ©   (2004-01-16 00:25) [4]

> Veon (16.01.04 00:12) [3]

DrawCaption. Еще может пригодиться DrawFrameControl.

Но на легкую жизнь не рассчитывайте. Это будет не заголовок, а только его рисунок, поэтому всю мышь Вам придется обрабатывать самому.

> Я хочу синий красивый горизонтальный градиент, и возможности
> стандартного заголовка... (и при этом ничего не писать...

А я хочу белый красивый бронированный мерседес и возможности американского президента... (и при этом ничего не делать...



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
1-93545
Vatik
2004-01-17 23:55
2004.01.29
Нужна программа извлечения картинок из *.exe файла.


1-93469
TankMan
2003-12-22 20:02
2004.01.29
Как хранить образ файла в памяти?


14-93668
Kair
2004-01-09 12:05
2004.01.29
Метод градиента


3-93330
Ренат
2003-12-30 10:00
2004.01.29
AdoQuery parameters


3-93391
Andriy Tysh
2003-12-30 11:16
2004.01.29
DBGridEh.SumList