Главная страница
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.024 c
1-93428
_none_
2004-01-16 15:29
2004.01.29
вывод графики через bitblt: мелькание (синхронизация?)


14-93656
dalamar
2004-01-08 04:12
2004.01.29
Проблема взаимодействия ADO и Access


1-93430
DimonNew
2004-01-16 15:03
2004.01.29
Hint


14-93690
Ig
2004-01-09 01:33
2004.01.29
В чем заключается регистрация на сайте?


8-93591
ARTEMKA
2003-09-23 12:06
2004.01.29
Как написать свой MediaPlayer