Главная страница
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.016 c
7-93717
Михаил
2003-11-10 16:42
2004.01.29
Кто-нибудь знает как в ХР можно нажимать программно кнопки?


1-93422
GrayFace
2004-01-16 19:00
2004.01.29
Как проверить, нажата ли средняя кнопка мыши?


3-93329
Michail Dalakov
2004-01-01 23:38
2004.01.29
DCOM


7-93720
ponyol
2003-11-09 07:39
2004.01.29
Delphi и сканер.


1-93468
Veon
2004-01-15 22:58
2004.01.29
Ресурсы