graphical applications is quite a broad field. What kind of program do you want to write?
If you want to learn the basics of computer graphics i suggest to start by learning how to write programs using either opengl or directx.
If you just want to make a gui (graphical user interface) for some program, you might want to use some higher lvl toolkits like clutter for example, but thats pretty much OS-dependent.
I can surely give you some helpful links or book names if you say more precisely what kind of graphical application you want to write.
Well i do not know much about directx, but here are some links and books i used to learn opengl which you might find useful:
The red book: http://www.glprogramming.com/red/
I would rather read it on the web than buying the book because it's quite obsolete already, but in my opinion it's still a good source to learn the very basics, because i found it much more difficult to learn opengl 3.x / 4.x than opengl 1.1.
The OpenGL SuperBible: http://www.starstonesoftware.com/OpenGL/
This is a good resource to learn how to write opengl programs using the benefits of newer opengl standarts 3.0 - 3.3. The only thing i found a bit annoying was the custom GLTools library by the authors, which is included in every sourcefile and makes it hard at the beginning to write code without using this library. But that's just a matter of taste i guess, because it also eases writing opengl programs when using GLTools. All in all this is a nice tutorial in writing opengl programs.
OpenGL Shading Language: http://www.3dshaders.com/
When you've written some little opengl programs you'll probably want to write your own shaders. You can use any of the two books mentioned at that website in order to learn more about the opengl shading language.
I suggest to start with the red book because it's free and easy to understand. But always keep in mind that it's also old and partly deprecated.