text auf dialogfeld ausgeb´n



  • hi all!

    Ich will einen Text, in dem beispiel das datum einfach auf dem dialogfeld ausgeben, also nicht in einem textfeld sondern direkt auf der grauen fläche.

    mein code:

    CClientDC dc( this ); 
    	CTime AktuelleZeit; 
    	AktuelleZeit = CTime::GetCurrentTime(); 
    	dc.TextOut( 0, 620, AktuelleZeit.Format( "%H:%M:%S %A, %B %d, %Y" ) );
    

    das geht aber nicht, warum??
    herzlichen Dank
    110



  • Nimm doch ein CStatic. 🙂

    Dem kannst du einen Namen geben (IDC_IRGENDWAS) und schon funktioniert das fast wie ein Edit.



  • ..versteh ich nicht!

    du meinst den text in einem feld ausgeben?

    Ich will den text aber direkt in den dialog schreiben, geht das so nicht??



  • OK, nochmal langsam: 😉

    Wenn du einen schwarzen (oder meinetwegen auch andersfarbigen - über Attribute wollen wir uns hier ja erstmal nicht auslassen) Text in einem Dialog ausgeben möchstest, ist die _geläufigste_ Lösung ein Label / CStatic / Beschriftungsfeld.
    Viele Namen, ein Teil.

    Ein DC wird da wohl eher selten genutzt. Wenn du wirklich einen DC nutzen willst, dann lies ganz unten weiter...

    Also:

    1.) Resourceeditor mit der Dialogresource aufmachen
    2.) CStatic Element hinzufügen (ich kriege da als Tooltip: "Text")
    3.) Darauf rechte Maustaste -> Eigenschaften
    4.) Gib dem "Kind" eine andere ID als IDC_STATIC
    5.) Eigenschaften zu, Klassenassistent auf
    6.) Den zweiten Tab-Reiter auswählen (Member-Variablen)
    7.) In der Liste nach der ID vom CStatic suchen
    8.) Darauf einen Doppelklick
    9.) Gib der Variablen einen Namen (z.B. m_txtAusgabe)
    9.1) wähle als Kategorie "Control"
    (Wert geht auch, aber das funktioniert anders als der Quellcode
    weiter unten.)
    9.2) und klick OK
    10.) Klassenassistent schließen
    11.) Deinen Quelltext anzeigen, wo noch dc.TextOut(...) steht
    12.) Die Zeile durch

    m_txtAusgabe.SetWindowText(AktuelleZeit.Format( "%H:%M:%S %A, %B %d, %Y" ) );
    

    ersetzen.

    Fertig 😃

    So, ich habe aus Neugier nochmal deinen Code ausprobiert -> funktioniert einwandfrei, nachdem ich andere Koordinaten gewählt habe (10,10). Warum kann ich dir nicht genau erklären, aber manchmal funktioniert das Zeichnen auf der "Grenze" nicht.



  • echt spitze, danke für deine mühe 🙂

    Ich hab da gar nicht daran gedacht ein static zur textausgabe zu verwenden 🙂
    Besten Dank, ich freu mich immer wenn mit jemand sagt wie irgend etwas in der praxis gemacht wird. 😃 😃

    schönen Tag noch
    11001


Anmelden zum Antworten