Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 08.04.2008
Сообщений: 132

Смена шрифта в заголовке окна

16.06.2011, 13:50. Показов 2646. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Privet, yesli u kogo idea na etu temu? Ili ssilochka?
Senks !!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.06.2011, 13:50
Ответы с готовыми решениями:

Изменение шрифта в Заголовке формы и ToolTipText?
Привет всем! А как менять шрифт в Заголовке формы и ToolTipText? И ещё - как сделать, чтобы программа не зависила от системного шрифта...

Динамическая смена окна и шрифта
Всем доброго времени суток. У меня возник такой вопрос, как реализовать статическую смену фона главного окна, кнопок и шрифта. Т.е. что бы...

Изменение шрифта в заголовке QGroupBox
Всем доброй пятницы! Пишу вот так ui->groupBox->setStyleSheet("QGroupBox { border: 1px solid gray;""border-radius: 3px;"...

9
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
16.06.2011, 14:09
Мне кажется, кроме как через изменение оформления стиля Windows в целом трудно что-то сделать. Разве что какая-нибудь малоизвестная (для меня ))) API.
0
Comanche
16.06.2011, 14:23
Похоже, ты прав. Крайняк - можно нужным шрифтом (CreateFont, SelectObject) делать DrawText прямо по тайтл-бару - в оконной процедуре, при WM_NCPAINT или ещё когда. Но это изврат ))
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
16.06.2011, 15:02
если уж так нужны сови собственные Caption-стили у окон, то убирай стандартный заголовок окна и рисуй свой, потом может и до скинов дорастет
0
0 / 0 / 0
Регистрация: 08.04.2008
Сообщений: 132
16.06.2011, 16:49  [ТС]
to Comanche:
yesli u tebya ssilochki na DrawText прямо по тайтл-бару
0
Comanche
16.06.2011, 17:28
Вот, накатал чего-то:

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Option Explicit
'
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
'
Private Declare Function CreateFont Lib 'gdi32.dll' Alias 'CreateFontA' (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Private Declare Function MulDiv Lib 'kernel32' (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long
Private Declare Function GetDeviceCaps Lib 'gdi32' (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function DeleteObject Lib 'gdi32.dll' (ByVal hObject As Long) As Long
Private Declare Function DrawText Lib 'user32.dll' Alias 'DrawTextA' (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, ByRef lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function SelectObject Lib 'gdi32.dll' (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function GetWindowDC Lib 'user32' (ByVal hWnd As Long) As Long
Private Declare Function GetSystemMetrics Lib 'user32' (ByVal nIndex As Long) As Long
Private Declare Function SetRect Lib 'user32.dll' (ByRef lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function GetDC Lib 'user32' (ByVal hWnd As Long) As Long
Private Declare Function SetBkMode Lib 'gdi32' (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Declare Function SetTextColor Lib 'gdi32.dll' (ByVal hdc As Long, ByVal crColor As Long) As Long
'
Private Const SM_CYCAPTION = 4  ' Height of windows caption
Private Const SM_CXSIZE = 30    ' Width of title bar bitmaps
Private Const DT_LEFT As Long = &H0
Private Const FW_NORMAL = 400
Private Const LOGPIXELSY = 90
Private Const OUT_DEFAULT_PRECIS = 0
Private Const CLIP_DEFAULT_PRECIS = 0
Private Const DEFAULT_CHARSET = 1
Private Const PROOF_QUALITY = 2
Private Const DEFAULT_PITCH = 0
Private Const TRANSPARENT = 1
'
Private mDC As Long, hFont As Long
'
Private Sub Form_Load()
    ' hDC вместе с тайтл-баром:
    mDC = GetWindowDC(Me.hWnd)
    ' Будем использовать шрифт: Times New Roman, 11pt:
    hFont = CreateFont(-MulDiv(11, GetDeviceCaps(GetDC(0), LOGPIXELSY), 72), 0, 0, 0, FW_NORMAL, False, False, False, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, 'Times New Roman')
    SelectObject mDC, hFont
    ' Выводимый текст должен иметь прозрачный фон:
    SetBkMode mDC, TRANSPARENT
    ' Цвет шрифта пусть будет жёлтым:
    SetTextColor mDC, vbYellow
End Sub
'
Private Sub Form_Paint()
    ' Собственно перерисовка тайтл-бара:
    Call RedrawTitleBar('Просто какой-то текст в тайтл-баре')
End Sub
'
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    DeleteObject hFont
End Sub
'
Private Sub RedrawTitleBar(ByVal TbarText As String)
    Dim rct As RECT
    
    If Len(Me.Caption) > 0 Then
        ' 'Убиваем' заголовок формы, чтобы не мешал выводимому тексту:
        Me.Caption = ''
        ' Это неправильно, но быстро.
    End If
    
    SetRect rct, _
            GetSystemMetrics(SM_CXSIZE) + 6, _
            5, _
            Me.Width * Screen.TwipsPerPixelX, _
            GetSystemMetrics(SM_CYCAPTION)
    ' (константы 5 и 6 определил по
Comanche
16.06.2011, 17:32
Кстати, вызов SetRect тоже надо вынести в Form_Load (ну и, есс-с-сно, переменную rct объявить на уровне формы).
Comanche
16.06.2011, 21:22
Не-е-е... беру слова обратно: пусть вызов SetRect останется там, где он есть - ведь Me.Width может измениться (если форма - resizable).
Comanche
17.06.2011, 18:07
А вообще-то лучше использовать DrawTextEx с флажком DT_END_ELLIPSIS - ведь текст теоретически может не уместиться в тайтл-баре, и тогда - по аналогии с самими виндами - конец текста неплохо бы заменить на многоточие.
0 / 0 / 0
Регистрация: 08.04.2008
Сообщений: 132
19.06.2011, 08:21  [ТС]
To chto mne nujno, spasibo vsem !!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2011, 08:21
Помогаю со студенческими работами здесь

Изменение шрифта в заголовке формы
Подскажите, пожалуйста, можно ли изменить шрифт и его цвет в заголовке формы?

Изменить цвет шрифта в заголовке строк и столбцов в DGV
как изменить цвет в выделенной области: ...

C++ Builder 6: при увеличении шрифта в заголовке кнопки, он обрезается с трех сторон
Только начинаю свой путь Когда создаю Button и увеличиваю шрифт, то Caption обрезается, как я понимаю, слева, снизу и справа Почему...

Смена цвета через Cufon при активном заголовке
Использую плагин Cufon на сайте для аккордиона из примера: http://dbmast.ru/otzyvchivyj-akkordeon-s-pomoshhyu-jquery как сделать так чтобы...

Надпись на заголовке окна
Ребята, подскажите пожалуйста, как зная hwnd окна, узнать его надпись на заголовке (на шапке окна)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru