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,8
    

    bin noch nich so weit das ich Steuerelemente zu Fuß einbinde 😃





  • 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,16
    

    die 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_CENTER
    

    kann 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_BORDER
    

    WS_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 😃


Anmelden zum Antworten