$Yastrebov$ писал(а):ДЛЯ СТАНДАРТНЫХ КОНТРОЛОВ
Не надо орать. Кнопка - стандартный контрол.
$Yastrebov$ писал(а):а лишь демонстрируют слабые попытке ее обойти.
Из чего следует, что ты не только не понял, в чём суть проблемы, но и вообще плохо ориентируешься в ситуации.
$Yastrebov$ писал(а):Код ниже
Код ниже написан человеком, который не подозревает, что WM_GETFONT возвращает отнюдь не копию шрифта, и потому уничтожать его не следует, но это мелочи, а главное в том, что если после такого "установления" сменить шрифт на форме, то тулбар окажется с недействительным шрифтом (потому что его уничтожит форма), и будет рисовать всё с помощью fixedsys.
Простейшая демонстрация.
- Код: Выделить всё
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function InvalidateRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As Any, ByVal bErase As Long) As Long
Private Const WM_GETFONT As Long = &H31
Private Const WM_SETFONT As Long = &H30
Private WithEvents Command1 As CommandButton, WithEvents Command2 As CommandButton
Private Sub Command1_Click()
Me.Font.Name = "Comic Sans MS"
Me.Font.Size = 18
SendMessage Command1.hwnd, WM_SETFONT, SendMessage(Me.hwnd, WM_GETFONT, 0, ByVal 0&), ByVal 1&
Command2.Visible = True
End Sub
Private Sub Command2_Click()
Me.Font.Name = "Arial"
InvalidateRect Command1.hwnd, ByVal 0&, 1
Command1.Caption = "Что, сдох шрифт?"
End Sub
Private Sub Form_Load()
Me.ScaleMode = vbTwips
Me.Move Me.Left, Me.Top, 6360, 4710
Set Command1 = Me.Controls.Add("VB.CommandButton", "Command1")
With Command1
.Move 360, 360, 2775, 735
.Caption = "Сначала нажми меня"
.Visible = True
End With
Set Command2 = Me.Controls.Add("VB.CommandButton", "Command2")
With Command2
.Move 2520, 1800, 2775, 735
.Caption = "А теперь нажми меня"
End With
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас