Grafische Oberfläahe



  • moin
    Wie geht dass das Programm bissl Grafik hat nämlich meine Programmme haben immer bis jetzt so ein schwarzen Fenster und nur text ich will aber ein button und so haben wie geht das???kennst ihr vllt gute tutorial die das zeigen wie es geht sollen schon kostenlos sein!



  • Wenn du so liest, wie du schreibst, werden dir die Tutorials nicht viel nutzen.



  • opengl (komplexere 2d Spiele oder 3d Spiele):
    http://nehe.gamedev.net

    winapi (programme oder kleine spiele):
    http://www.win-api.de/

    mfg.



  • Kann man mit opengl auch einfach gui programme herstellen?
    Oder werde diese Programme wie Spiele behandelt(Ok spiele sind auch Programme)???



  • Fragensteller0001 schrieb:

    Kann man mit opengl auch einfach gui programme herstellen?
    Oder werde diese Programme wie Spiele behandelt(Ok spiele sind auch Programme)???

    Bei OpenGL gibt es imho keine vordefinierten Widgets, wie Button, Eingabefeld, etc., d.h. du müsstest dir das alles selber basteln und ist deshalb eher net für GUI Apps geeignet. WinAPI & GTK schon eher.



  • oder schau mal auf http://irrlicht.sourceforge.net

    mfg.



  • Da wir im C++ Forum sind rat ich dir eher zur objektorientierten Variante von gtk http://www.gtkmm.org/.
    Eine Alternative ist auch http://www.trolltech.com/ . Da hast du einen Designer zur verfuegung, mit dem du dir die GUI zusammenbasteln kannst.



  • joomoo schrieb:

    oder schau mal auf http://irrlicht.sourceforge.net

    😮
    Warum die schweren Graphikengine-Geschütze (Irrlicht/OpenGL) auffahren, wenn es um normale GUI programme geht? 😉



  • Könnte mir jammand mal so ein einfachen c++ code posten da wo ich dann so eine grafischeoberfläche habe nämlich ich habe meistens nur welche für c gefunden und die gehen nicht





  • blinki schrieb:

    Könnte mir jammand mal so ein einfachen c++ code posten da wo ich dann so eine grafischeoberfläche habe nämlich ich habe meistens nur welche für c gefunden und die gehen nicht

    Wieso gehen die für C nicht???

    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    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 are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        /* Use default icon and mouse-pointer */
        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 Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
    
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    

    mfg.



  • sry ich meinte das die dann für c++ nicht gehen und geht das auch ohne gleich eine neue Bibliotheken runter zu laden nämlich bei gtk+ muss man das ja machen



  • blinki schrieb:

    sry ich meinte das die dann für c++ nicht gehen und geht das auch ohne gleich eine neue Bibliotheken runter zu laden nämlich bei gtk+ muss man das ja machen

    nein. Allerdings habe einige Compilier/IDES die meisten APIs schon dabei.

    mfg.



  • Also ich habe den Borlander c++ version 5.02 kann das sein das der die APIs(was ist das eigentlich^^) schon dabei hat??? oder sollte ich mir am besten ein anderen holen???



  • blinki schrieb:

    Also ich habe den Borlander c++ version 5.02 kann das sein das der die APIs(was ist das eigentlich^^) schon dabei hat??? oder sollte ich mir am besten ein anderen holen???

    ich empfehler dir dev-c++
    http://www.bloodshed.net/dev/devcpp.html

    der hat schon dei winapi dabei und auch beispiel code für diese und opengl.

    mfg.



  • Danke für die schnelle antwort
    hab mir den schon runtergeladen und guck mir den gerade an mal gucken ob ich die beispiel codes finde und ob auch alles klapt 🙂



  • blinki schrieb:

    Danke für die schnelle antwort
    hab mir den schon runtergeladen und guck mir den gerade an mal gucken ob ich die beispiel codes finde und ob auch alles klapt 🙂

    Der Beispiel Code den ich auf dieser Seite gepostet habe ist der aus Dev-C++. Erreichst ihn indem du ein neus projekt erstellst und dort dann Windows Fenster Anwendung oder so auswählst.

    Um das zu verstehen, lies dir am besten das Tutorial zu Winapi was ich auf seite1 genannt hab durch. viel erfolg!

    mfg.


Anmelden zum Antworten