Français
Forum

Mausabfrage unterschied tête- et Nebenfenster

 
- page 1 -



Julian
Schmidt
pourquoi funktioniert qui Mausabfrage im Hauptfenster so comment vous soll et im Nebenfenster seulement pour Bestätigung de Enter?

Code sur Hauptfenster:
KompilierenMarqueSéparation
DEF GetDC(1) !"USER32","GetDC"
DEF CreateCompatibleDC(1) !"GDI32","CreateCompatibleDC"
DEF CreateCompatibleBitmap(3) !"GDI32","CreateCompatibleBitmap"
DEF SelectObject(2) !"GDI32","SelectObject"
DEF BitBlt(9) !"GDI32","BitBlt"
DEF GetCurrentObject(2) !"GDI32","GetCurrentObject"
DEF DeleteObject(1) "GDI32","DeleteObject"
DEF DeleteDC(1) !"GDI32","DeleteDC"
DEF ReleaseDC(2) !"USER32","ReleaseDC"

proc Screenshot

    Parameters xpos%,ypos%,maxX!,maxY!
    declare hdc&, hmdc&
    hdc& = GetDC(0)
    hmdc& = CreateCompatibleDC(hdc&)
    hbitmap& = CreateCompatibleBitmap(hdc&,maxX!,maxY!)
    SelectObject(hmdc&, hbitmap&)
    BitBlt(hmdc&, 0, 0, maxX!, maxY!, hdc&, xpos%, ypos%, $0CC0020)
    hbitmap& = GetCurrentObject(hmdc&, 7)
    DeleteDC(hmdc&)
    ReleaseDC(0,hdc&)

endproc

declare zaehler%, xpos%, ypos%, breite%, hoehe%, mod%,hbitmap&
Windowstyle 16+64
Window 0,0-0,0
ShowMax %hwnd
SetWindowPos %hwnd=99999999,99999999
Screenshot 0,0,%MaxX,%MaxY
SetWindowPos %hwnd=0,0
DrawPic hbitmap&, 0, 0; 0
UseCursor 3

while 1

    sleep 50

    if iskey(27)

        mod%=1
        Break

    Endif

    if %MousePressed

        zaehler%=zaehler%+1

        if zaehler%=1

            xpos%=%MouseX
            ypos%=%MouseY
            UsePen 0,2,RGB(255,0,0)
            Line %MouseX,0 - %MouseX,%MaxY
            Line 0,%MouseY - %MaxX,%MouseY
            sleep 100

        elseif zaehler%=2

            breite%=%MouseX-xpos%
            hoehe%=%MouseY-ypos%
            UsePen 0,2,RGB(255,0,0)
            Line %MouseX,0 - %MouseX,%MaxY
            Line 0,%MouseY - %MaxX,%MouseY

        Endif

    Endif

    case zaehler%=2 : Break

Endwhile

case mod%<>1 : Messagebox(Str$(xpos%)+","+Str$(ypos%)+"-"+Str$(breite%)+","+Str$(hoehe%),"",64
n> end

Code sur Nebenfenster:
KompilierenMarqueSéparation
DEF GetDC(1) !"User32","GetDC"
DEF CreateCompatibleDC(1) !"GDI32","CreateCompatibleDC"
DEF CreateCompatibleBitmap(3) !"GDI32","CreateCompatibleBitmap"
DEF SelectObject(2) !"GDI32","SelectObject"
DEF BitBlt(9) !"GDI32","BitBlt"
DEF GetCurrentObject(2) !"GDI32","GetCurrentObject"
DEF DeleteObject(1) "GDI32",«DeleteObject»
DEF DeleteDC(1) !"GDI32","DeleteDC"
DEF ReleaseDC(2) !"User32","ReleaseDC"

proc Screenshot

    Paramètres xpos%,ypos%,maxx!,maxY!
    declare hdc&, hmdc&
    hdc& = GetDC(0)
    hmdc& = CreateCompatibleDC(hdc&)
    hbitmap& = CreateCompatibleBitmap(hdc&,maxx!,maxY!)
    SelectObject(hmdc&, hbitmap&)
    BitBlt(hmdc&, 0, 0, maxx!, maxY!, hdc&, xpos%, ypos%, $0CC0020)
    hbitmap& = GetCurrentObject(hmdc&, 7)
    DeleteDC(hmdc&)
    ReleaseDC(0,hdc&)

endproc

declare zaehler%, xpos%, ypos%, breite%, hoehe%, hbitmap&
Windowstyle 24
Fenêtre 100,200,500,500
CopyArea
end

Proc CopyArea

    declare mod%,zaehler%,infowindow&
    Windowstyle 16+64'$F0
    infowindow&=Créer("Window",%hwnd,»,0,0,%MaxX,%MaxY)
    showwindow(infowindow&,0)
    Screenshot 0,0,%MaxX,%MaxY
    showwindow(infowindow&,1)
    startpaint infowindow&
    DrawPic hbitmap&, 0, 0; 0
    EndPaint
    UseCursor 3
    declare xpos%,ypos%,breite%,hoehe%

    tandis que 1

        waitinput

        si iskey(27)

            mod%=1
            Pause

        Endif

        'si %MousePressed
        zaehler%=zaehler%+1

        si zaehler%=1

            xpos%=%MouseX
            ypos%=%MouseY
            startpaint infowindow&
            USEP 0,2,RGB(255,0,0)
            Line %MouseX,0 - %MouseX,%MaxY
            Line 0,%MouseY - %MaxX,%MouseY
            EndPaint

        elseif zaehler%=2

            breite%=%MouseX-xpos%
            hoehe%=%MouseY-ypos%
            startpaint infowindow&
            USEP 0,2,RGB(255,0,0)
            Line %MouseX,0 - %MouseX,%MaxY
            Line 0,%MouseY - %MaxX,%MouseY
            EndPaint
            sleep 300

        Endif

        'Endif
        cas zaehler%=2 : Pause

    Endwhile

    UseCursor 1
    destroywindow(infowindow&)

    si mod%<>1

        Messagebox(Str$(xpos%)+»+Str$(ypos%)+"-"+Str$(breite%)+»+Str$(hoehe%),»,64)

    Endif

ENDPROC

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
01.06.2011  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »

si Du UserMessage wm_lButtonDown bzw. 513 hinzufügst wird WaitInput aussi chez einem Linksklick sur den Dialog sortir de.

Gibt aussi qui User32::GetCursorPos API.
 
02.06.2011  
 




Julian
Schmidt
Cool es funktioniert
merci IF
KompilierenMarqueSéparation
DEF GetDC(1) !"USER32","GetDC"
DEF CreateCompatibleDC(1) !"GDI32","CreateCompatibleDC"
DEF CreateCompatibleBitmap(3) !"GDI32","CreateCompatibleBitmap"
DEF SelectObject(2) !"GDI32","SelectObject"
DEF BitBlt(9) !"GDI32","BitBlt"
DEF GetCurrentObject(2) !"GDI32","GetCurrentObject"
DEF DeleteObject(1) "GDI32","DeleteObject"
DEF DeleteDC(1) !"GDI32","DeleteDC"
DEF ReleaseDC(2) !"USER32","ReleaseDC"

proc Screenshot

    Parameters xpos%,ypos%,maxX!,maxY!
    declare hdc&, hmdc&
    hdc& = GetDC(0)
    hmdc& = CreateCompatibleDC(hdc&)
    hbitmap& = CreateCompatibleBitmap(hdc&,maxX!,maxY!)
    SelectObject(hmdc&, hbitmap&)
    BitBlt(hmdc&, 0, 0, maxX!, maxY!, hdc&, xpos%, ypos%, $0CC0020)
    hbitmap& = GetCurrentObject(hmdc&, 7)
    DeleteDC(hmdc&)
    ReleaseDC(0,hdc&)

endproc

declare zaehler%, xpos%, ypos%, breite%, hoehe%, hbitmap&
Windowstyle 24
Window 100,200,500,500
CopyArea
end

Proc CopyArea

    declare mod%,zaehler%,infowindow&
    Windowstyle 16+64'$F0
    UserMessages 513
    infowindow&=Create("Window",%hwnd,"",0,0,%MaxX,%MaxY)
    showwindow(infowindow&,0)
    Screenshot 0,0,%MaxX,%MaxY
    showwindow(infowindow&,1)
    startpaint infowindow&
    DrawPic hbitmap&, 0, 0; 0
    EndPaint
    UseCursor 3
    declare xpos%,ypos%,breite%,hoehe%

    while 1

        waitinput

        if iskey(27)

            mod%=1
            Break

        Endif

        if %UMessage=513

            zaehler%=zaehler%+1

            if zaehler%=1

                xpos%=%MouseX
                ypos%=%MouseY
                startpaint infowindow&
                UsePen 0,2,RGB(255,0,0)
                Line %MouseX,0 - %MouseX,%MaxY
                Line 0,%MouseY - %MaxX,%MouseY
                EndPaint
                sleep 100

            elseif zaehler%=2

                breite%=%MouseX-xpos%
                hoehe%=%MouseY-ypos%
                startpaint infowindow&
                UsePen 0,2,RGB(255,0,0)
                Line %MouseX,0 - %MouseX,%MaxY
                Line 0,%MouseY - %MaxX,%MouseY
                EndPaint
                sleep 300

            Endif

        Endif

        case zaehler%=2 : Break

    Endwhile

    UseCursor 1
    destroywindow(infowindow&)

    if mod%<>1

        Messagebox(Str$(xpos%)+","+Str$(ypos%)+"-"+Str$(breite%)+","+Str$(hoehe%),"",64)

    Endif

ENDPROC

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.06.2011  
 



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.397 Views

Untitledvor 0 min.
Rainer Hoefs02.07.2019
rquindt02.12.2015
H.Brill08.06.2015
maroro12.06.2014
plus...

Themeninformationen

cet Thema hat 2 participant:

Julian Schmidt (2x)
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