Стили тулбаров! Срочная помощь!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Стили тулбаров! Срочная помощь!

Сообщение hCORe » 04.02.2004 (Ср) 11:53

:?: Нужна помощь! Как при помощи SetWindowLong API установить плоский стиль кнопок для тулбара из MS Windows Common Controls 5 SP2? Мучался с константами, читал API-Guide - безрезультатно.

:arrow: Теперь - для чего это надо. У меня есть программа в стиле XP, соответственно на коммон контролах версии 5, шестая версия не работает и "весит" гораздо больше. Но при отключенных стилях XP окна выглядят очень некрасиво, хотелось бы установить нормальный плоский стиль кнопок (чтобы не выпирали :wink:)

:idea: Можно и нужно давать советы с конкретными примерами!
Моду создают модоки, а распространяют модозвоны.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 04.02.2004 (Ср) 20:22

И никто не поможет бедному ВБ-шному программеру, а :|?
Моду создают модоки, а распространяют модозвоны.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.02.2004 (Чт) 9:54

Можно и нужно, да... Я читал статьи на эту тему... При попытке сделать то, что там было написано, процесс грохался.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 05.02.2004 (Чт) 13:59

Люди! Я сам только что нашел решение проблемы :twisted:... Я устанавливается стиль окна всего тулбара, а надо было ставить стиль кнопок. В общем этот код работает "на ура":

Код: Выделить всё
'Установим константы

Public Const WM_USER = &H400
Public Const TB_SETSTYLE = WM_USER + 56
Public Const TB_GETSTYLE = WM_USER + 57
Public Const TBSTYLE_FLAT = &H800
Public Const TBSTYLE_TOOLTIPS = &H100
Public Const TBSTYLE_WRAPABLE = &H200
Public Const TBSTYLE_ALTDRAG = &H400
Public Const TBSTYLE_LIST = &H1000
Public Const TBSTYLE_CUSTOMERASE = &H2000

'Объявим функции

Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _
  (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   ByVal lParam As Long) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
  (ByVal hWnd1 As Long, _
   ByVal hWnd2 As Long, _
   ByVal lpsz1 As String, _
   ByVal lpsz2 As String) As Long

'Сделать плоский тулбар

Public Sub FlatBar(ByVal tb As ToolBar)
  Dim style As Long
   Dim hToolbar As Long
   Dim r As Long
   hToolbar = FindWindowEx(tb.hwnd, 0&, "ToolBarWindow32", vbNullString)
   style = SendMessageLong(hToolbar, TB_GETSTYLE, 0&, 0&)
   If style And TBSTYLE_FLAT Then
         style = style Xor TBSTYLE_FLAT
   Else: style = style Or TBSTYLE_FLAT
   End If
   r = SendMessageLong(hToolbar, TB_SETSTYLE, 0, style)
   tb.Refresh
End Sub
Моду создают модоки, а распространяют модозвоны.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 8

    TopList