![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.09.2008
Сообщений: 16
|
![]()
Подскажите пожалуйста, как нарисовать дополнительную кнопку в заголовке окна.
![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
нужно обрабатывать сообщения WM_NCxxx.
в WM_NCHITTEST - добавляем проверку попадания в эту кнопку в WM_NCPAINT - рисуем эту кнопку. В ХР заголовок портится, так что придется наверно весь заголовок перерисовывать |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.09.2008
Сообщений: 16
|
![]()
а как именно нарисовать кнопку?
|
![]() |
![]() |
![]() |
#4 | |
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
![]() Код:
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.05.2007
Сообщений: 373
|
![]()
Иногда появляется необходимость нарисовать, что-нибудь (например, кнопку) в заголовке чужого окна (а возможно и своего). Это можно сделать очень и очень просто.
Пpоцедуpа DrawFrameControl Синтаксис: function DrawFrameControl (DC:HDC;Rc :Trect; uType,uStyle:Word ): Bool; Описание: Рисует один из элементов в заголовке окна. DC : контекст устройства в котором происходит рисование. Rc : Область в которой будет происходить рисование UType: Тип элемента одна из констант: DFC_BUTTON Кнопка DFC_CAPTION Заголовок DCF_MENU Меню DFC_SCROLL Полоса прокрутки Ustyle : Стиль элемента одна из констант: Для кнопок DFCS_BUTTON3STATE Кнопка с тремя состояниями DFCS_BUTTONCHECK Флажок DFCS_BUTTONPUSH Кнопка DFCS_BUTTONRADIO Переключатель DFCS_BUTTONRADIOIMAGE Картинка для переключателя DFCS_BUTTONRADIOMASK Маска для переключателя Для заголовков DFCS_CAPTIONCLOSE Кнопка закрыть DFCS_CAPTIONHELP Кнопка помощь (только Window 9x) DFCS_CAPTIONMAX Кнопка развернуть DFCS_CAPTIONMIN Кнопка свернуть DFCS_CAPTIONRESTORE Кнопка восстановить Для меню DFCS_MENUARROW Стрелка подменю DFCS_MENUBULLET Маркер DFCS_MENUCHECK Маркер - флажек Для полос прокрутки DFCS_SCROLLCOMBOBOX Линейка прокрутки выпадаюшего списка DFCS_SCROLLDOWN Кнопка вниз DFCS_SCROLLLEFT Кнопка влево DFCS_SCROLLRIGHT Кнопка вправо DFCS_SCROLLSIZEGRIP Размерная ручка DFCS_SCROLLUP Кнопка вверх Возвращаемое значение: В случае успешного завеpшения - не нуль; в пpотивном случае - 0. Заметьте, что это функция только рисует элемент заголовка. 14 Отрисовка <фальшивой> кнопки закрыть в заголовке окна. Procedure DrawFalseClose (Wd:HWND; xPos:Integer); Var DC:HDC; begin DC:=GetWindowDC(Wd); // Получим контекст устройства окна If DC>0 then Begin DrawFrameControl (DC,Rect(xPos,4,xPos+16,020),DFC_Ca ption,DFCS_CaptionClose); ReleaseDC(Wd,DC); // Освободим контекст устройства. End; end;
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен: "Перемен!Мы ждем перемен!" |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]()
Можете просто использовать готовый компонент CaptionButton. Кидаете его на форму и потом в заголовке программы появляется кнопка. Этих кнопок можете ставить сколько угодно. Сам компонент: CaptionButton.rar
Всегда рад помочь!
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 12.09.2008
Сообщений: 16
|
![]()
это на Delphi все, а для С++? там совсем не тоже самое
|
![]() |
![]() |
![]() |
#8 | ||
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 11.09.2010
Сообщений: 1
|
![]()
При рисовании новой кнопки в delphi стиль формы меняется со стиля Windows 7 Aero на стиль Win 98. У меня стоит Windows 7.
А нету подписи)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Позиция курсора в заголовке | NieL | Общие вопросы Delphi | 3 | 17.12.2008 18:01 |
Бегущая строка в заголовке приложения (Delphi 7) | Sinx | Помощь студентам | 2 | 08.12.2008 02:35 |
Сортировка с доп параметрами. Хелп | Ice_Juice | Microsoft Office Excel | 22 | 15.03.2008 20:21 |
Рисунок в заголовке TabbedNotebook | Aleksandr | Общие вопросы Delphi | 0 | 28.09.2007 16:03 |
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? | dimonchuk | Общие вопросы Delphi | 1 | 11.08.2007 12:13 |