Personally, I'd probably just make unique fixes for each version of windows, for several reasons: first, you've already coded this implementation, and it would be a lot more work to add a custom GUI at this point. Second, there might be unforeseen problems with the custom GUI that you're not currently facing with the windows GUI. Third, what you have totally works except for a fairly minor problem that only appears on some platforms. Personally in the case of C/C++, I wouldn't worry too much about windows Vista & XP, but I tend to like targeting a single platform these days and sticking to it. If you really want multiplatform consistency, Java is an excellent option.