Как в стандартное меню вставить картинки?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как в стандартное меню вставить картинки? Expand / Collapse
Автор
Сообщение
08.06.2000 10:03
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 17.06.2000 2:39
Сообщ.: 257, Visits: 2 861
Не могу вставить картинки в стандартное меню (как в MS Office). Помогите.
Сообщ. #487
09.06.2000 11:26
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.06.2000 11:25
Сообщ.: 10, Visits: 111

1.Создайте форму.
2.На форме создайте три картинки Image1, Image2, Image3.
И "приклейте" к ним какие-нибудь пикчеры ;-). Но учтите,
что картинки должны быть очень маленькие!!! Бэйсик их не будет
Вам упаковывать и "втискивать" к пунктам, он их просто не покажет.
3.Создаём на форме меню: Верхний уровень (заголовок) пусть
будет File и три подуровня, пусть они называются Open, Save,
Exit. Имена для их событий в поле Name Вы можете использовать
любые.
4.Теперь в самый верх формы вписываем:

'функция GetMenu определяет форму с нужным меню
Private Declare Function GetMenu Lib "user32" _
(ByVal hwnd As Long) As Long
'функция GetSubMenu определяет заголовок меню _
с которым будет идти работа
Private Declare Function GetSubMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPos As Long) As Long
'функция GetMenuItemID определяет пункт меню с которым
'будет идти работа
Private Declare Function GetMenuItemID Lib "user32" _
(ByVal hMenu As Long, ByVal nPos As Long) As Long
'функция SetMenuItemBitmaps приклеивает к определённому
'пункту меню картинку
Private Declare Function SetMenuItemBitmaps Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal _
wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal _
hBitmapChecked As Long) As Long

Private Const MF_BITMAP = &H4&

5.В Form_Load пишем:

Private Sub Form_Load()
Dim hMenu&, hSubMenu&, hMenuItem& 'объявление переменых типом Long

'определяем на какой форме нам нужно меню
hMenu = GetMenu(Form1.hwnd)
'определяем заголовок, если у Вас есть, например
'File и Edit, то индексом задаёте нужный
hSubMenu = GetSubMenu(hMenu, 0)

'здесь мы определяем, что работать хотим с первым _
пунктом меню, т.к. индекс равен 0
hMenuItem = GetMenuItemID(hSubMenu, 0)
'"клеим" картинку к первому пункту
SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, _
Image1.Picture, Image1.Picture

'здесь мы определяем, что работать хотим со вторым _
пунктом меню, т.к. индекс равен 1
hMenuItem = GetMenuItemID(hSubMenu, 1)
'"клеим" картинку ко второму пункту
SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, _
Image2.Picture, Image2.Picture

'здесь мы определяем, что работать хотим с третьим _
пунктом меню, т.к. индекс равен 2
hMenuItem = GetMenuItemID(hSubMenu, 2)
'"клеим" картинку к третьему пункту
SetMenuItemBitmaps hMenu, hMenuItem, MF_BITMAP, _
Image3.Picture, Image3.Picture

End Sub

PS: Есть еще несколько других способов....
кинь адрес - пришлю....
Сообщ. #496
09.06.2000 11:29
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 17.06.2000 2:39
Сообщ.: 257, Visits: 2 861
Гигантское спасибо!!!!!!!

Мой адрес:
hmoll@online.ru

Благодарю еще раз!
Сообщ. #497
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Comanche, Alexey Spirin

Время GMT +3:00, Сейчас 4:19