Deutsch
Forum

Hauptfenster verschieben

 

Thomas
Freier
Im Prinzip ja kein Problem, jedoch kann ich es nach oben nur um ca. 20px verschieben.
Falscher Script oder physikalische Grenze?
Def ReleaseCapture(0) !"USER32","ReleaseCapture"
SetTrueColor 1
Windowstyle 82
window 0,0 - 0,0
var hwnd&=%hwnd
var hwndX%=0
var hwndY%=0
SetWindowPos hwnd&=hwndX%,hwndY% - 1120,800;0
UsePen 0,0,rgb(0,0,0)
Rectangle 0,0-1120,800
UsePen 2,0,rgb(0,0,0)
Line 0,10-40,10
Line 0,20-40,20
Line 0,30-40,30
Line 0,40-40,40
Line 0,50-40,50
Rectangle 60,60-1060,740
DrawText 140,360,"Dieses Fenster bei linker gedrücker Maustaste verschieben."
DrawText 140,460,"Dieses Fenster mit Taste 'Esc' oder 'Alt' plus 'F4' schließen."
SubClass hwnd&,1

while 1

    WaitInput
    case %key=27:break

wend

SubClass hwnd&,0
end

SubClassProc

    If %message = $201

        UseCursor 5
        SendMessage(%hwnd,$112,$F012,0)
        ReleaseCapture()
        UseCursor 0

    EndIf

EndProc

 
Gruß Thomas
Windows XP SP2, XProfan X2
04.12.2010  
 




Rolf
Koch
Also ich schiebe hier das Fenster auf dem ganzen Desktop hin und her und hab keine Grenzen, sogar aus dem Sichtbereich heraus. Oder hab ich was falsch verstanden?
 
04.12.2010  
 




Thomas
Freier
Rolf, das hast du richtig verstanden. Auf meinem Laptop kann ich das Fenster nach oben nur ganz wenig verschieben. Links, rechts und nach unten bis aus dem Sichtbereich. Ist wohl wieder BS und geräteabhängig.
 
Gruß Thomas
Windows XP SP2, XProfan X2
04.12.2010  
 



Bei mir springt das Fenster an Y-Position 0 zurück wenn ich es nach oben hinaus schiebe.

Selberschieben mache ich so: Herunterladen
KompilierenMarkierenSeparieren
 {$cleq}
'URL: https://xprofan.com/intl/de/forum/hauptfenster-verschieben/
 {$compiler c:\xprofan11}
 {$runtime c:\xprofan11}
#include c:\dev\mouse.inc
SetTrueColor 1
Windowstyle 82
window 0,0 - 0,0
var hwnd&=%hwnd
var hwndX%=0
var hwndY%=0
SetWindowPos hwnd&=hwndX%,hwndY% - 1120,800;0
UsePen 0,0,rgb(0,0,0)
Rectangle 0,0-1120,800
UsePen 2,0,rgb(0,0,0)
Line 0,10-40,10
Line 0,20-40,20
Line 0,30-40,30
Line 0,40-40,40
Line 0,50-40,50
Rectangle 60,60-1060,740
DrawText 140,360,"Dieses Fenster bei linker gedrücker Maustaste verschieben."
DrawText 140,460,"Dieses Fenster mit Taste 'Esc' oder 'Alt' plus 'F4' schließen."
userMessages wm_close,wm_lButtonDown

while 1

    WaitInput
    case %key=27:break

    select %uMessage

        caseof wm_close : break

        caseof wm_lButtonDown : hWnd.movebyMouse()

    endSelect

wend

end

proc hWnd.movebyMouse

    mouse.getPos()
    var omx&=mouse.x&
    var omy&=mouse.y&
    var wix&=%winLeft
    var wiy&=%winTop
    var xx&=%winRight-wix&
    var yy&=%winBottom-wiy&

    while 1

        casenot lm_() : break
        mouse.getPos()
        setWindowPos %hWnd=(mouse.x&+wix&-omx&),(mouse.y&+wiy&-omy&) - xx&,yy&;0

    wend

endProc


1.036 kB
Hochgeladen:04.12.2010
Ladeanzahl86
Herunterladen
 
04.12.2010  
 




Thomas
Freier
Genau iF. Aber merkwürdiger Weise nicht auf y = 0, sondern auf ca. y = -20, wenn y > -20 sein sollte.
 
Gruß Thomas
Windows XP SP2, XProfan X2
04.12.2010  
 



Stimmt...

Zeigt bei mir -25 ppp -26.

Auch wenn 1px Diff. ists vlt. die Titelzeilenhöhe - stell vlt. mal Deine Titelzeilenhöhe auf 50 zum Test.
 
04.12.2010  
 




Dieter
Zornow
Bei mir gehts auch, man kanns aber auch einfach mit sendmessage machen.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
04.12.2010  
 




Thomas
Freier
Ist wohl ein Problem unter XP SP2 und das kleine Problem mit der Mouse.inc ist durch den Einsatz von X11 zu beheben.
Ich find aber nichts, um die Titelzeilenhöhe, denn das ist die Grenze, vorzugeben.
 
Gruß Thomas
Windows XP SP2, XProfan X2
04.12.2010  
 



Schau mal die systemParametersInfo-API:  [...]  und da vlt. nonClientMetrics:  [...] 
 
04.12.2010  
 



Argh - das funktioniert ja wirklich aber "achtung" kann ich da nur sagen:
cls
struct repairedNONCLIENTMETRICS=cbSize&,iBorderWidth&,iScrollWidth&,iScrollHeight&,iCaptionWidth&,iCaptionHeight&,lfCaptionFont#(60),iSMCaptionWidth&,iSMCaptionHeight&,lfSMCaptionFont#(60),iMenuWidth&,iMenuHeight&,lfMenuFont#(60),lfStatusFont#(60),lfMessageFont#(60)
mem nonClientMetricsStructure=repairedNONCLIENTMETRICS
long nonClientMetricsStructure#,0=sizeof(nonClientMetricsStructure)
systemParametersInfo(SPI_GETNONCLIENTMETRICS,sizeof(nonClientMetricsStructure),nonClientMetricsStructure,0)
print "Zuletzt:",long(nonClientMetricsStructure,4)+long(nonClientMetricsStructure,20)
long nonClientMetricsStructure#,20=5
systemParametersInfo(SPI_SETNONCLIENTMETRICS,sizeof(nonClientMetricsStructure),nonClientMetricsStructure,0)
print systemParametersInfo(SPI_GETNONCLIENTMETRICS,sizeof(nonClientMetricsStructure),nonClientMetricsStructure,0)
print "Nun:",long(nonClientMetricsStructure,4)+long(nonClientMetricsStructure,20)
waitinput
end
 
04.12.2010  
 




Thomas
Freier
Nun, ACHTUNG außeracht gelassen, sehe ich im Moment noch keine "hörere Titelzeile" beim %hwnd? Hat mir ohnehin, ich hätt's mir ja denken können, dass das nur mit XPSE läuft, einige zusätzliche graue Haare gekostet.
 
Gruß Thomas
Windows XP SP2, XProfan X2
05.12.2010  
 



Es ist halt viel schneller es mit xpse hinzuschreiben - kompliziert umbauen für nicht-xpse-verwendung kann es ja der der Wert darauf legt oder mich einfach fragen wenn ichs umbauen soll/muss.

Ich für meinen Teil schreib jedenfalls ungern an etwas 5 Minuten was ich genauso in 2 Minuten schreiben kann (schreiben wir doch auch lieber XProfan als C#?) - wäre doch Quälerei - besonders wenns darum geht erstmal etwas auszutesten.

Thomas Freier (05.12.10)
Nun, ACHTUNG außeracht gelassen, sehe ich im Moment noch keine "hörere Titelzeile" beim %hwnd?

long nonClientMetricsStructure#,20=5

Setzt die ("""eigentlich""") auf 5 - daraufhin wurde diese bei mir auch sehr flach - aber nicht 5. (bestimmt weil die Schrift größer ist als 5)


3 kB
Hochgeladen:05.12.2010
Ladeanzahl271
Herunterladen
 
05.12.2010  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

15.222 Betrachtungen

Unbenanntvor 0 min.
Thomas Zielinski07.04.2021
H.Brill11.10.2018
Andre Rohland18.01.2015
Donnie19.03.2013
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