Thanks But I want to get the text when it's pasted. I checked WM_PASTE but it is send to the control that has the focus not it's parent CWnd. My dialog has some control of buttons, edit boxes, list control, ... so it is posible that any of these controls has the focus (when something is paste)
Check out these functions[^]. It's a while since I have done this but I'm afraid it is somewhat involved in terms of getting mutliple sets of information and matching the pieces together. Hey, if it wasn't Microsoft it wouldn't be fun.
One of these days I'm going to think of a really clever signature.
I have a CDateTimeCtrl on my dialog. Through this I can choose any date in given range from drop down. But currently user is also allowed to press numeric keys to set the date. Is there any way to stop user from typing in it. I want, he should only be able to select the date from drop-down and I don't want to disable the control. I have checked the "AllowEdit" property but that is different thing. Currently it is set to false.
Thanks Jochen, you are right. That way it will work. But for such a small requirement, I don't want to do big changes and also I don't want to go for pretranslate message. Is there any way to handle WM_CHAR/OnChar events for the date control on the same dialog class?
You are using MFC, so you don't need to handle PreTranslateMessage(). Just use the wizard to derive a class, use the message properties to add the WM_CHAR handler, and comment the line calling CDateTimeCtrl::OnChar(). Done with a few mouse clicks. All you need to type in using the keyboard is the name of the drived class, the comment chars, and replacing the CDateTimeCtrl by your class name in your code.
The edit control of CDateTimeCtrl is not accessible. So it can't be done in the dialog. Even when it would be possible: It is always better to perform such things in the control rather than in the dialog. So it must be done only once and not within every dialog that uses such a control.