Español
Fuente/ Codesnippets

Api Bestimmen Fenstereigenschaften Ventana principal Per

 

KompilierenMarcaSeparación
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


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.312 Views

Untitledvor 0 min.
Thomas Freier26.01.2024
H.Brill13.09.2022
AndreasS08.12.2018
Achim Engelhardt21.10.2014
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie