Вы можете попытаться создать подкласс управления правкой. Либо «подклассы экземпляров», чтобы перехватывать сообщения только для одного окна, либо «глобальные подклассы», чтобы перехватывать сообщения для всех окон этого класса (в вашем приложении, а не в масштабе всей системы).
В приведенном здесь примере (http://msdn.microsoft.com/en-us/library/ms997565.aspx) показано, как создать подкласс для элемента управления редактирования и перехватить сообщение WM_GETDLGCODE - его не так сложно изменить на WM_KEYDOWN.
У вас могут быть проблемы с предварительным просмотром клавиш, используемых для диалоговых команд, например, TAB или RETURN, так как они могут оказаться в ловушке выше по пищевой цепи. Вам также может понадобиться посмотреть на изменение WM_GETDLGCODE.