notepad is an editor - it edits text files, and that's it.

notepad++ is a better editor, and through various 'run' type macros, you can start to mimic some crude behaviour of an IDE.

codeblocks is an IDE. But it really doesn't care about what programming language you choose, or which compiler you choose.
You could use it just as an editor, and figure out how to compile the code by some other means.

The advantages of an IDE are
- The editor probably knows things about the syntax of the language you're editing
- You can point at things and get help on things like keywords, function names etc.
- It knows how to find and run the compiler for you.
- It can create projects which help with managing larger projects containing many files.
- It can work with the debugger.