Wenn ich unter Windows Vista größere Symbole in einem Menü eines Fensters (z.B. 48 x 48 px), kann ich einfach mit CreateImage() ein Bild erstellen, da drauf zeichnen und mit der WinAPI-Funktion SetMenuItemBitmaps_() das Bild in das Menü reinmachen.
Wenn ich das Programm dann aber unter Windows XP starte, sind die Symbole zwar in der Größe, aber es wird nur der obere linke Teil (Ich glaub 16 x 16 Pixel) von dem Bild angezeigt.
Woran liegt das?
Hier der Code:
Code: Alles auswählen
ImageID=CatchImage(0,?Icon)
If OpenWindow(0,100,100,500,300,"MenuIcon")
If CreateMenu(0,WindowID(0))
MenuTitle("Test")
For IconSize=8 To 64 Step 8
Image=CreateImage(#PB_Any,IconSize,IconSize)
If IsImage(Image)
If StartDrawing(ImageOutput(Image))
Box(0,0,IconSize,IconSize,GetSysColor_(#COLOR_MENU))
DrawImage(ImageID,0,0,IconSize,IconSize)
StopDrawing()
EndIf
EndIf
MenuItem(IconSize,Str(IconSize)+" x "+Str(IconSize)+" px")
SetMenuItemBitmaps_(MenuID(0),iconSize,#MF_BYCOMMAND,ImageID(Image),ImageID(Image))
Next
EndIf
Repeat:Until WaitWindowEvent()=16
EndIfWindows Vista
Windows XP




