Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
648to652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
648to652
648to652
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Knifflige Sache : UserForm-Menü mit Icon

Knifflige Sache : UserForm-Menü mit Icon
11.08.2005 15:36:46
Frank
Hai,
ich versuche meinem UserForm ein "professionelles" Ausehen zu geben,
also muss ein Menü her und auf diesem rechts Icon, genaus wie in den Excel Memüs!
Meine Struktur :
Public Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
hbmpItem As Long 'erst ab Win2000
End Type
meine Klassen -

Sub :
Public 

Sub CreateSubMenu(ByVal MenuID As Long, _
ByVal MenuCaption As String, _
ByVal HasSubMenu As Boolean, _
ByVal Position As Long, _
Optional PaintSeparator As Boolean = False, _
Optional BitMapHandle As Long = 0)
MnuError = 0
If (hUFMenu = 0 And hPopUpMenu = 0) Or Len(MenuCaption) = 0 Then Exit Sub
With mnuItemInfo
.cbSize = Len(mnuItemInfo)
.fMask = MIIM_TYPE Or MIIM_SUBMENU Or MIIM_ID 'Or MIIM_BITMAP
.fType = MF_STRING
If PaintSeparator Then
.fType = MF_SEPARATOR
End If
.wID = MenuID
.hSubMenu = 0
If PaintSeparator Then GoTo InsertMe
If BitMapHandle = 0 Then GoTo NoBitmap
.hbmpItem = BitMapHandle
NoBitmap:
If HasSubMenu Then .hSubMenu = hPopUpMenu
.dwTypeData = MenuCaption
.cch = Len(.dwTypeData)
InsertMe:
End With
InsertMenuItem hPopUpMenu, Position, True, mnuItemInfo
MnuError = -1
End Sub

ermitteln der Bitmap handles!!
Public

Function SetMenuItemBitMap(ByVal PicLocation As String, _
ByVal PicPosition As Long) As Long
Dim hPic As Long
Dim hSubMenu As Long
If hUFMenu = 0 Then Exit Function
hPic = user32.LoadImage(UFHandle, _
PicLocation, _
IMAGE_BITMAP, _
16, _
16, _
LR_LOADFROMFILE)
SetMenuItemBitMap = hPic
End Function

in dem Formular wir gehabt ...
1. UserForm Handle ermittlen ... FindWindow(.....
2. Menü erzeugen!
3. bei bedarf SubMenü erzeugen!
Menüs werden erzeugt aber keine Icon rechts neben den Einträgen!
Hat jemand über das Problem schon nachgedacht und eine Lösung?
Hab mal gegoogelt und folgenden Link gefunden :
http://64.233.183.104/search?q=cache:vJ0OBe8dxkIJ:www.ttvnol.com/f_147/193561/trang-17.ttvn+Public+Type+MENUITEMINFO+cbSize+As+Long+fMask+As+Long+fType+As+Long+fState+As+Long+wID+As+Long+hSubMenu+As+Long+hbmpChecked+As+Long+hbmpUnchecked+As+Long+hbmpItem+As+Long+dwItemData+As+Long+dwTypeData+As+String+cch+As+Long+End+Type&hl=de
aber der Code ist starker Tobak! ausserdem möchte ich keine ASM.....
Gruss Frank

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Knifflige Sache : UserForm-Menü mit Icon
11.08.2005 17:16:18
Fred
Hi,
warum nicht einfach die Toolbar und ImageList aus den CommonControls?
Ist bedeutend einfacher.
mfg Fred
AW: Knifflige Sache : UserForm-Menü mit Icon
11.08.2005 17:56:55
Frank
Tach,
ja schon richtig, aber ImageList ist "nicht korrekt lizensiert!" was daruaf zurückzuführen ist das bestimmte ocx hier in der Firma nicht in der Registry definiert
sind (und das wohl auch blieben, da ich keine Rechte besitze um das zu ändern!!!!)
Also kein Imagelist!
'Mal ne böde Frage vielleicht einen Link oder Beispiel-Code oder 'ne andere Idee?
Gruss Frank
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige