--------------
|[+] Новый|
--------------
где [+] - красивая иконка.
Тоже самое хочется сделать не используя Toolbar. А используя обычную кнопку CommandButton.
По умолчанию на кнопке иконка рисуется сверху посередине, а текст - снизу посередине:
--------------
|.....[+]......|
|...Новый...|
--------------
Выровнять надпись с помощью вот этого кода удается только для кнопки, у которой нет иконки (Style = Standart), а для Graphical не работает:
- Код: Выделить всё
Private Declare Function GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long)
Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
Const A_CENTER = &H300&
Const A_TOP = &H400&
Const A_TOPLEFT = &H500&
Const A_TOPRIGHT = &H600&
Const A_BOTTOM = &H800&
Const A_BOTTOMLEFT = &H900&
Const A_BOTTOMRIGHT = &HA00&
Const A_LEFT = &H100&
Const A_RIGHT = &H200&
Const GWL_STYLE& = (-16)
Private Sub Command1_Click()
Dim tmpValue&
Dim Align&
Dim ret&
'Данный пример расположит надпись на кнопке вверху кнопки
'Для того, чтобы расположить надпись в другом месте, используйте константы, начинающиеся с A_
fAlignment& = A_RIGHT
tmpValue& = GetWindowLong&(Command1.hwnd, GWL_STYLE) And Not BS_RIGHT
ret& = SetWindowLong&(Command1.hwnd, GWL_STYLE, tmpValue& Or fAlignment&)
Command1.Refresh
End Sub
Использовать Tolbar для каждой такой кнопки пока не охота по идеологическим причинам:
- это не круто
- использование Tolbar-а отличается от кнопки
- размер кнопки Tolbar-а нельзя установить самому, поэтому все нопки разного размера, если использовать свой Tolbar на каждую кнопку.
- все кнопки одинакового размера, если использовать один Tolbar на все кнопки, а это тоже выгляит ублюдочно, если на одной из кнопок 2-3 слова, а на других - по одному.
------------------------------------------------------------
Итак вопрос:
Как выровнять иконку на CommandButton слева от текста, используя API-функции, и не используя и не создавая других контролов.
------------------------------------------------------------