Befehl für Center?
-
ja halt einfach stinknormaler static text
-
Hallo zusammen,
ich greife diesen Thread wieder auf, da mich ein ähnliches Problem beschäftig.
Mit dem Resource-Editor erstellte Steuerelemente derart einzustellen, dass der
Text zentriert angezeigt wird, ist kein Problem.Was muss aber getan werden, wenn ein Steuerelement, wie CStatic bzw. CEdit
dynamisch erstellt wird. An welcher Stelle muss ich bekannt geben, dass der Text
zentriert angezeigt werden soll.Vielleicht könnt ihr mir da einen Tip geben.
Die Parameter der Create()-Funktion geben dahingehend nicht viel her. Suche ich an
der falschen Stelle?viele Grüße
Guardian20
-
ich weiss nicht obs dir weiter hilft aber im rc file sieht man als unterschied die Textbezeichnung am anfang der Definition.
also zb:// CStatic left LTEXT "Left",IDC_STATIC3,81,68,87,8 // CStatic right RTEXT "Right",IDC_STATIC4,81,78,87,8 // CStatic center CTEXT "Center",IDC_STATIC5,81,88,87,8bin noch nich so weit das ich Steuerelemente zu Fuß einbinde

-
Siehe: Static Control Styles
http://msdn2.microsoft.com/en-us/ms651156.aspx=> SS_CENTER
Bzw. für MFC:
http://msdn2.microsoft.com/en-us/library/9h0ay857
-
Hallo Jochen Kalmbach,
das ist ja klasse. Vielen dank für den Link. Manchmal fehlen mir einfach die
passenden Bezeichnungen, nach denen ich suchen muss. Auf Static Style wär ich
jetzt nicht gekommen.viele Grüße
Guardian20
-
SS_CENTER macht aber was anderes als das CTEXT.
SS_CENTER zentriert einen text horizontal UND vertikal innerhalb einer StaticText. die CTEXT angabe macht nur ein Horizontales center.
Nur um das mal besserwisserisch klar zu stellen
-
fmotto schrieb:
SS_CENTER macht aber was anderes als das CTEXT.
Bist Du Dir da sicher????
Schau Dir mal das Control mit Spy++ an... da ist auch nur ein SS_CENTER gesetzt!
-
Hallo fmotto,
CText ist ein Control, mit dem Text dargestellt werden kann. Verwendet wird es in der *.rc um ein Textfeld zu erzeugen. SS_CENTER ist dabei ein Attribut um dem CTEXT zu sagen, dass der Text zentriert werden soll.
http://msdn2.microsoft.com/en-us/library/aa380915.aspx
Mit SS_CENTER wird der Text allerdings nur horizontal zentrierte. Eine vertikale Zentrierung ist mir noch nicht aufgefallen.
viele Grüße
Guardian20
-
naja wie ich oben schon geschrieben habe ic hab mir das ganze inner .rc angesehen.
ich erzeuge mal ein CStatik das ungefähr so hoch ist wie 2 zeilen text:LTEXT "Left",IDC_STATIC3,81,68,87,16 RTEXT "Right",IDC_STATIC4,81,78,87,16 CTEXT "Center",IDC_STATIC5,81,88,87,16die texte erscheinen wie sie heissen in den CText bereichen in der oberen zeile.
mach ich aber nen SS_CENTER da hinter:
der geschribene text erscheint daraufhin genau in der mitte der beiden zeilen, also vertikal gecentert. und ansonsten wie die L-R-CTEXT angabe. also zb linksbüngig und vertikal gecentert.
Erscheinungsbild im .rc file ist dann:LTEXT "Left",IDC_STATIC3,81,68,87,16,SS_CENTER RTEXT "Right",IDC_STATIC4,81,78,87,16,SS_CENTER CTEXT "Center",IDC_STATIC5,81,88,87,16,SS_CENTERkann ja sein das es bei euch anders is aber mein VC2005 sagt mir das so, und ich erstelle im momment noch alle sachem im dialog im resie editor.
-
Hallo fmotto,
ich habe deinen Code gerade mal im VS2003 getestet.LTEXT "Statisch",IDC_STATIC,234,99,79,26,WS_BORDER | SS_CENTER CTEXT "Statisch",IDC_STATIC,234,127,79,26,WS_BORDER RTEXT "Statisch",IDC_STATIC,234,156,79,24,WS_BORDERWS_BORDER zeichnet einen Rahmen um das Element und dient mir als Bezugspunkt um
abzuschätzen ob der Text in der Mitte liegt.Ein SS_CENTER sorgt bei mir nach wie vor dafür, dass der Text nur horizontal
zentriert wird.Vielleicht gibt es da aber tatsächlich Unterschiede in den Versionen.
viele Grüße
Guardian20
-
naja scheinbar gibts immer wieder sachen die bei mir anders sind als bei anderen.
Ich habe grade als Anfänger auf VC++ dauernt Probs damit das etwas bei mri einfach nicht geht was bei anderen einwandfrei Funktioniert. Aber das wird jetzt OT