Name im Titel einer SDI-Anwendung ändern



  • Ich habe eine SDI-Anwendung geschrieben. Leider habe ich dem Projekt damals einen unpassenden Namen gegeben, der nun beim Starten des Programms links oben in der Ecke steht. Wie kann ich diesen Namen ändern? Weiterhin steht da noch "untitled", kann man auch das entfernen?



  • AfxGetMainWnd()->SetWindowText("DeinText");
    


  • Danke, das Ganze funktioniert. Allerdings ist das Problem noch nicht ganz gelöst. Ich binde noch eine Klasse ein, die ein graphisches Fenster erzeugt. In der View-Klasse lege ich eine Instanz dieser Klasse an, so dass beim Starten des Programms dieses Fenster auch aktiv ist. Mit der angegebenen Funktion kann ich nun den Text für dieses Fenster ändern aber noch nicht für das eigentliche Hauptfenster. Gibt es eine Funktion, dass ich entweder einen Pointer auf alle offenen Fenster bekomme, oder gibt es eine Möglichkeit den Focus von dem Extrafenster wieder auf das Hauptfenster umzulegen?



  • Was für eine Klasse bindest du in deine View ein?
    Leider ist mir nicht so ganz klar wo das Problem noch liegt...



  • Die Klasse nennt sich HWindow. Sie ist einem Programmpaket namens "Halcon" entnommen, welches verschiedene Operationen für Digitale Bildverarbeitung abdeckt. Wenn ich in der View-Klasse der SDI-Anwendung ein Objekt dieser Klasse anlege, dann wird beim Starten des Programms ein weiteres Fenster neben dem Fenster, welches das Menü und das CFormview enthält generiert. Ich habe den Befehl, den Du geschickt hast in die Klasse CMainFrame hineingesteckt, dann wurde aber der neue Text für das Halcon-Fenster geändert. Anscheinend wird beim Starten des Programm nach dem Erzeugen des HWindow-Objektes der Focus auf eben dieses übertragen. Ich habe dann noch probiert, eine OnInitDialog-Funktion in die View-Klasse einzufügen und dort dann den Befehl einzubauen. Hat nicht funktioniert 🙄 .

    Der letzte Versuch war, in eine der vielen Updatefunktion des Menüs (zum An- und Ausschalten der verschiedenen Button und Menüfunktionen) diese Funktion einzubauen. Hier ist das Ergebnis, dass beide Fenster dann den gleichen Text erhalten, nämlich den, der in der Updatefunktion festgelegt wird.

    Ich bräuchte irgendwie die Möglichkeit, einen Pointer auf beide Objekte zu bekommen. 😕



  • Ein Pointer auf das Hauptfenster kriegst du ja mit

    AfxGetMainWnd()
    

    Den Pointer auf dein zweites Fenster kannst du dir ja beim erstellen des Fensters in eine Membervariable sichern und somit auch eine Get Funktion hierfür erstellen.


Log in to reply