2Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
553
553
EMPFEHLEN
-
hallo,
ich suche lediglich die koordinaten der linken oberen ecke des elternfensters. mittels getwindowpos() bekomme ich (0,0), also nur den absolutpunkt innerhalb der anwendung. ich suche eine funktion die mir die linke obere ecke absolut zum bildschirm angibt um so mittels setwindowpos() meinen neuen dialog zu erstellen. falls es noch eine andere möglichkeit gibt, so lasst es mich bitte wissen
mfg cappaja
-
13.08.09 07:46 #2
Moin,
verstehe ich das richtig?
Deine Anwendung läuft nicht im Vollbildmodus, so dass Du rundherum einen Teil des Desktop siehst?
Du wirst Dein Fenster IMHO aber immer nur relativ zum Hauptfenster Deiner Anwendung positionieren können (also eben relativ zu (0,0)). Andernfalls wären das ja negative Werte ...
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Verwende GetWindowRect().
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
13.08.09 07:51 #4
Moin McCoder,
hmm, der Befehl ist nicht schlecht!
Ich hatte damit vor geraumer Zeit auch schon mal was versucht, aber nicht so hinbekommen, wie geplant
Muss ich noch mal schauen, was ich falsch gemacht habe ...
gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
hallo,
ich meinte ja das ich GetWindowRect() benutzt habe, GetWindowPos() existiert ja überhaupt nicht
ich habe da aber das problem das ich lediglich die obere linke position mit (0,0) zurück bekomme.
gibt es vielleicht eine funktion die einen dialog automatisch in der mitte des bildschirms positioniert? mit SetWindowPos() habe ich ja immer das problem das je nach bildschirmauflösung mein programm woanders auftaucht.
@vfl_freak: ja es ist ne dialogbasierende anwendung welche nicht den bildschirm ausfüllt. daneben soll ein kleinerer dialog platziert werden um das hauptfenster steuern zu können
mfg cappaja
-
GetWindowRect() gibt auf jeden Fall die Koordinaten bezogen auf die linke obere Ecke des Bildschirms aus. Ich vermute daher einen Fehler bei der Anwendung dieser Funktion.
Beim Positionieren muss man natürlich die aktuelle Bildschirmgröße mit berücksichtigen (Ermittlung via GetSystemMetrics). Dann braucht man aber eigentlich auch nicht die Position des Fensters sondern nur seine Größe.
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12
// hwnd: Handle des zu zentrierenden Fensters RECT rc; GetWindowRect(hWnd, &rc); SetWindowPos( hWnd, NULL, (GetSystemMetrics(SM_CXSCREEN) - (rc.right - rc.left)) / 2, (GetSystemMetrics(SM_CYSCREEN) - (rc.bottom - rc.top)) / 2, 0, 0, SWP_NOSIZE | SWP_NOZORDER );
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
hi mcoder,
hat wunderbar geklappt, mein problem war das ich GetWindowRect() in OnInitDialog aufgerufen habe, zu diesem zeitpunkt werden noch nicht-initialisierten werte des fensters zurückgeliefert, in diesem fall (0,0). so hab ich die daten erst beim doppelklick in eine membervariable geschrieben und in der zu öffnenden dialogklasse wie folgt aufgerufen:
Code :1 2 3 4 5 6 7 8 9
RECT rc; GetWindowRect(&rc); SetWindowPos( NULL, (((CWiwoDlg*)GetParent())->m_MainWndRect.left - (rc.right - rc.left)), (((CWiwoDlg*)GetParent())->m_MainWndRect.top), 0, 0, SWP_NOSIZE | SWP_NOZORDER );
so wird jetzt die hauptanwendung mittig angezeigt und der kleine dialog links oben neben der hauptanwendung. nochmals vielen dank
mfg cappaja
Ähnliche Themen
-
Elemente neben zweispaltiges Layout platzieren
Von 2Pac im Forum CSSAntworten: 6Letzter Beitrag: 10.08.09, 18:48 -
kann man die Komponenten in einem Panel rechts oben fest platzieren
Von P_H_I_L im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 22.04.08, 09:02 -
SWT: Werte von Dialog ins Hauptfenster übergeben
Von haudek im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 05.12.07, 18:20 -
Oben im Quelltext, unten im Browser: DIV platzieren
Von Quests Sohn im Forum CSSAntworten: 4Letzter Beitrag: 27.11.07, 21:06 -
Statusleiste für modalen Dialog als Hauptfenster
Von sdi im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 02.11.04, 13:40





Zitieren

Login






