·  Start ·  Programme ·  Codes ·  Tipps ·  ActiveX ·  Tutorials · 



Für dieses Beispiel benötigen Sie eine Form, 1 Label, 1 Textbox, 1 Picturebox. Picturebox.Name = bild1 ; .Index = 0 !
Einen Menüeintrag mit .Name mnuF1 und .Index = 0

Option Explicit 
 
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 GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long 
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, _
ByVal wIDNewItem As Long, ByVal lpString As Any) As Long 
 
Private Const MF_BYCOMMAND = &H0&
Private Const MF_BITMAP = &H4&
 
 
' Variablen für Handles und sonst deklarieren : 
Dim hMenu&, hSubMenu&, menuID&
Dim i&, n&

Private Sub changeMenu() ' ändert das Schriftartenmenü 
  For i = 0 To n   ' jeder Eintrag wird durch Bitmap ersetzt 
  ' Laden des i-ten Bildfelds mit Schrift : 
  bild1(i).Font.Name = Screen.fonts(i)
  bild1(i).Height = bild1(i).TextHeight(Screen.fonts(i))
  bild1(i).Print Screen.fonts(i)     ' Eintragen des Fontnamens 
  bild1(i).Picture = bild1(i).Image  ' wird zum Hintergrundbild 
  ' Aufruf der API-Funktionen für Änderung des i-ten Eintrags : 
  menuID = GetMenuItemID(hSubMenu, i) ' Menü-Handle für i-ten Eintrag 
  Call ModifyMenu(hMenu, menuID, MF_BYCOMMAND Or MF_BITMAP, menuID, CLng(bild1(i).Picture))
  Next i
End Sub 

Private Sub Form_Load()
  ' Aufruf der API-Funktionen für Menü-Handle-Ermittlung : 
 hMenu = GetMenu(hwnd)             ' gesamtes Menü 
 hSubMenu = GetSubMenu(hMenu, 0)   ' Schriftfonts-Menü 
  ' Aufbau einer leeren Menüliste und eines Bildfeld-Arrays : 
  n = Screen.FontCount - 1  ' maximale Anzahl von Bildschirmfonts 
  If n > 25 Then n = 25     ' Begrenzung auf 25 Menüeinträge 
  For i = 1 To n            ' Elemente mit Index 0 bereits vorhanden ! 
    Load mnuF1(i)           ' Hinzufügen eines (Dummy) Menüeintrags 
    Load bild1(i)           ' Hinzufügen eines (leeren) Bildfelds 
  Next i
 
  Call changeMenu
 
End Sub 

Private Sub mnuF1_Click(Index As Integer)
'Click auf Menüeintrag zeigt die ausgewählte 
'Schrift im Text an... 
    Text1.Font = Screen.fonts(Index)
    Label1.Caption = "Ausgewählte Schrift: " & Screen.fonts(Index)
 
End Sub 
Aktualisiert: 12.02.2008, 14:11 Uhr Copyright © 2001 - 2010 by ST-software Navigation zurück  |  Navigation vorwärts  |  Zum Seitenanfang     
Ihre IP: 38.107.191.82 ·  Seite erstellt in: 0.310 Sekunden ·  Dateigröße:  4332 Bytes