Well, DJGPP is a DOS compiler, so for native Windows C/C++ you'd be better off with mingw (stands for "
Minimalist GNU for Windows"
or somesuch. It's a gcc port that use native Windows runtime dlls so your programs can run without any of that extra cygwin fluff). Mingw is part of cygwin, but I think you have to give a switch to the compiler to enable mingw mode (-mwindows or -mno-cygwin or somesuch .. check the docs). At least you had to do that before, but it's been a while since I used cygwin.
Cygwin doesn't come with an IDE. If you want that, some people seem to like
Dev-C++ (I've never used it myself, though). It includes a mingw compiler.
As for graphics library, that depends on what kind of graphics you want. I'm a fan of
SDL myself (it's also what DROD uses), but that's more suited to games than anything else. It's very simple, all it does is give you
one window* and surfaces you can blit to each other, and draw on manually. This is great for games, but maybe not so great for other things. (SDL also handles input, sound, threads, and other things that are nice to have in games). It doesn't provide any font drawing either, so if you want to write stuff to the screen you'll either need to make your own font drawing routines (bitmap fonts are pretty easy), or use something like
SDL_ttf (DROD uses this). Also, there is an (unofficial) add-on library to SDL called
SDL_gfx that provides functions for drawing graphics primitives like lines and circles and such, but I've never used it myself (I'm the kind of guy who likes to make his own line and circle drawing routines), so I can't say if it's any good.
Allegro is another library. Like SDL, it's primarily used for games, but unlike SDL, it provides a whole lot more than just the bare minimum. It's got functions for drawing lines, circles, polygons, fonts, etc .. It's even got a (basic) GUI. It also has a DOS port
(Allegro's been around a long time. My first graphical C program on the PC used this, in DOS.)
wxWidgets is a GUI library, not so well suited for games but nice if you want a window w/menus, buttons, checkboxes, etc. I don't know if it has any graphic primitive drawing routines, though, as I haven't used this myself. (Yes, I keep recommending things I haven't used. I'm sure a mob will gather and lynch me for this one day).
There's also a bunch of vector graphics libraries around, like
Anti-Grain Geometry and
Cairo, etc. I haven't used any of these, but I have plans to do so one day
. Also, of course, there's
OpenGL (and I guess DirectX too, since you're using Windows). OpenGL and DirectX are primarily for accelerated 3D graphics, but you can easily do 2D things in them as well, basically treating it like another vector graphics library (but very simple, compared to AGG or Cairo). OpenGL is easy to set up with SDL.
- Gerry
* A future version will have multi-window support, but that's not going to be out for quite a while yet.