Ein paar Fragen zu meinen Programm



  • Ich habe vor kurzem mit dem Bloodshed Dev-c++ ein Kleines Programm geschriben:
    http://www.webspace-invasion.com/frogger/Gothica(1.0.0.1).zip
    (Diese Programm soll halt die genau Zeitangabe wenn man das Programm startet anzeigen, klappt ja auch!)
    Hier der Source Code:
    http://www.webspace-invasion.com/frogger/Datum.cpp
    Jedoch wie schaffe ich das das aktuelle Datum immer wieder "erneuert" wird also ein Uhr sozusagen.
    Und dann wie schaffe ich das dann das ich verbleibenden Monate Tage Stunden Minuten und Sekunde bis zu einem Tag aus rechnen und anzeigen lassen kann?
    Naja ich hab halt noch ein paar fragen 😃
    Wie schaffe ich das mein (oben angezeigtes Programm) in so ein Windows Fenster kommt?
    Hier das Bild : http://www.webspace-invasion.com/frogger/Windows-Fenster.JPG
    Hier der Code von main.cpp für das Windows-Fenster:
    http://www.webspace-invasion.com/frogger/main.cpp
    Hier noch die 2 weiteren Datein für das Windows-Fenster:
    http://www.webspace-invasion.com/frogger/main.h
    http://www.webspace-invasion.com/frogger/Rsrc.rc
    Es were auch ganz gut wenn ihr mir noch sagen könntet wie ich beim Starten des Programm ein Bild anzeigen lassen könnte.

    Naja das sind jetzt vielleicht ein paar fragen 😃 😉 aber ich hoffe ihr könnt mir alle beantworten, danke danke danke jetzt schon im Voraus!!!

    Bye Frogger



  • Ist das eine C++ Frage? Ich denk nicht...
    Und nochwas: Niemand wird sich eine zip-Datei runterladen. Poste den relevanten Code.



  • So hier ist der Code von meinen Programm:

    #include <Windows.h>
    #include <stdio.h>
    #include <iostream.h>
    #include <time.h>
    #include "menu.h"
    
    void wait ( int seconds )
    {
        /*Bestimmung von einer Sekund für eine Sekund*/
        clock_t endwait;
        endwait = clock () + seconds * CLK_TCK ;
        while (clock() < endwait) {}
    }
    
    int main()
    {
        SYSTEMTIME st;
        GetSystemTime(&st);
    
        /*Bestimmung der Uhr Zeit auf Variabeln*/
        float year=st.wYear;
        float month=st.wMonth;
        float day=st.wDay;
        float hour=st.wHour+2;
        float minute=st.wMinute;
        float second=st.wSecond;  
    
        /* Uhr Zeiten und Gothic III Relais*/  
        cout<<"IAktuelle Zeit:"<<"            "<<"IReleastermin von Gothic III:"<<endl;
        cout<<"I---------------"<<"           "<<"I----------------------------"<<endl;
        cout<<"IJahr:     "<<year<<"            "<<"IJahr:     2006"<<endl;
        if(month<10)
        cout<<"IMonat:      0"<<month<<"            "<<"IMonat:      01 (Januar)"<<endl;
        else
        cout<<"IMonat:      "<<month<<"            "<<"IMonat:      01 (Januar)"<<endl;
        cout<<"ITag:        "<<day<<"            "<<"ITag:        01 (Sonntag)"<<endl;
        cout<<"IStunden:    "<<hour<<"            "<<"IStunden:    00"<<endl;
        if(minute<10)
        cout<<"IMinuten:    0"<<minute<<"            "<<"IMinuten:    00"<<endl;
        else
        cout<<"IMinuten:    "<<minute<<"            "<<"IMinuten:    00"<<endl;
        if(second<10)
        cout<<"ISekunden:   0"<<second<<"            "<<"ISekunden:   00"<<endl;
        else
        cout<<"ISekunden:   "<<second<<"            "<<"ISekunden:   00"<<endl;
    
        cout<<"\n\nSo ich habe jetzt das Problem mit der Stunden Anzeige"<<endl;
        cout<<"beseitigt, falls aber denoch irgendwelche Probleme auftauchen"<<endl;
        cout<<"So schreibt einfach das Problem in den Thread!\n\n"<<endl;
        cout<<"Zum Beenden eine Taste druecken!                      (C) Copyright bye Frogger"<<endl;
        getchar();
    }
    

    So ich will halt schaffen das das Datum jetzt wie halt eine Uhr läuft, sprich das die wie animiert ist.
    Dann sollte das der obige Code in dieses Code reingeschriben, das ich ein richtiges "Windows-Fenster! hab:

    #include <windows.h>
    #include "main.h"
    
    /* Declare WindowsProcedure */
    LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
    /* Make the classname into a global variable */
    char szClassName[] = "Windows Example";
    HINSTANCE hThisInstance;
    
    int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application is saved */
        WNDCLASSEX wincl;        /* Datastructure for the windowclass */
        HMENU menu;              /* Handle of the menu */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Ctach double-clicks */
        wincl.cbSize = sizeof(WNDCLASSEX);
    
        /* Use default icon and mousepointer */
        wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL; /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use lightgray as the background of the window */
        wincl.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
    
        /* Register the window class, if fail quit the program */
        if(!RegisterClassEx(&wincl)) return 0;
    
        /* The class is registered, lets create the program*/
        hwnd = CreateWindowEx(
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows Example",         /* Title Text */
               WS_OVERLAPPEDWINDOW, /* defaultwindow */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window end up on the screen */
               256,                 /* The programs width */
               256,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a childwindow to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow(hwnd, nFunsterStil);
    
        menu = LoadMenu(hThisInstance, MAKEINTRESOURCE(ID_MENU));
        SetMenu(hwnd, menu);
    
        /* Run the nessageloop. It will run until GetMessage( ) returns 0 */
        while(GetMessage(&messages, NULL, 0, 0))
        {
               /* Send message to WindowProcedure */
               DispatchMessage(&messages);
        }
    
        /* The program returvalue is 0 - The value that PostQuitMessage( ) gave */
        return messages.wParam;
    }
    
    /* This function is called by the Windowsfunction DispatchMessage( ) */
    LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
           case WM_COMMAND:
               switch( wParam )
               {
                 case IDM_FILENEW:
                 case IDM_FILEOPEN:
                 case IDM_FILESAVE:
                 case IDM_FILESAVEAS:
                 case IDM_FILEPRINT:
                 case IDM_FILEPAGESETUP:
                 case IDM_FILEPRINTSETUP:
    
                 case IDM_EDITUNDO:
                 case IDM_EDITCUT:
                 case IDM_EDITCOPY:
                 case IDM_EDITPASTE:
                 case IDM_EDITDELETE:
                      MessageBox( hwnd, (LPSTR) "Function Not Yet Implemented.",
                                  (LPSTR) szClassName,
                                  MB_ICONINFORMATION | MB_OK );
                      return 0;
    
                 case IDM_HELPCONTENTS:
                      WinHelp( hwnd, (LPSTR) "HELPFILE.HLP",
                               HELP_CONTENTS, 0L );
                      return 0;
    
                 case IDM_HELPSEARCH:
                      WinHelp( hwnd, (LPSTR) "HELPFILE.HLP",
                               HELP_PARTIALKEY, 0L );
                      return 0;
    
                 case IDM_HELPHELP:
                      WinHelp( hwnd, (LPSTR) "HELPFILE.HLP",
                               HELP_HELPONHELP, 0L );
                      return 0;
    
                 case IDM_FILEEXIT:
                      SendMessage( hwnd, WM_CLOSE, 0, 0L );
                      return 0;
    
                 case IDM_HELP\1:
                      MessageBox (NULL, "About..." , "Test", 1);
                      return 0;
    
               }
               break;
    
          case WM_CLOSE:
               DestroyWindow( hwnd );
               return 0;
    
          case WM_DESTROY:
               PostQuitMessage (0);
               return 0;
    
          break;
          default:                   /* for messages that we don't deal with */
          return DefWindowProc(hwnd, message, wParam, lParam);
       }
      return 0;
    }
    

    Und wie kann ich bei dem Start des Programm kurz ein Bild erscheinen lassen?



  • du glaubst allen ernstes, du könntest mal eben ein fenster-programm schreiben 😕. mann! das ist c++! und windows noch dazu! da mußt du erst mal 4 semester informatik studieren! in ein paar sätzen läßt sich das leider nicht erklären. da bräuchte es schon ein ganzes buch 😞

    PS: ich hab die zip-datei runtergeladen :p



  • Nee, dazu braucht man kein ganzes Buch. Such mal nach einem Win32-Api Tutorial. Ansonsten kauf dir den Petzold.
    Die Frage ist viel mehr, ob es Sinn macht, mit GUI-Programmierung zu beginnen, wenn die Basics noch nicht sitzen.


Anmelden zum Antworten