Mit Dev cpp eigene Buttons und Oberfläche machen



  • Hallo mich würde mal Interessieren wie man z.b. mit Dev Cpp eigene Buttons und Edit Felder und so machen kann.

    Bisher kenn ich das nur vom Borland Builder das man dort seine Steuerelemente hat und diese einfach auf der Form platzieren muss und sich so eine Oberfläche zusammen klicken kann.

    Aber wie is das z.b. bei Dev Cpp den dort kann man ja nicht einfach alles zusammen klicken.



  • Hallo,

    Mit DevCpp macht man das besser gar nicht. Diese IDE ist veraltet und wird auch nicht mehr weiterentwickelt. Du kannst dir aber mal CodeBlocks anschauen. Da kannst du z.Bsp. wxWindows zur GUI-Erstellung nutzen. Schon bei der Standardinstallation ist dazu alles nötige dabei.
    Alternativ kannst du z.Bsp. auch Qt nehmen. Auch dafür gibt es ein Plugin für CodeBlocks.
    Fragen dazu solltest du aber in den passenden Foren stellen.
    zu CodeBlocks in
    Compiler- und IDE Forum
    zu wxWindows oder Qt in
    Andere GUIs - Qt, GTK+, wxWidgets



  • Ok Danke ich schau mir mal das CodeBlocks an.



  • So wie das Aussieht muss ich mich wohl mit der WinAPI beschäftigen.

    Aber wie ist das dann wenn ich z.b. eine Anwendung für Linux machen will und auf Linux Programmiere.

    Benutzt man dann auch die WinAPI O_o ?

    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "CodeBlocksWindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR lpszArgument,
                         int nCmdShow)
    {
        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 colour 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 */
               "Code::Blocks Template 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, nCmdShow);
    
        /* 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;
    }
    


  • Hallo

    Nein Linux hat keine WinAPI, das hat nur Windows.
    Um dein Programm portabel zu halten must du statt direkt WinAPI entsprechende portable Bibliotheken wie das schon genannte wxWidgets verwenden.
    Da das dann nichts mehr mit dem Builder zu tun hat verschieb ich dich mal ins GUI-Forum. Dort findest du sicher auch schon genug Threads zum Thema freie Frameworks.

    bis bald
    akari



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • roflcopter schrieb:

    So wie das Aussieht muss ich mich wohl mit der WinAPI beschäftigen.

    Warum das denn? WinAPI ist meiner Meinung nach nur was für Masochisten. 🙂
    Da gibt es einfachere Möglichkeiten.


Log in to reply