| |
|
|
 | TrackMenu SubClass OwnerDraw [...] 
Andreas Miethe
Ist sur qui Schnelle zusammenkopiert, alors encore pas entier ausgereift. 'En-tête des fichiers
$H windows.ph
$H messages.ph
Déclarer Ende&
Déclarer Rect1#,hIcon1&,lpmis#,Size#
Faible Rect1#,16
Faible lpmis#,24
Faible Size#,8
Déclarer MyItem#[3]'reicht pour 4 Einträge
Struct Item = Eintrag&,Icon&
Faible MyItem#[],Item
Var Text$ = "Info"
Var Text2$ = "Beenden"
MyItem#[0].Eintrag& = Addr(Text$)
MyItem#[1].Eintrag& = Addr(Text2$)
MyItem#[0].Icon& = ~LoadIcon(%hInstance,"A")
MyItem#[1].Icon& = ~LoadIcon(%hInstance,"Eimer")
Proc Menue
CreateMenu
AppendMenu 101, "Info"
~ModifyMenu(&hMenu,101,~MF_BYCOMMAND | ~MF_OWNERDRAW,101,MyItem#[0])
AppendMenu 103, "Beenden"
~ModifyMenu(&hMenu,103,~MF_BYCOMMAND | ~MF_OWNERDRAW,103,MyItem#[1])
Retour @TrackMenu()
ENDPROC
Windowstyle 26 + 512
Titre de la fenêtre "Test"
Fenêtre 0,0-640,480
SubClass %HWnd, 1
Whilenot Ende&
Waitinput
Si %MousePressed = 2'Rechter Mausbutton gedrückt
Menue()
Si (%MenuItem = 101)
@Messagebox("Programmiert dans XProfan 11","Hinweis",64)
ElseIf (%MenuItem = 103)
Ende&=1
EndIf
Endif
Endwhile
Dispose Rect1#,lpmis#,Size#
Fin
SubClassProc
Si SubClassMessage(%hWnd,~WM_MEASUREITEM)
lpmis# = &slParam
~GetTextExtentPoint32(%hdc,Long(Long(&slParam,20),0),Len(String$(Long(Long(&slParam,20),0),0)),Size#)
Long lpmis#,12 = Long(Size#,0)
Set("WinProc", 0)
ElseIf SubClassMessage(%hWnd,~WM_DRAWITEM)
IF Long(&slParam,16) & 1'si selektiert
~SetTextColor(Long(&slParam,24),$FFFFFF)
~SetBkColor(Long(&slParam,24),$8000)
D'autre
~SetTextColor(Long(&slParam,24),0)
~SetBkColor(Long(&slParam,24),$FCFDC8)
EndIf
'Rechteck pour qui Ausgabe ermitteln
Long Rect1#,0 = Long(&slParam,28)'X
Long Rect1#,4 = Long(&slParam,32)'Y
Long Rect1#,8 = Long(&slParam,36)'Breite
Long Rect1#,12 =Long(&slParam,40)'Hauteur
'Ausgabe
~ExtTextOut(Long(&slParam,24),Long(&slParam,28)+20,Long(&slParam,32),~ETO_OPAQUE,Rect1#,Long(Long(&slParam,44),0),Len(String$(Long(Long(&slParam,44),0),0)) ,0)
~DrawIconEx(Long(&slParam,24),0,Long(&slParam,32),Long(Long(&slParam,44),4),13,13,0,0,~DI_NORMAL)
Set("WinProc", 0)
EndIf
ENDPROC
|
|
|
| |
|
|