Abhängigkeiten von der Auflösung des Monitors
-
Hallo Zusammen,
ich hatte testweise die Auflösung meines Monitors geändert und festgestellt, dass meine Dialoge, wie sie jetzt per Resourceneditor definiert sind, teilweise nicht ordentlich, da zu groß oder zu klein, angezeigt werden. Für die Main-Prozedur, die auch das Menü enthält ist alles Okay, da ich dort mit System-Metrics gearbeitet habe. Wie funktioniert das denn für die Dialoge mit all ihren Steuerelementen. Muss ich da jeden Dialog und innerhalb des Dialoges jedes Steuerelement in Abhängigkeit von der Bildschirmauflösung erstellen???
Oder wie macht man das im Allgemeinen???Vielleicht weiß jemand Rat???
Gruß
Oliver
-
Muss ich da jeden Dialog und innerhalb des Dialoges jedes Steuerelement in Abhängigkeit von der Bildschirmauflösung erstellen???
Genau! Du musst einfach alles in Relation mit der aktuellen Bildschirmauflößung machen.
Also du sagtst praktisch der Button xy ist nicht 50 Pixel lang sondern hat 10% der Länge des Dialoges, welcher beispielsweise 30% der Breite vom Bildschirm hat...uswMit GetSystemMetrics(..) findest du die Auflösung raus...
Viel Spasscu para
-
Danke für Deine Antwort. Wie sieht das denn aus, wenn ich mit Resourceneditor (VC++) arbeite? Da müßte es doch Befehle geben, wie zum Beispiel Handle auf ein Steuerelement und dann Steuerelement Größe ändern. SendMessage?
Gruß
Oliver
-
Also:
nehmen wir an dein Dialog heist ID_DLG_MAIN und ein Textfeld darauf heist ID_TXT_NAME.In der Nachrichtenschleife von dem Dialog machst du unter WM_SIZE:
int cx = GetSystemMetrics(SM_CXSCREEN);// Auflösung bekommen int cy = GetSystemMetrics(SM_CYSCREEN);// --------"---------
dann Dialog setzen
SetWindowPos(hDlg, 0, 0, 0.5*cx, 0.3*cy, SWP_NOMOVE);
dann mit GetDlgItem(...) das Handle des Feldes ID_TXT_NAME holen und genauso verfahren...
so müsste es normal gehen...
[edit]
The GetDlgItem function retrieves the handle of a control in the specified dialog box. HWND GetDlgItem( HWND hDlg, // handle of dialog box int nIDDlgItem // identifier of control ); Parameters hDlg Identifies the dialog box that contains the control. nIDDlgItem Specifies the identifier of the control to be retrieved. Return Values If the function succeeds, the return value is the window handle of the given control. If the function fails, the return value is NULL, indicating an invalid dialog box handle or a nonexistent control.
[/edit]
cu para
[ Dieser Beitrag wurde am 25.11.2002 um 15:40 Uhr von paranoiac.org editiert. ]