Текстовый редактор MFC SDI

Я создаю приложение в стиле проводника MFC SDI (у него есть полоса разделения, а правая панель — это область редактирования текста, левая панель — это древовидное представление)

Моя правая панель — это CRichEditView.

Я хочу иметь возможность определять, когда пользователь редактировал текст, чтобы был установлен флаг, показывающий, что изменение было сделано, но не было сохранено. Я пробовал несколько способов сделать это, например. ловить WM_KEYDOWN в PreTranslateMessage, но это ловит все и предотвращает нажатие клавиш от редактирования представления. Я также попытался добавить ON_WM_KEYDOWN() в карту сообщений в MyView.cpp. Опять же, кажется, что это предотвращает влияние нажатий клавиш на текст в представлении. Я хочу разрешить пользователю редактировать текст в представлении, но приложение должно знать, что это было сделано.

Пожалуйста, помогите - я часами искал способы сделать это.

Большое спасибо


person user686027    schedule 31.03.2011    source источник


Ответы (1)


Добавление ON_WM_KEYDOWN() в карту сообщений, вероятно, является правильным подходом. Вы должны убедиться, что ваша реализация метода OnKeyDown() вызывает метод базового класса, чтобы сообщение передавалось надлежащим образом.

person DavidK    schedule 31.03.2011
comment
ах да, сначала я попробовал pWnd-›OnKeyDown(), что вызвало ошибки компиляции, но затем попробовал CWnd::OnKeyDown, и это сработало. - person user686027; 04.04.2011
comment
большое спасибо за вашу помощь. Знаете ли вы, почему CWnd::OnKeyDown() работала, а pWnd-›OnKeyDown() — нет? - person user686027; 04.04.2011