CStatic (Text) wird nicht angezeigt



  • Irgendwie hab ich gerade ein Brett vorm Kopf. Ich scheitere an der simplen Aufgabe ein CStatic Objekt zu erzeugen und mit Text darzustellen (ganz einfach so als wenn man diesen blöden Static Text in einen Dialog wirft). Das ganze ist eine eigene Klasse, von CStatic abgeleitet. Sonst nichts besonderes und auch bisher nichts überschrieben/abgefangen oder sonstwas.

    Bisheriger Code:

    if (pText->Create("TEST", WS_CHILD | SS_LEFT, pWndRect, this))
    {
        //pText->SetWindowText("kjshdfkjdhf");   (ändert auch nichts)
        pText->ShowWindow(SW_SHOW);
    }
    

    pText ist Member meines Dialogs, "this" in diesem Fall also ein CDialog*
    Der pWndRect ist ok und das Create gibt auch TRUE zurück. Auch der m_hWnd des pText hat einen ordentlichen Inhalt. Trotzdem zeigt mein Dialog den Text nicht an. Das Fenster existiert aber. Wenn ich z.B einen Style für Rahmen setze wird das Ding auch angezeigt. Nur die Textausgabe bleibt verschollen 😕



  • Bekommst Du Deinen Text, wenn Du GetWindowText ausführst?



  • Jep



  • und wenn du auch noch WS_VISIBLE setzt ?



  • Ändert auch nichts 😕



  • Ändere mal IDC_STATIC in z.B. IDC_STATIC1.

    Ich meine mich zu erinnern, dass sich Text
    der mit IDC_STATIC "verbunden ist nicht ändern lässt.

    Gruß,

    Andreas



  • In einer von CDialog abgeleiteten Klasse habe ich in OnInitDialog() den Code eingefügt. Funktioniert!

    CStatic *pText = new CStatic;
    if (pText->Create("TEST", WS_CHILD | SS_LEFT, CRect(10,10,100,34), this))
    {
        pText->ShowWindow(SW_SHOW);
    }
    

    Hast Du vernünftige Werte in deinem CRect zu stehen?



  • Es scheint irgendwas mit dem Dialog zu tun zu haben. Ich vermute es liegt an der OnCtlColor Überschreibung. Weiss nur noch nicht, wieso.


Anmelden zum Antworten