Zugriff auf Dialogelemente aus Funktion



  • Hallo,

    auf meinem Dialog habe ich ein Statusfenster, welches ich unter (Button 'RUN')

    void CAttitude_3Dlg::OnRUN()
    

    mit

    SetDlgItemText(IDC_APP_STATUS,"TEST");
    

    beschreibe .. funktioniert wunderbar! Versuche ich jedoch das ganze von einer separat definierten Funktion aufzurufen, meldet er

    Funktion akzeptiert keine 2 Parameter

    Wie kann ich meine Funktion in 'CAttitude_3Dlg' einbinden, damit ich auf die Elemente wie gewohnt zugreifen kann?

    Gruß
    Michael



  • SetDlgItemText() ist eine Methode von CWnd (und damit auch von CDialog). Und Deine Funktion ist mit Sicherheit keine Methode Deines von CDialog abgeleiteten Dialoges.
    Also versucht der Compiler es mit

    BOOL SetDlgItemText(
      HWND hDlg,         // handle of dialog box
      int nIDDlgItem,    // identifier of control
      LPCTSTR lpString   // text to set
    );
    

    und das sind eindeutig 3 Parameter......

    Spendier Deinem Dialog eine public SetStatusText()-Methode, die den Text setzt und rufe diese aus Deiner Funktion auf. Dazu benötigst Du natürlich in Deiner Funktion einen einen Pointer oder eine Referenz auf Deinen Dialog.



  • Hm.. du kannst entweder die Funktion deinem Dialog hinzufügen (also als Memberfunktion... wenn du das willst!) oder mit

    // Gilt nur, wenn der Dlg in dem sich das Ctrl befindet der Hauptdialog ist! An sonnsten muss du einen Pointer im Konstruktor odg. mit übergeben!
    AfxGetMainWnd()->SetDlgItemText(IDC_APP_STATUS, "TEST");
    


  • Besten Dank!!


Anmelden zum Antworten