powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ToolBar как в IE
8 сообщений из 8, страница 1 из 1
ToolBar как в IE
    #32598325
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает как сделать панель инструментов как в IE. Чтобы подписи, справа, были не у всех кнопок, и ширина кнопок без подписей соответствовала размерами иконки?
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32598565
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне как то хватало обычных тулбаров.

Некоторые поступают так. Берут ФотоШоп и клепают там картинки с подписями, а потом используют это в ВБ как image. Тоже выход с одной стороны.
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32598580
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ширина всех кнопок все равно увеличится по размеру Image с подписью. То-же самое делается проще, задавая Caption не для всех кнопок.
Так не пойдет.
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32598940
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у кого-нибудь есть живой пример использования CreateToolbarEx()? Я прочитал, что с ее помощью можно сделать то, что я хочу. Но не нашел ни одного примера.
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32601605
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подробное писание с примерами, правда на С++
При желании можно разобраться

тынц
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32602662
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я этот пример еще позовчера нашел, Списибо,сижу ковыряюсь. Думал может у кого-нибудь пример на VB есть.
Может кто знает на С++, например:
Код: plaintext
#define TBSTATE_ENABLED         0x04
А на VB:
Код: plaintext
Public Const TBSTATE_ENABLED As Integer =  4 
Я правильно предполагаю?
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32604866
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
У меня возникла пара вопросов. Не пойму как задать два параметра для функции CreateToolbarEx, выделил синим цветом.
Описание функции :
CreateToolbarEx(
HWND hwnd, // идентификатор родительского окна
DWORD ws, // стили окна Toolbar
UINT wID, // идентификатор органа Toolbar
int nBitmaps,// количество пиктограмм с изображением кнопок
HINSTANCE hBMInst, // идентификатор приложения
UINT wBMID, // идентификатор битового изображения кнопок
LPCTBBUTTON lpButtons, // адрес описания кнопок
int iNumButtons, // количество кнопок
int dxButton, // ширина кнопок (в пикселах)
int dyButton, // высота кнопок
int dxBitmap,// ширина пиктограмм, нарисованных на кнопках
int dyBitmap,// высота пиктограмм, нарисованных на кнопках
UINT uStructSize // размер структуры в байтах)

1. Не получается вернуть по ссылке массив с описанием кнопок. Если раскомментировать строку в коде:
Код: plaintext
    'CreateaTbButtons = aTbBottons
, то выдает ошибку: не соответствие типов. А без этой строчки Toolbar создается с "левыми" кнопками.

2. Как можно определить размер структуры в байтах? Я так на угад 300 задал.
Код: plaintext
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.
Option Explicit
  
' Флаги исходного состояния кнопки:
Public Const TBSTATE_ENABLED As Integer = 4        ' кнопка находится в разблокированном состоянии
Public Const TBSTATE_CHECKED As Integer =  1         ' кнопка изображается в нажатом состоянии, этот флаг
                                                   ' используется для кнопок с фиксацией
Public Const TBSTATE_HIDDEN As Integer =  8          ' скрытая кнопка, не отображается
Public Const TBSTATE_INDETERMINATE As Integer = 16 ' кнопка отображается серым цветом
Public Const TBSTATE_PRESSED As Integer =  2         ' кнопка изображается в нажатом состоянии
Public Const TBSTATE_WRAP As Integer = 32          ' кнопки, расположенные после той, что имеет флаг
                                                   ' TBSTATE_WRAP, отображаются на новой строке. Таким образом,
                                                   ' вы можете создать многострочный Toolbar . Этот флаг можно
                                                   ' указывать только тогда, когда установлен флаг TBSTATE_ENABLED
' Стиль кнопки:
Public Const TBSTYLE_BUTTON As Integer =  0      ' стандартная кнопка
Public Const TBSTYLE_CHECK As Integer = 2      ' кнопка с фиксацией. Эта кнопка "залипает", когда пользователь
                                               ' нажимает на нее. Для того чтобы вернуть кнопку в исходное
                                               ' состояние, необходимо нажать на нее еще раз
Public Const TBSTYLE_CHECKGROUP As Integer =  8  ' кнопка с фиксацией, которая остается нажатой до тех пор,
                                               ' пока нажата другая кнопка из этой же группы
Public Const TBSTYLE_GROUP As Integer =  4       ' стандартная кнопка, которая остается нажатой до тех пор,
                                               ' пока нажата другая кнопка из этой же группы
Public Const TBSTYLE_SEP As Integer =  1         ' разделитель между группами кнопок

' Флаги и стили окна Toolbar
Public Const WS_CHILD As Long =  1073741824 
Public Const WS_VISIBLE As Long =  268435456 
Public Const WS_BORDER As Long =  8388608 
Public Const TBSTYLE_TOOLTIP As Integer =  256   ' Вывод краткого описания кнопки в окне органа управления Tool Tip
Public Const TBSTYLE_ALTDRAG As Integer = 1024 '
Public Const TBSTYLE_WRAPABLE As Integer =  512  '

Код: plaintext
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.
Option Explicit

Private Declare Function CreateToolbarEx Lib "comctl32" (ByVal hWndParent As Long, ByVal dwStyle As Long, ByVal wID As Long, ByVal nBitmaps As Long, ByVal hBMInst As Long, ByVal wBMID As Long, lpButtons As TBBUTTON, ByVal iNumButtons As Long, ByVal dxButton As Long, ByVal dyButton As Long, ByVal dxBitmap As Long, ByVal dyBitmap As Long, ByVal uStructSize As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Type TBBUTTON
  iBitmap As Integer
  idCommand As Integer
  fsState As Byte
  fsStyle As Byte
  dwData As Long
  iString As Long
End Type

Private hwndTb As Long

Private Sub Form_Load()
    hwndTb = CreateToolbarEx(Me.hWnd, WS_CHILD Or WS_VISIBLE Or TBSTYLE_TOOLTIP,  801 ,  2 , App.hInstance,  0 , CreateaTbButtons,  3 ,  20 ,  20 ,  20 ,  20 ,  300 )
End Sub

Private Function CreateaTbButtons() As TBBUTTON
Dim aTbBottons( 0  To  2 ) As TBBUTTON
    aTbBottons( 0 ).iBitmap =  0 
    aTbBottons( 0 ).idCommand =  0 
    aTbBottons( 0 ).fsState = TBSTATE_ENABLED
    aTbBottons( 0 ).fsStyle = TBSTYLE_SEP
    aTbBottons( 0 ).dwData =  0 
    aTbBottons( 0 ).iString =  0 
    aTbBottons( 1 ).iBitmap =  1 
    aTbBottons( 1 ).idCommand =  100 
    aTbBottons( 1 ).fsState = TBSTATE_ENABLED
    aTbBottons( 1 ).fsStyle = TBSTYLE_BUTTON
    aTbBottons( 1 ).dwData =  0 
    aTbBottons( 1 ).iString =  1 
    aTbBottons( 2 ).iBitmap =  2 
    aTbBottons( 2 ).idCommand =  200 
    aTbBottons( 2 ).fsState = TBSTATE_ENABLED
    aTbBottons( 2 ).fsStyle = TBSTYLE_BUTTON
    aTbBottons( 2 ).dwData =  0 
    aTbBottons( 2 ).iString =  2 
    'CreateaTbButtons = aTbBottons
End Function
...
Рейтинг: 0 / 0
ToolBar как в IE
    #32607095
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за помощь. Все что было не ясно нашел в MSDN. Тема закрыта.
А вообще прикольно самому с собой общаться.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ToolBar как в IE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]