Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизКак нарисовать свой заголовок формы?? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c