Français
Forum

mousemove

 

Ernst
d'abord la fois qui TestCode
KompilierenMarqueSéparation
 {$Iq}
Set("ErrorLevel",2)
Set("FastMode",1)
Declare WndClass#
Declare hwndClass$
Declare hwndName$
Struct myWindowClass = ~WNDCLASS
Dim WndClass#,myWindowClass
Declare msg#
struct tmsg = ~msg
Dim msg#,tmsg
hwndClass$   = "mywindow"
hwndName$    = "Test_Fenster"
'*****************************************************************************************

Proc WinMain

    With WndClass#

        .style&          = ~CS_HREDRAW | ~CS_VREDRAW
        .lpfnWndProc&    = ProcAddr(Fensterproc,4)
        .cbClsExtra&     = 0
        .cbWndExtra&     = 0
        .hInstance&      = %hInstance
        .hIcon&          = ~LoadIcon(0,~IDI_Winlogo)
        .hCursor&        = ~LoadCursor(0, ~IDC_ARROW)
        .hbrBackground&  = ~createsolidbrush(RGB(150,150,150))
        .lpszMenuName&   = 0
        .lpszClassName&  = Addr(hwndClass$)

    EndWith

    ~RegisterClass(WndClass#)
    dispose wndclass#
    var hwnd& = ~CreateWindowEx(0,Addr(hwndClass$),Addr(hwndName$),$02CA0000,100,100,1000,700,0,0,%hInstance,0)
    ~ShowWindow(hwnd&, ~SW_SHOWNORMAL)

    While ~GetMessage(Msg#, 0, 0, 0) > 0

        ~TranslateMessage(Msg#)
        ~DispatchMessage(Msg#)

    EndWhile

EndProc

'*****************************************************************************************
WinMain
dispose msg#
END
' ****************************************************************************************

nProc FensterProc

    Parameters Wnd&, Message&, wParam&, lParam&
    Var wDC&=~getDC(wnd&)

    IF message& = ~WM_CLOSE

        ~PostQuitMessage(0)

    ElseIf message& = ~wm_mousemove

        LONG hv=dim(16)
        setlong(hv&,0,16)
        setlong(hv&,4,~TME_HOVER | ~TME_LEAVE)
        setlong(hv&,8,wnd&)
        setlong(hv&,12,~HOVER_DEFAULT)
        ~TrackMouseEvent(hv&)
        dispose(hv&)
        ' test_1(wDC&,wnd&)

    ElseIF message& = ~wm_mousehover

        test_1(wDC&,wnd&)

    ElseIF message& = ~wm_mouseleave

        test_2(wDC&,wnd&)

    EndIf

    Return ~DefWindowProc(Wnd&, Message&, wParam&, lParam&)

EndProc

'*****************************************************************************************

nproc test_1

    Parameters wDC&,Wnd&
    LONG c_rect=Dim(16)
    LONG text=dim(255)
    ~GetClientRect(Wnd&,c_rect)
    ~DeleteObject(~SelectObject(wDC& ~CreateSolidBrush(rgb(0,255,0))))
    ~DeleteObject(~SelectObject(wDC&, ~CreatePen(~PS_SOLID, 1,rgb(0,255,0))))
    ~RoundRect(wDC&, 400, 300, LONG(c_rect,8)-300,long(c_rect,12)-300, 20, 20)
    ~SetBkMode(wDC&, ~TRANSPARENT)
    ~SetTextColor(wDC&,rgb(255,255,0))
    ~GetWindowText(Wnd&, Text, ~globalsize(Text)-1)
    ~DrawTextEx(wDC&,Text,Len(STRING$(Text,0)),c_rect,~DT_SINGLELINE | ~DT_VCENTER | ~DT_CENTER,0)
    dispose(c_rect)
    dispose(text)

EndProc

' ----------------------------------------------------------------------------------------

nproc test_2

    Parameters wDC&,Wnd&
    LONG c_rect=Dim(16)
    ~GetClientRect(Wnd&,c_rect)
    ~DeleteObject(~SelectObject(wDC& ~CreateSolidBrush(rgb(255,255,0))))
    ~DeleteObject(~SelectObject(wDC&, ~CreatePen(~PS_SOLID, 1,rgb(255,255,0))))
    ~RoundRect(wDC&, 400, 300, LONG(c_rect,8)-300,long(c_rect,12)-300, 20, 20)
    dispose(c_rect)

EndPr
'*****************************************************************************************
si je qui souris ununterbrochen dedans des Fensters bewege (doit pas vite son) so gibt es pour ca. 15 jusqu'à max. 30 sec folgende Situationen:
a/ roundrect (vert) friert un (wechselt pas pour jaune , si le souris außerhalb des Fensters ist)
b/ roundrect (vert) wird à gauche au-dessus de dans sais nochmal abgebildet.
si je cette Situtation (chez beiden Opportunités) cela la fenêtre Déplacer veux gibt es qui wüstesten Bildschirmeffekte.
c'est aussi égal si je test_1 unter wm_mousemove ou bien wm_mousehover aufrufe; irgendwo bien sûr, là oui beide messages chez Mausbewegungen andauernd gefeuert volonté, mais cela pourrait doch seulement un extremes Flackern des roundrect hervorrufen.
Hab je là irgendwas übersehen ??
 
17.05.2014  
 




Nico
Madysa
Habe den Voir le texte source justement seulement survolés, mais si du dir un Handle avec GetDC  donner peut, musst du es pas hinterher aussi avec ReleaseDC  wieder freigeben?

[OFFTOPIC]
Blöder Kommentar am Rande: si dein XProfan-Voir le texte source so aussieht, peux du aussi juste C ou bien C++ écrivons.
[/OFFTOPIC]
 
17.05.2014  
 




Ernst
Ernst (17.05.14)
Hab je là irgendwas übersehen ??


@Nico
Uiuiuiui - et comment je quoi übersehen habe - merci pour deinen Aufklärungsflug (je hätte es sûrement encore stundenlang übersehen)

[OFFTOPIC]
dein blöder Kommentar am Rande  ist pas so blöd, mais à cause de qui nProcs verwende je doch vermehrt APIs
[/OFFTOPIC]
 
17.05.2014  
 



répondre


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

4.978 Views

Untitledvor 0 min.
Matzbub03.02.2024
Sven Bader06.07.2023
p.specht19.11.2018
Ernst17.05.2016
plus...

Themeninformationen

cet Thema hat 2 participant:

Ernst (2x)
Nico Madysa (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