Uhrzeit und Datum SDI



  • Ich möchte in der Statusleiste einer SDI Anwendung die Uhrzeit und das Datum angezeigt bekommen.
    Wie funktioniert das? Eine Stautsleiste ist ja schon vom Assistenten beim Erstellen der Anwendung zugefügt worden.
    Ich weiß nur nich wie ich die Uhrzeit und das Datum da reinbekommen soll.
    MFG



  • Hallo,
    du musst zwei eigene ID's in der StringTable hinzufügen.
    Diese zwei ID's fügst du dann den Indicators in der Klasse CMainFrame hinzu

    static UINT indicators[] =
    {
    	ID_SEPARATOR,           // Statusleistenanzeige
    	ID_INDICATOR_CAPS,
    	ID_INDICATOR_NUM,
    	ID_INDICATOR_SCRL,
    	ID_EIGENER_TEXT1, // <- Hier
    	ID_EIGENER_TEXT2  // <- Hier
    };
    

    Nach dem du dies gemacht hast, besitzt die Statusbar zwei neue Einträge.
    Den Text kannst du dann im Programmcode mit der Funktion

    m_wndStatusBar.SetPaneText(...);
    

    oder

    m_wndStatusBar.SetPaneInfo(...);
    

    ändern.
    Hoffe ich konnte dir weiterhelfen.



  • Ok das mit den indicators hab ich gemacht.
    Jetzt hab ich unten auch 2 neue Einträge, aber ich weiß nicht so ganz wo ich den Code einfügen soll, den du gepostet hast. Ich habs in ein paar Dateien versucht, aber jedesmal wird gesagt das m_wndStatusBar ein nicht deklarierter Bezeichner ist.
    Hoffe du weißt rat
    MFG



  • Ok hab jetzt ne Stelle gefunden. Hab die Initialisierung der CMainFrame vergessen.
    Habs jetzt da reingeschrieben, funktioniert aber nicht. Die Stelle in der Statusleiste bleibt immernoch frei.
    Nur in einer der beiden neuen Bereiche steht das, was ich in die StringTable geschrieben habe, der andere Bereich bleit frei. In der StringTable steht aber was.
    Und auch durch SetPaneText wird kein Text eingefügt.
    Ich weiß aber nicht wirklich was ich mit dem Index von SetPaneText anfangen soll.
    Wodrauf bezieht der sich?



  • Der Index bezieht sich auf das Pane, also das zu ändernde StatusBarteil. Es wird natürlich mit 0 angefangen zu zählen.


  • Administrator

    Hmmm überlege mal *g*
    Der Index bezieht sich auf den Idicator. Also 0 wäre z.b. ID_SEPERATOR, 4 wäre ID_EIGENER_TEXT1. Usw.

    m_wndStatusBar ist übrigens in der .h von deinem Mainframe definiert, wenn du dir dein SDI mit dem Wizard erstellst hast. Mit der Variable musst du dann auch arbeiten, sonst wird nix angezeigt. Die Textstellen sind übrigens auch nicht dynamisch. Also die erste Grösse die du am Anfang reinmachst wird auch so bleiben. Also bei der Zeit 00:00:00 vordefinieren und beim Datum z.b. 00.00.0000 ...

    Grüssli



  • Ok Jetzt hab ich immernoch das Problem, dass nur das Datum angezeigt wird. Also ID_EIGENER_TEXT2. TEXT1 bleibt immernoch leer.
    Es steht irgendwie nichts drin. Ich weiß nicht wodran das liegen soll.
    MFG



  • Irgendwie kann ich in den Indicator mit Inex 4 nichts reinschreiben. Habs bei nem anderen Projekt nochmal probiert und genau der selbe Fehler!
    MFG


  • Administrator

    Kannst du vielleicht mal ein Bild von der Statusbar reinlinken? Oder zumindest beschreiben wie wo was? Ich meine wird konstant immer nur das zu Anfang definierte angezeigt? Oder steht gar nix drin? Ist es viel zu klein?
    Notfalls zeig auch ein wenig etwas vom Code. Sonst ist das noch schwer dir zu helfen, denn wenn es genau so machst, wie es dir gesagt wurde, bzw. auch in der MSDN steht, sollte es funktionieren. Bei mir tut es jedenfalls.
    Grüssli



  • Beim mir funktioniert auch alles ohne Probleme. Bist du sicher das du auch den korrekten Index nutzt?



  • Hab jetzt bis gestern noch in die Nacht an diesem Problem gesessen und habe einfach am Schluss noch eine dritte ID gesetzt. Wenn ich die nun bei den Indicatoren schreibe und den selben Index wie vorher nutze, funktioniert alles ohne Probleme.
    Fragt mich aber nicht wieso. Hab danach noch ein paar neue Programme geschrieben um das noch weiter zu testen und die erste ID die ich erstelle, funktioniert irgendwie nie. Ich weiß echt nich wieso, aber ich habs jetzt geschafft das Datum und die Uhrzeit in die StatusBar zu bekommen.
    Also Problem gelöst. Danke für eure Hilfe!!!
    MFG


Anmelden zum Antworten