Dynamische Position der GUI?

02/02/2012 22:22 dommerle#1
Hallo zusammen,

Ich bin gerade dabei ein Programm zu schreiben, dass als eine Art "Chat" fungieren soll.
Ich habe es bereits dauerhaft in den Vordergrund gesetzt.
Nun möchte ich, dass die GUI wie bei einem richtigen Chat immer im unteren rechten Eck des Monitors ist. Egal bei welcher Auflösung.

Das heißt ich suche einen Befehl, mit dem sich die Position der GUI dynamisch anpasst.

Google konnte mir auch nach ausgiebiger Suche keine brauchbare Lösung zeigen...

Könnt ihr mir da weiterhelfen?

Grüße :)
02/02/2012 22:43 butter123#2
@desktopheigth und @desktopwidth gibt dir die desktopauflösung. damit kannste dann ja die position von deiner gui setzen
02/02/2012 22:51 dommerle#3
Quote:
Originally Posted by butter123 View Post
@desktopheigth und @desktopwidth gibt dir die desktopauflösung. damit kannste dann ja die position von deiner gui setzen
Das habe ich schon versucht.
Also ich habe es so gemacht:
$H = @Desktopheight
$V = @Desktopwidth
Und dann bei der Form die Variablen anstatt Koordinaten eingesetzt, aber ich habe das Fenster dann nicht gesehen, wenn ich das Programm gestartet habe...

Ich habe es auch mit @Desktopheight - 50 usw. versucht, aber das hat komischerweise alles nicht funktioniert (also ich konnte das Programm starten, habe das Fenster aber nicht gesehen). :(
02/03/2012 00:01 butter123#4
hmmm...

mach mal statt -50 , /2, da sollte man auf der sicheren seite sein. hast du mehrere bildschirme? und hast du auch nicht GUISetState(@SW_SHOW) vergessen? :) oder minimiert? :D

sonst füg mal in dein skrip
ein und versuch das fenster per hand herzuholen (musst noch den richtigen namen für das fenster eingeben, jetzt bewegt er nur das aktive) und ist nciht getestet, nur so aus dem kopf :)
02/03/2012 07:13 dommerle#5
Werde das heute Nachmittag nach der Schule mal versuchen.
Danke schonmal an dich! :)
02/03/2012 11:09 Lawliet#6
Wenn du nur @Desktopheight - 50 setzt, ist @Desktopwidth immernoch außerhalb deines Bildschirms ;) Also @desktopheight/x & @desktopwidth/x, dann sollte es bei nem wert über 1 auf jeden fall auf deinem Bildschirm zu sehen sein.
02/03/2012 14:42 lolkop#7
mit division kann man das ganze aber nicht in eine bildschirmecke setzen o0

das problem ist doch eigentlich wirklich trivial. hier mal ein minimalbeispiel:
Code:
Dim $size[2]=[300,100], $taskBarPos = WinGetPos('[Class:Shell_TrayWnd]')
GUICreate('chat_box', $size[0], $size[1], @DesktopWidth-$size[0], @DesktopHeight-$size[1]-$taskBarPos[3], 0x10080200, 0x80)
GUICtrlCreateEdit('', 0,0,$size[0],$size[1])
Do
Until GUIGetMsg()=-3
02/03/2012 16:25 dommerle#8
Quote:
Originally Posted by Lawliet! View Post
Wenn du nur @Desktopheight - 50 setzt, ist @Desktopwidth immernoch außerhalb deines Bildschirms ;) Also @desktopheight/x & @desktopwidth/x, dann sollte es bei nem wert über 1 auf jeden fall auf deinem Bildschirm zu sehen sein.
Also ganz blöd bin ich ja auch nicht... :cool:
Natürlich habe ich beides verändert. ;)

EDIT: Jetzt funktioniert es komischerweise... o_0
Hier kann also zu. Danke euch allen! :)