Français
Source/ Codesnippets

Ownerdraw Sous-classe Trackmenu

 
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

 
14.02.2009  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.345 Views

Untitledvor 0 min.
Jörg Sellmeyer02.07.2018
Georg Teles30.01.2016
Ernst30.04.2014
Peter Max Müller10.09.2013
plus...

Themeninformationen

cet Thema hat 1 participant:

iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie