Deutsch
Forum

Fenstergröße setzen

 

Julian
Schmidt
Hallo,

Bei SetWindowPos oder Movewindow stört mich jedesmal das man als Parameter auch eine neue Position angeben muss. Man kann zwar per GetWindowRect die Größe ermitteln und angeben aber dies erscheint mir als zu umständlich.

Gibt es bereits irgendeinen anderen Befehl mit dem dies einfacher geht?
Wenn nicht wünsche ich mir solch eine Funktion (SetWindowSize o.ä.) für ein künftiges XProfan.
Ein extra Befehl für die 'Fensterposition in der Hierarchie' würde mich auch freuen!

LG

Julian57
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.08.2011  
 




Jörg
Sellmeyer
Na - dafür braucht man aber keine neuen Befehle. Das geht ganz locker mit zwei Prozeduren:
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.08.2011  
 



Solch Kram halt:  [...] 
 
06.08.2011  
 




Julian
Schmidt
Jörg Sellmeyer (06.08.11)
Na - dafür braucht man aber keine neuen Befehle. Das geht ganz locker mit zwei Prozeduren:


Hab auch geschrieben

Jörg Sellmeyer (06.08.11)
Gibt es bereits irgendeinen anderen Befehl mit dem dies einfacher geht?
Wenn nicht wünsche ich mir solch eine Funktion (SetWindowSize o.ä.) für ein künftiges XProfan.


Nachtrag:
@Jörg Deine Prozeduren beschränken sich leider auf das Hauptfenster! Gibt es solch eine Prozedur auch für andere Handles? %WinLeft, %WinBottom,... ist doch auf hwnd beschränkt, oder?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.08.2011  
 




Dieter
Zornow
Ab X2 reichen bei Setwindowpos auch nur 2 Parameter, dann wird das Fenster nur verschoben, aber die Größe bleibt. Du hast doch X2 oder ?
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
07.08.2011  
 




Julian
Schmidt
Dieter Zornow (07.08.11)
Ab X2 reichen bei Setwindowpos auch nur 2 Parameter, dann wird das Fenster nur verschoben, aber die Größe bleibt. Du hast doch X2 oder ?


Das funktioniert auch bereit bei früheren XProfan Versionen! Ich wollte aber eig. die Fenstergröße verändern. Und ja ich hab X2!
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.08.2011  
 




Jörg
Sellmeyer
Kannst Du da was mit anfangen?
 $H Structs.ph
 $H Windows.ph
Struct Rect = ~RECT
Declare Window#
Dim Window#,Rect
Declare Werte$
Cls
VAR Edit& = Create("Edit",%hwnd,"",10,40,200,24)

While 1

    WaitInput
    ~GetWindowRect(Edit&,Window#)
    ~MapWindowPoints(%desktop,%hwnd,Window#,2)

    With Window#

        .Right& = .Right& - .Left&
        .Bottom& = .Bottom& - .Top&
        Werte$ = .Left&,.Top&,.Right&,.Bottom&
        SetText Edit&,Werte$

    EndWith

Wend


[OFFTOPIC]@iF: Du könntest dem Formatierer noch beibringen, daß man auch With und EndWith einrücken kann[/OFFTOPIC]
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.08.2011  
 




Julian
Schmidt
GetWindowRect ist mir bereits ein Begriff, dennoch bekomme ich es nicht in eine Prozedur. :p
 $H Structs.ph
 $H Windows.ph
Struct Rect = ~RECT
Declare Window#
Dim Window#,Rect
Cls
waitinput
WindowSize(%hwnd,400,150)
waitinput
WindowZ(%hwnd,-1)
waitinput

Proc WindowSize

    Parameters hdl&,b%,h%
    ~GetWindowRect(hdl&,Window#)
    ~MapWindowPoints(%desktop,%hwnd,Window#,2)
    SetWindowPos hdl& = Window#.Left&,Window#.Top& - b%,h%

EndProc

Proc WindowZ

    Parameters hdl&, modus%
    ~GetWindowRect(hdl&,Window#)
    ~MapWindowPoints(%desktop,%hwnd,Window#,2)

    With Window#

        SetWindowPos hdl& = .Left&,.Top& - (.Right& - .Left&),(.Bottom& - .Top&); modus%

    EndWith

EndProc

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.08.2011  
 




Jörg
Sellmeyer
WindowZ ist doch eine Prozedur, die nur für das Hauptfenster Sinn ergibt. Warum nimmst Du da nicht die Prozedur, die ich oben gepostet habe?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.08.2011  
 



[OFFTOPIC]
Jörg Sellmeyer (07.08.11)
@iF: Du könntest dem Formatierer noch beibringen, daß man auch With und EndWith einrücken kann?

Dis machsch!

Nachtrag: Erledscht! [/OFFTOPIC]
 
07.08.2011  
 




Julian
Schmidt
Jörg Sellmeyer (07.08.11)
WindowZ ist doch eine Prozedur, die nur für das Hauptfenster Sinn ergibt. Warum nimmst Du da nicht die Prozedur, die ich oben gepostet habe?


Auf Dialogfensters ergibt diese Funktion ebenfalls Sinn. Deine Prozedur oben ^^ ist aber durch %winleft, %wintop, ... an das Hauptfenster gebunden.
Window 0,0-%MaxX,%MaxY
var dg&=Create("Dialog",%hwnd,"Beispiel",0,0,0,0)
Setwindowpos dg&=200,100 - 500,300; -1

while 1

Endwhile

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.08.2011  
 




Julian
Schmidt

Def @GetWindowRect(2) !"USER32", "GetWindowRect"
WindowTitle "Koordinaten"
Windowstyle 24
Window 0,0-640,440
waitinput
WindowSize(%hwnd,800,500)
WindowZ(%hwnd, -1)
waitinput

While 1

    cls
    locate 1,1
    print "Eckpunkte bezogen auf Bildschirm:",WindowRect(%hwnd,"X-Pos"),", ",WindowRect(%hwnd,"Y-Pos")," - ",WindowRect(%hwnd,"Eckpunkt_X2"),", ",WindowRect(%hwnd,"Eckpunkt_Y2")
    print "Breite: ",WindowRect(%hwnd,"Breite"),"   Höhe: ",WindowRect(%hwnd,"Höhe")
    waitinput

Endwhile

Proc WindowRect

    Parameters hdl&,Modus$
    declare x%, b#
    Dim b#,16
    @GetWindowRect(hdl&,b#)
    case Modus$="Breite" : x%=Long(b#,8)-Long(b#,0)
    case Modus$="Höhe" : x%=Long(b#,12)-Long(b#,4)
    case Modus$="Eckpunkt_X1" : x%=Long(b#,0)
    case Modus$="Eckpunkt_Y1" : x%=Long(b#,4)
    case Modus$="X-Pos" : x%=Long(b#,0)
    case Modus$="Y-Pos" : x%=Long(b#,4)
    case Modus$="Eckpunkt_X2" : x%=Long(b#,8)
    case Modus$="Eckpunkt_Y2" : x%=Long(b#,12)
    Dispose b#
    Return x%

EndProc

Proc WindowSize

    Parameters hdl&,b%,h%
    SetWindowPos hdl& = WindowRect(hdl&,"X-Pos"),WindowRect(hdl&,"Y-Pos") - b%,h%

EndProc

Proc WindowZ

    Parameters hdl&, modus%
    SetWindowPos hdl& = WindowRect(hdl&,"X-Pos"),WindowRect(hdl&,"Y-Pos") - WindowRect(hdl&,"Breite"),WindowRect(hdl&,"Höhe"); modus%

EndProc

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
09.08.2011  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

12.669 Betrachtungen

Unbenanntvor 0 min.
Tommy11.02.2019
Peter Max Müller07.10.2017
Torben Nissen05.03.2017
Klaus Nestroy31.10.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie