Deutsch
Forum

Hauptfenster verschieben

 
- Seite 1 -



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  
 



 
- Seite 1 -



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  
 



 
- Seite 2 -



Thomas
Freier
Ja, den Eindruck, dass es schmaler wurde, hatte ich auch. Aber höher hatte ich es selbst optisch nicht erreicht.
 
Gruß Thomas
Windows XP SP2, XProfan X2
05.12.2010  
 



Womit genau kann ich Dir helfen? Hab jetzt den Faden verbummelt weils imho alles eh nichts hilft das Verschiebeproblem bei SendMessage(%hwnd,$112,$F012,0) zu "beheben".

Magst meine obig vorgemachte Mausverschiebeproc in reinem XProfan?
 
05.12.2010  
 




Thomas
Freier
Ich sage dankent: JA.
Auch wenn ich mit deinem Beispiel arbeiten kann, so denke ich ist es für alle, denen SendMessage(%hwnd,$112,$F012,0) auch Probleme bereitet und die kein XPSE einsetzen, eine tolle Hilfe.
 
Gruß Thomas
Windows XP SP2, XProfan X2
05.12.2010  
 



Garnicht die Rede wert... ^^
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 16,513//wm_close,wm_lButtonDown

while 1

    WaitInput
    case %key=27:break

    select %uMessage

        caseof 16 : break//wm_close

        caseof 513 : hWnd.movebyMouse()//wm_lButtonDown

    endSelect

wend

end

proc hWnd.moveByMouse

    declare mpos#
    dim mpos#,8
    external("user32","GetCursorPos",mpos#)
    var wix&=%winLeft-long(mpos#,0)
    var wiy&=%winTop-long(mpos#,4)

    while iskey(1)

        external("user32","GetCursorPos",mpos#)
        setWindowPos %hWnd=(long(mpos#,0)+wix&),(long(mpos#,4)+wiy&) - (%winRight-%winLeft),(%winBottom-%winTop);0

    wend

    dispose mpos#

endProc

 
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.229 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