Тема: перехват WM_CHAR в диалог. окне

Создаю диалоговое окно, наследуя от CAdUiBaseDialog, в нем EditControl, каким образом перехватить WM_CHAR, посланные этому EditControl, подскажите, пожалуйста.

Re: перехват WM_CHAR в диалог. окне

> ciril
Или вместо CEdit использовать производный класс или субклассировать EditControl и использовать свою функцию обработки очереди сообщений.

Re: перехват WM_CHAR в диалог. окне

Я прошу прощения, можно подробней "вместо CEdit использовать производный класс или субклассировать EditControl".

Re: перехват WM_CHAR в диалог. окне

Можно сделать такой вариант:
1. В класс диалога добавь метод

afx_msg void OnChangeEdit();

2. В список сообщений

BEGIN_MESSAGE_MAP(CMytDlg, CDialog)
    ON_EN_CHANGE(IDC_EDIT, OnChangeEdit)
END_MESSAGE_MAP()

3. Реакция на сообщение

void CMyDlg::OnChangeEdit()
{
    CString str;
    GetDlgItemText(IDC_EDIT1, str);
    TRACE(str+"\n");
}

Таким образом ты можеш перехватывать изменения содеримого в поле ввода.

Re: перехват WM_CHAR в диалог. окне

Видимо я неправильно спросил. На ассемб. это просто: в процедуре обработки сообщений на сообщение WM_CHAR вставлен мой код (аналог тезауруса MS Word), в MFC родительское окно просто не получает этого сообщения, а как их перехватывать и подавлять ввод - непонятно. DDX_text в DoDataExchange также позволяет отследить, но не подавить вывод. Мне нужно не просто перехватывать WM_CHAR, при этом заменять вводимые символы.

Re: перехват WM_CHAR в диалог. окне

Спасибо, вопрос снят: SetDlgItemText.