I'm not an expert on this, but I think this is true: You can't detect if a given value is already used by a common control because they're just numbers. You can use WM_APP and above which should work, but didn't MS say that about WM_USER? (Or did I just misinterpret the documentation I read which said "use WM_USER and above?) You can use RegisterWindowMessage to allocate yourself a number that should be unique (given nothing is badly behaved), but this uses up some system resources or something like that, so "should be avoided". At the moment, I'm going the RegisterWindowMessage route. BTW, I used WM_USER and above for a while and didn't notice anything wrong for a very long time. Then one of my applications started behaving very strangely and I tracked it down to "my" messages coming from MFC/common controls out of the blue because I'd stumbled on to some numbers that were used for other things. (For example, I had a WM_USER+x message which meant "blah blah has happened, close the window if xyz" and that message was being received every time I gave the window focus, which meant the application appeared to close as soon as it openned! I almost gave up programming when that happened, I couldn't see how it was even possible! hehe So the WM_USER thing may not have bitten you yet, but avoid it before it does!) Hope that's accurate and helpful to ya!