Картинка в кнопке (как в Nero Express)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Олег Козлов
Обычный пользователь
Обычный пользователь
 
Сообщения: 52
Зарегистрирован: 26.05.2005 (Чт) 15:56
Откуда: Нижний Тагил

Картинка в кнопке (как в Nero Express)

Сообщение Олег Козлов » 05.06.2005 (Вс) 6:10

В общем, такая ситуация:

В своей программе использую XP-шный стиль (ну, Manifest-файл толкаю в ресурсы и использую модуль:
Option Explicit
Private Type
tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type

Private Declare Function
InitCommonControlsEx _
Lib "comctl32.dll" _
(iccex As tagInitCommonControlsEx) As Boolean
Private Const ICC_USEREX_CLASSES = &H200

Sub Main()
Call InitCommonControlsXP: frm_main.Show
End Sub

Public Function
InitCommonControlsXP() As BooleanOn Error Resume Next
Dim
iccex As tagInitCommonControlsEx
With iccex
.lngSize = Len(iccex)
.lngICC = ICC_USEREX_CLASSES
End With
InitCommonControlsEx iccex
InitCommonControlsXP = CBool(Err = 0)
End Function


Так вот, чтобы в кнопку вставить помимо текста еще и картинку, то надо установить свойство Style кнопки в Графический. Но тогда у кнопки пропадает стиль XP. Можно ли это сделать без потери стиля (см. Nero Express - там XP-шные кнопки с картинками).

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

Сообщение GSerg » 05.06.2005 (Вс) 6:24

Замечания по коду.
  • Инициализировать надо ICC_STANDARD_CLASSES, а не ICC_USEREX_CLASSES
  • Err.Number при вызове API не изменяется. Поэтому правильно будет
    Код: Выделить всё
    InitCommonControlsXP = InitCommonControlsEx(iccex) <> 0


В остальном - в MSDN чётко написано, что стиль XP для VB6 не поддерживается, всё использование на свой страх и риск. Так что рисуй, к примеру, сам, через OWNERDRAW...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Олег Козлов
Обычный пользователь
Обычный пользователь
 
Сообщения: 52
Зарегистрирован: 26.05.2005 (Чт) 15:56
Откуда: Нижний Тагил

Сообщение Олег Козлов » 05.06.2005 (Вс) 7:53

Ну, а как это сделать?

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

Сообщение hCORe » 05.06.2005 (Вс) 14:56

Моду создают модоки, а распространяют модозвоны.

fort
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 10.05.2005 (Вт) 0:56
Откуда: Владивосток

Сообщение fort » 06.06.2005 (Пн) 3:52

Хм... Тут вот есть готовый контрол... в нем есть вариант ХР кнопок с картинками... :arrow:
http://www.vbstreets.ru/VB/Sources/Downloads_GetFile.aspx?id=65831
хороший юзер - мертвый юзер!!!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 176

    TopList