I come from a background where the company I worked for developed and delivered software for VAX/VMS and a number of Unix platforms. So cross platform was always my perspective. Then in the 1990s, Windows took over and development became more and more MSVS centric with GUIs using MFC, and cross platform kind of faded away, which I did not really enjoy.
I was looking for a good solution for cross platform GUI and found that wxWidgets was the best answer, it is native on all platforms which I think is the right approach. Code::Blocks supports wxWidgets development via the simply excellent and very important wxSmith plugin. wxSmith is a major reason for choosing Code::Blocks.
Also, Code::Blocks has its own build system that works the same on Windows and Linux (the platforms that matter to me). You can use GCC everywhere like most people do, or you can do what I do: Within one and the same project I have build targets for the MSVC compiler (used on Windows) and also for GCC (used for linux). This is as good as it gets for my use, the software is native everywhere and I can update the project files everywhere and use git to synchronize between platforms.
I have used Code::Blocks more or less this way since about 2008 and I enjoy it. I use the Nightly Builds of C::B on Windows and I build from source on Linux. I have a git mirror repository that is automatically updated every day from the SourceForge SVN original
https://github.com/arnholm/codeblocks_sfmirrorMany thanks to the developers and maintainers of Code::Blocks!