Français
Source/ Codesnippets

Api Bestimmen Fenstereigenschaften Hauptfenster Per

 

KompilierenMarqueSéparation
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Hauptfenster: Fenstereigenschaften per API bestimmen (auch Client-Bereich)
Die wichtigsten Infos zu Positionen
Def GetWindowPos(2) ! USER32, GetWindowRect
DEF GetClientPos(2) ! USER32,GetClientRect
Def SHTaskbarheight(2) ! SHELL32,SHAppBarMessage
Def SHTaskbarPos(2) ! SHELL32,SHAppBarMessage
DEF SPIUsableScreen(4) ! user32,SystemParametersInfoA
DEF MoveWindow(6) ! USER32,MoveWindow
Def GetCursorPos(1) ! USER32,GetCursorPos
DEF SetcursorPos(2) ! USER32,SetCursorPos
DEF ScreenToClient(2) ! USER32,ScreenToClient
DEF ClientToScreen(2) ! USER32,ClientToScreen
DEF SetWindowPos(7) ! USER32,SetWindowPos
Declare rect#,xpos&,ypos&,xRpos&,yRpos&

proc GetwindowPos

    Parameters hndl&
    case equ(%pcount,0):let hndl&=@getactiveWindow()
    DIM rect#,16
    GetWindowPos(hndl&,rect#)
    let xpos&=@long(rect#,0) links oben
    let ypos&=@long(rect#,4)
    let xRpos&=@long(rect#,8) rechts unten
    let yRpos&=@long(rect#,12)
    Clear rect#
    Dispose rect#

endproc

Proc GetClientPos

    Parameters hndl&
    case equ(%pcount,0):let hndl&=@getactiveWindow()
    Dim Rect#,16
    GetClientPos(hndl&,Rect#)
    let xpos&=@long(rect#,0) links oben
    let ypos&=@long(rect#,4)
    let xRpos&=@long(rect#,8) rechts unten
    let yRpos&=@long(rect#,12)
    Clear rect#
    Dispose Rect#

endproc

Proc GetTaskbarHeight

    Dim rect#,36
    Declare height&
    Long rect#,0=36
    SHTaskbarheight(5,rect#)
    Let height&=Long(rect#,28)
    Let height&=Sub(height&,Long(rect#,20))
    Clear rect#
    Dispose rect#
    Return height&

EndProc

Proc GetTaskbarPos

    Dim rect#,36
    Declare pos&
    Long rect#,0=36
    SHTaskbarPos(5,rect#)
    Let pos&=Long(rect#,12)
    Clear rect#
    Dispose rect#
    Return pos&

endproc

Proc UsableScreen

    Dim Rect#,16
    SPIUsableScreen(48,0,Rect#,0)
    let xpos&=@long(rect#,0) links oben
    let ypos&=@long(rect#,4)
    let xRpos&=@long(rect#,8) rechts unten
    let yRpos&=@long(rect#,12)
    Clear rect#
    Dispose Rect#

endproc

Proc MoveWindow

    Parameters Hndl&,x%,y%,Xl%,Yh%
    MoveWindow(hndl&,x%,y%,xl%,yh%,1) 1=repaint the Window

endproc

Proc Getcursor

    Parameters from%,hndl& from% 0=screen größer 0 = Window
    case equ(%Pcount,1):let hndl&=GetactiveWindow()
    Dim rect#,8
    Getcursorpos(rect#)
    case gt(from%,0):ScreenToClient(hndl&,rect#)
    xpos&=@long(rect#,0)
    ypos&=@long(rect#,4)
    clear rect#
    Dispose rect#

endproc

proc setcursor

    parameters x&,y&,where%,hndl& where% 0=screen, größer 0 =window
    case equ(%Pcount,3):let hndl&=GetactiveWindow()

    If equ(where%,0)

        Setcursorpos(x&,y&)

    else

        Dim rect#,8
        Long rect#,0=x&
        Long rect#,4=y&
        ClientToScreen(hndl&,rect#)
        Setcursorpos(@long(rect#,0),@long(rect#,4))
        clear rect#
        Dispose rect#

    endif

endproc

proc setwindow

    Parameters hndl&,zorder&,x&,y&,xl&,yh&,swp&
    SetWindowPos(hndl&,zorder&,x&,y&,xl&,yh&,swp&)

endproc

Beispiel
cls
Movewindow %hwnd,50,50,700,500
GetWindowPos
Print WindowPosition
Print Linke obere Ecke: ,xpos&;,;ypos&
Print Rechte untere Ecke:,Xrpos&;,;yRpos&
GetclientPos
Print InnerWindow
Print Linke obere Ecke: ,xpos&;,;ypos&
Print Rechte untere Ecke:,Xrpos&;,;yRpos&
UsableScreen
print Nutzbarer Bildschirm
Print Linke obere Ecke: ,xpos&;,;ypos&
Print Rechte untere Ecke:,Xrpos&;,;yRpos&
GetTaskbarPos
case Equ(@&(0),0):Print Die Taskbar ist links
case Equ(@&(0),1):Print Die Taskbar ist oben
case Equ(@&(0),2):Print Die Taskbar ist rechts
case Equ(@&(0),3):Print Die Taskbar ist unten
GetTaskbarHeight
Print Taskbarhöhe =,@&(0),Pixel
setcursor 50,50,1
Getcursor 1
Print Cursorposition= ,xpos&,,ypos&
setwindow %hwnd,0,60,60,700,500,256
waitinput
end
Werte für SetWindowPos
HWND_BOTTOM = 1
Letztes Window in der Schlange (Z-order)
HWND_NOTOPMOST = -2
Legt das Fenster unter alle topmost Fenster und überhalb der non topmost Fenster
HWND_TOP = 0
Legt das Fenster an die Spitze der Schlange (Z-order)
HWND_TOPMOST = -1
Macht das Fenster permanent topmost (über allen anderen Fenstern)
wFlags
Null oder mehr der folgenden Flags geben an, wie das Fenster zu bewegen ist
SWP_DRAWFRAME = $20 =32
das gleiche als SWP_FRAMECHANGED.
SWP_FRAMECHANGED = $20 =32
Volles neuzeichen des Fensters an der neuen Position
SWP_HIDEWINDOW = $80 =128
Fenster verstecken
SWP_NOACTIVATE = $10 = 16
Macht das Fenster nicht aktiv nach dem Bewegen, es sei denn
es war schon das aktive Fenster
SWP_NOCOPYBITS = $100 = 256
Es wird nicht neugezeichnet nach dem Bewegen, das heißt der gesamte Inhalt
ist gelöscht.
SWP_NOMOVE = $2 = 2
Das Fenster wird nicht bewegt
SWP_NOSIZE = $1 = 1
Das Fenster bekommt keine neue Größe
SWP_NOREDRAW = $8 =8
Entfernt nicht die Abbildung des Fenster an seiner bisherigen Position
es hinterläßt ein Geisterbild auf dem Bildschirm
SWP_NOZORDER = $4 =4
Wechselt nicht die Position in der Schlange (Z-order)
SWP_SHOWWINDOW = $40 = 64
Das Fenster ist versteckt<
class=s4 href='./../../function-references/XProfan/swpnoownerzorder/'>SWP_NOOWNERZORDER = $200 = 512
 
16.07.2007  
 



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

3.302 Views

Untitledvor 0 min.
Thomas Freier26.01.2024
H.Brill13.09.2022
AndreasS08.12.2018
Achim Engelhardt21.10.2014
plus...

Themeninformationen

cet Thema hat 1 participant:

unbekannt (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