The TileSelectButton works perfectly fine, but somehow the code within the ifdef block for the TileButton is considered part of the ifdef command, as MS Visual Studio is hightlighting that code slightly in grey. In my main source file I have defined, and only after that I include the file.
It doesn't mean anything. Visual Studio's C++ highlighter runs at a lower refresh rate due to the complexity of parsing C++ code. The highlighter's output at any given moment is not representative of what the compiler will do; sometimes it's best to just ignore it.