Begrüßungsbildschirm mit WinApi



  • Tag zusammen,
    da ich mich mitlerweile gut genug mit c++ auskenne(und die konsole leid bin :P)
    habe ich mich entschlossen winapi zu lernen..
    soweit so gut..hab mitlerweile durch googlen etc verstanden wie ich ein erstes fenster etc erzeuge..hab bisschen dran rum probiert und es auch geschafft ein 2tes Fenster zu erstellen, jedoch war das zweite fenster kein eigenständiges fenster denn sobald ich bei einem von beiden auf escape gedrückt habe schließen sich beide...
    so ich wollte jetzt als ersten schritt ein begrüßungsfenster erstellen welches nur ein bild keine navigation leiste etc besitzt, und nach einer gewissen zeit soll sich dann das hauptprogramm öfnen...nur wie geht das?
    also ich möchte nicht wissen wie ich jez die fenster styles iund so schreiben muss, oder wie das mit der zeit geht das ist kein problem nur ich check nicht wie ich es so schreibe das sich erst das und danach ein anderes eigenständiges fenster erstelle...

    Danke im voraus.. 🙂
    mfg



  • Hallo,

    das hier hab ich mal gefunden, allerdings noch nciht eingesetzt....
    http://www.codeguru.com/cpp/w-d/dislog/non-rectangulardialogs/article.php/c7697/



  • habs mir mal angeguckt vielen dank für die schnelle antwort.. jedoch suche ich eher nach dem wissen es selber programmieren zu können und nicht iwas vorgefertigtes zu benutzen... hab es mal mit ner zweiten cpp datei ausprobiert jedoch geht es so auch nich da dann die fehler meldung kommt das winmain schon in einem anderen obj verwendet wird..geht das üb header datein oder wie?



  • Kingmarino schrieb:

    da ich mich mitlerweile gut genug mit c++ auskenne

    Kingmarino schrieb:

    hab es mal mit ner zweiten cpp datei ausprobiert jedoch geht es so auch nich da dann die fehler meldung kommt das winmain schon in einem anderen obj verwendet wird..geht das üb header datein oder wie?

    Irgendwas stimmt hier nicht ...



  • Kingmarino schrieb:

    habs mir mal angeguckt vielen dank für die schnelle antwort.. jedoch suche ich eher nach dem wissen es selber programmieren zu können und nicht iwas vorgefertigtes zu benutzen... hab es mal mit ner zweiten cpp datei ausprobiert jedoch geht es so auch nich da dann die fehler meldung kommt das winmain schon in einem anderen obj verwendet wird..geht das üb header datein oder wie?

    Das heißt, dass die Funktion bereits in einer anderen Quellcodedatei definiert ist.

    Wenn du eine Funktion in mehreren Modulen verwenden willst, erstellst du eine Header-Datei und schreibst dort die Deklaration. Dann erstellst du eine Quellcodedatei (Modul, *.cpp), bindest mit #include die Headerdatei ein und schreibst in diese Datei dann die Definition. Ergebnis: eine Funktion, die du einem Modul bekanntmachen kannst, indem du die Headerdatei einbindest, ohne dich über irgendwelche Bindungen noch Gedanken machen zu müssen.

    Wenn du aber in zwei Modulen zwei verschiedene Funktionen verwendest, die eine unterschiedliche Signatur besitzen ... ändere die Signatur.



  • Kleines Beispiel:

    Header.h

    unsigned char GetNull();
    

    Header.cpp

    unsigned char GetNull()
    {
        return 0;
    }
    

    Module_1.cpp

    #include "Header.h"
    //...
    GetNull();
    //...
    

    Module_2.cpp

    #include "Header.h"
    //...
    GetNull();
    //...
    


  • Gut, wenn du schon Fenster programmieren kannst, dann gehe wie folgt vor:

    Erzeuge das Fenster der Hauptanwendung und verstecke es mit der WinApi Funktion:

    SetWindowPos(hwnd,0,xpos,ypos,breite,hoehe,SWP_ASYNCWINDOWPOS|SWP_HIDEWINDOW);
    

    Anschließend kannst du dann dein Begrüßungsfenster öffnen und per WM_TIMER z.B. zeitlich gesteuert wieder schließen und das Fenster der Hauptanwendung wieder mit:

    SetWindowPos(hwnd,0,xpos,ypos,breite,hoehe,SWP_ASYNCWINDOWPOS|SWP_SHOWWINDOW);
    

    öffnen.



  • ok danke jungs habs geschafft 🙂
    mfg 👍



  • Wie hast du es gelöst?

    Gruß,
    DC



  • Oder man v erwendet einfach zwei Programme, das eine startet da andere...



  • habs mit der headerdatei gelöst, da ich im weiteren verlauf noch mal mehrere fenster usw erstellen werde und das dafür dann die geeignetere lösung ist...
    aber die beiden funktionen die du mir genannt hast sind auch ziemlich hilfreich 🙂


Anmelden zum Antworten