Как всё-таки добавить иконки в меню ?

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

Как всё-таки добавить иконки в меню ?

Сообщение Shurik90 » 09.11.2003 (Вс) 0:27

Как же всё-таки добавить иконки в меню ?

Перерыл весь поиск, нашёл много очень сложных и длинных кодов на эту тему. Нашёл и один понятный и удобный:
Код: Выделить всё
Const MF_BYPOSITION = &H400&
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
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 Sub SetMenuIcons()
    Dim hMenu As Long, hSubMenu As Long

    hMenu = GetMenu(Me.hwnd)
    hSubMenu = GetSubMenu(hMenu, 0)   

    SetMenuItemBitmaps hSubMenu, 0, MF_BYPOSITION, Pictire1.Picture, Picture1.Picture   

End Sub


Всё хорошо, но вставлять можно только картинки в формате .bmp, а мне надо иконки !!!

Кто знает как ? Помогите, а ?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.11.2003 (Вс) 0:55

А почему тебе нужны именно иконки?

P.S. иконка (.ico) отличается от битовой карты (.bmp) первыми двумя байтами - у битмэпа они содержат "BM" (коды 66 и 77). Запиши иконку как bmp и вперёд!

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 09.11.2003 (Вс) 9:26

Именно иконки мне нужны потому, что у них прозрачный фон. Когда я конвертирую из .ico в .bmp, то получаю серый и не красивый фон вокруг рисунка.
А изменить расширение на .bmp я пробовал - не помогает. Ошибок не выдаёт, просто не видно иконку...

А можно как-то поменять первые два байта без обычного конвертирования ?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.11.2003 (Вс) 11:00

Даа, проблема... А серый фон от цвета меню можно сделать неотличимым? :)

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 09.11.2003 (Вс) 14:39

А как изменить цвет меню ? Или ты имел ввиду изменить фон у иконки ? Так он там серо-коричневый, ни на что не похожий...
Кстати, переделываю в jpg и тоже видно нормально. Щас проверю как с фоном.


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

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

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

    TopList