Grafische C Programmierung

Hallo
Ich habe ein Frage.
Ich habe in der letzter Zeit genug Erfahrung gesammelt in C Programmierung.
Allerdings nur Consolen Apllicationen. Weil dass natürlich auf Dauer langweilig
wird möchte ich gerne Grafisch Programmieren. Leider habe ich in Google nur Tutorials
für C# und C++ gefunden. Ich hab selbst nach C++ gesucht in der hoffnung C tuts zu kriegen ;D
Ich möchte grundlegende Sachen lernen. Sprich
-Text
-Größe des fensters ändern.
-Hintergrundbild des Fensters festlegen.
Villeicht auch Hintergrund musik oder kleine animationen.
Wenn ihr ein gutes tutorial oder eine Lehrseite kennt einfach reinschreiben.
MFG
.ParadoxX
(kann name nicht ändern :D)
 
Das kann C nicht "out of the box", sprich du brauchst eine Library.

SDL ist in C implementiert, einfach zu lernen und portabel.
Da findest du auch Tutorials zu.
 
Dass glaub ich eher nicht, da es auch verschiedene
Beispiele gibt hier ein code:

Code:
#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 */            " Window  ",       /* 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; }


Mein compiler ist BloodShed Dev-C++
 
du benutzt in deinem Beispielcode ja auch die WinAPI. Ohne die wirst du in C kaum ein Fenster o.ä. hinbekommen (und halt auch ohne andere libs).
 
Code:
#include <windows.h>

Die windows.h ist nicht Teil derStandard-C-Bibliothek. Woraus diese besteht, kannst du in einer Referenz nachlesen. Dabei wirst du feststellen, dass dort absolut nichts grafisches enthalten ist. Selbst grafische Ausgaben auf der Konsole benötigen eine zusätzliche Bibliothek, wenn sie über den Standard ASCII Zeichensatz hinausgehen. Daher auch die Verweise auf die Win-API, denn das ist die Bibliothek, die unter Windows verwendet wird um grafische Dinge darzustellen, Systemparameter zu ändern usw.
 
Nicht unbedingt, wenn man ein wenig mit VT100 Escape Sequenzen rumspielt, kann man damit auch ohne externe Bibliotheken (also von libc mal abgesehn) ansehnliche Sachen hinbekommen (mit Unicode und wchar_t sogar hypsche Dialogboxen) :)
 
Ich würde dir GTK+ empfehlen, ist einfach zu lernen, open source und cross-platform.

OT: Dev-Cpp ist eine IDE und verwendet standardmäßig MinGW als Compiler.
 
Mit Dev-Cpp kannst du auch Programme in C erstellen :) Einfach keine Klassen und Templates (und was C++ sonst noch von C abhebt) verwenden und statt #include <foo> ein #include <foo.h> benutzen.
 
Sry hab wohl vergessen die fußnote (" Achtung Ironie!"); hinzuzufügen ;-)
Ne hab ich net aber das tut von basicavid ist sehr gut
 
Das ist keine Ironie, deine Posts sind ein einziger Witz... Entscheide dich erstmal was du genau willst und glaub den Leuten die sich auskennen, oder sieh halt, dass du selbst klar kommst...
 
Pls close
Ich geh zu ЯR da ist man freundlicher ! Ich hatte eine eindeutige frage und hab ein guts tutorial bekommen. Mehr will ich net. In dem sinne adios hackerboard
Mfg .ParadoxX

Zwar kein admin aber moralisch...


...CLOSED!!!
 
Ich hätte da noch ne Frage.
Mein C-Compiler heißt Quinzy. Kann mir bitte jemand helfen und sagen, wie ich da eine neue Library einbinden kann? Muss ich die zu erst irgendwie installieren oder in einen Ordner verschieben?
 
Zurück
Oben