Steuerelement unabhängig von der Auflösung
-
Hi,
ich weiss das zu diesem Thema hier eine Menge zu finden ist aber irgendwie werde ich damit nicht glücklich.
Also mitGetSystemMetrics(SM_CXSCREEN);
GetSystemMetrics(SM_CYSCREEN);erhalte ich die aktuelle auflösung.
So wie kann ich mit diesen 2 Parametern mir ein verhältniss basteln so das zb mein Dialog unabhängig von der Bildschirmauflösung immer gleich dargestellt wird.Vielleicht hat ja jemand ein kleines Beispiel...
Thx
-
Wenn ich Dich richtig verstehe dann willst Du, daß sich z.b. eine Edit-box der Größe des Fensters anpaßt ?
Schau da mal rein: http://www.codeproject.com/docview/ResizableFormView.aspCU,
Captn.
-
Hmm,
danke aber das kenne ich schon aber es ist nicht genau das was ich will.
Vielleicht habe ich mir etwas besch... ausgedrückt.
Also ich habe einen Ownerdrawnbutton erstellt auf dem ich nun eine Linie zeichnen möchte.Dies macht er auch wunderbar nur halt wenn ich die auflösung änder ist diese Linie nicht an ihrem platz.
Nun wollte ich einfach nach einem Beispiel fragen wie ich diese Linie in abhängigkeit mit GetSystemMetrics so zeichnen kann das egal welche Auflösung ich habe diese Linie da gezeichnet wird wo sie hingehört.Thx im voraus
-
funzt ohne das was man was macht....
-
oder machst du den button je nach auflösung selbst größer oder kleiner?
-
Nein,
also die Buttons habe ich mit dem ResourceEditor erstellt und dann auf ownerdrawn gesetzt und eine passende DrawItem Funktion geschrieben.
Komischerweise werden die Buttons immer vernüftig dargestellt.(liegt wohl daran das ich sie mit dem ResourceEditor erstellt habe).Jetzt will ich einfach eine Linie auf diesen Button zeichnen der auch unabhängig von der Auflösung ist.
Ich weiss das ich es mit GetSytemMetrics realisieren kann habe aber leider keine idee wie ich auf ein vernüftiges verhältniss kommen kann.Das ist mein einziges Prob!!!Thx
-
Ich weiss das ich es mit GetSytemMetrics realisieren kann habe aber leider keine idee wie ich auf ein vernüftiges verhältniss kommen kann.Das ist mein einziges Prob!!!
du brauchst garnichts zu tun. geht alles automatisch. wie zeichnest du denn die linie?
-
Sein Problem ist:
Alle Steuerelemente, die man mit dem Ressourceneditor erstellt sind in sogenannten DLUs (Dialog Box Units) angegeben.
Diese hängt aber ab von der Auflösung, verwendetem Desktop-Modell etc.
Das heisst, ein Button kann mit einer anderen Einstellung ganz andere Dimensionen haben (in Pixeln).Ich denke die Lösung besteht darin, die Pixel-Grösse der Steuerelemente zur Laufzeit abzufragen.
-
Hi,
@get: mit MoveTo und LineTo vorher natürlich ein passendes CPen Objekt erstellt
@scrontch: zur laufzeit?? Gibt es den keine einfache Lösung für das (kleine) Prob?
Thx
-
GetClientRect oder GetWindowRect mal ausprobieren
-
Diese hängt aber ab von der Auflösung..
genauer gesagt von der schriftart und größe des dialogfeldes und kann über Dialog Box Units in pixel umgewandelt werden.
dies muß auch mit den kinderfenstern passieren.
ein code-auszug deines problem's wäre sicher hilfreicher sonst schwatzen wir noch morgen
-
Hi,
hat zwar etwas gedauert aber da bin ich wieder.
Hier der gewünschte Codeausschnitt mit dem ich die Linie auf den Button zeichne:pDC->MoveTo(2,(m_iYScreen-(m_iYScreen0.95)));
pDC->LineTo(76,(m_iYScreen-(m_iYScreen0.95)));aber funzt irgendwie nicht.
Habe bestimmt einen Denkfehler was das verhältniss angeht.
Kann doch nicht so schwer sein eine Linie zu zeichnen die auflösungsunabhängig ist sprich immer an der selben stelle.Thx schonmal...
FROHE OSTERN!!!
-
Hi Leute,
ihr feiert bestimmt noch alle Ostern,trotzdem schieb ich es mal nach oben da es sehr wichtig ist.
Thx im voraus
C u