Как CRichEditCtrl узнает, что была выполнена операция вставки?

У него есть такие методы, какCRichEditCtrl::Copy(), CRichEditCtrl::Paste() вы можете позвонить, но я не могу обнаружить никаких сообщений, отправляемых элементом управления Windowsвыполнять операция вставки. Кто-нибудь знает, существует ли такая вещь? Или делаетCRichEditCtrl сделать что-то более низкое, например, мониторинг событий WM_CHAR? Если да, могу ли я использовать какие-либо внутренние методы или мне просто нужно свернуть свои собственные, чтобы переопределить стандартную функциональность вставки?

Что я на самом деле хочу, это для моего пользовательского подкласса (CMyRichEditCtrl : CRichEditCtrl) игнорировать любое форматирование вставленного текстав к контролю. Либо получая данные буфера обмена в другом формате, либо вставляя их как обычно и немедленно удаляя форматирование вставленного текста.

Что я пробовал до сих пор:

Проверка сообщения на WM_PASTE вCMyRichEditCtrl::PreTranslateMessage()Создание методаvirtual void CMyRichEditCtrl::Paste()Установка точки останова наCRichEditCtrl::Paste() в afxcmn.inlдемпингкаждый сообщение проходит черезCMyRichEditCtrl::PreTranslateMessage()

Результаты:

1: сообщение WM_PASTE не обнаружено
2: это никогда не называется
3: это никогда не ударил ...как?
4:Контрольникогда получает любые WM_COMMAND, WM_PASTE или сообщения, связанные с фокусом. В основном только сообщения о перемещении мыши и нажатии клавиши.

Кажется, другие люди действительно сделали это успешно. Мне интересно, может ли моя версия MFC или что-то испортить, на данный момент.

Ответы на вопрос(5)

Ваш ответ на вопрос