Text eines static Text Steuerelement ändern



  • Hallo ist es möglich den Text eines Static Text Elements per Quellcode zu ändern... ich schaff es einfach nicht eine Variable dafür zu erzeugen und dann mit UpdateData den Text zu ändern 😞



  • bin zwar nicht so versiert in der MFC, aber eine flotte q'n'd lösung wäre

    GetDlgItem
    SetWindowText

    ---

    an, kam bei google auf

    DDX_Text(pDX, IDC_TEXT, m_Text);
    wobei CStatic m_Text ist

    evt. solltest du mal die ID deines statics von IDC_STATIC auf etwas anderes ändern



  • Die ID "IDC_STATIC" (Vorgabewert für Static-Elemente) wird vom Klassen-Assistenten ignoriert. Das heißt, wenn du den Text im Programm ändern willst, mußt du dem Textfeld eine neue ID spendieren - der kannst du dann auch im Klassenassistenten eine Variable zuweisen (entweder CString oder CStatic).



  • Super jetzt klappt es... ich hab ihm anschluß direkt noch eine Frage... Ich hab jetzt ein Dialog (CDialog) und ein statischen Text darin... nun würde ich gerne auf Keyboardtasten reagieren... ich füge also die Messages hinzu (ON_WM_KEYDOWN) und die Methode afx_msg void CMyDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

    Aber die Tasten werden nicht registriert vom Dialog... lösche ich den statischen Text so funktioniert ist... wie kann ich es machen, dass auch mit statischem Text das ganze funktioniert?


  • Mod

    Ein Static kann keine Keyboard eingaben bekommen, und ein Dialog auch nicht. Sobald ein Control mit dem Stil WS_TABSTOP vorhanden ist, bekommt dieses den Fokus. OnKeyDown geht dann nicht mehr für den Dialog.

    PreTranslateMessage wäre ein Ansatz. Kommt mir aber etwas verworren vor. Was willst Du machen? Welche Tasten interessieren Dich?

    BTW: Es gibt auch CEdit Contrls, die man auf Readonly setzen kann!



  • Mich interessieren die Tasten A, S, D, W... bzw. die Pfeiltasten (aber an die komme ich irgendwie über KEYDOWN gar nicht ran... oder doch?!)...

    Ich möchte durch den Tastendruck eine Richtung vorgeben (Windrichtung) und dadurch einen Wert berechnen und diesen im Label ausgeben... je länger die Taste gedrückt ist desto stärker wirkt sich dies aus (das wollte ich über nen Timer machen)...

    WS_TABSTOP habe ich auf False gesetzt und trotzdem bekommt mein Dialog keine Tateneingaben mehr...


  • Mod

    Verwende PreTranslateMessage!


Anmelden zum Antworten