Обработка фокуса в WTL
От: Xsyst  
Дата: 20.05.10 06:26
Оценка:
Привет!
Прошу заранее не пинать, если уже обсуждалось.
Совсем недавно начал использовать WTL, собственно вопрос в следующем: есть диалог, как в классе диалога обработать установку/потерю фокуса на контроле? Что нужно добавить в карту сообщений? В MFC wizard создает примерно следующий код: ON_EN_SETFOCUS(IDC_EDIT, &CMainDlg::OnEnSetfocusEdit). C WTL чего-то туплю.
Спасибо.
Re: Обработка фокуса в WTL
От: qwerty2006  
Дата: 20.05.10 06:48
Оценка:
Здравствуйте, Xsyst, Вы писали:

X>Привет!

X>Прошу заранее не пинать, если уже обсуждалось.
X>Совсем недавно начал использовать WTL, собственно вопрос в следующем: есть диалог, как в классе диалога обработать установку/потерю фокуса на контроле? Что нужно добавить в карту сообщений? В MFC wizard создает примерно следующий код: ON_EN_SETFOCUS(IDC_EDIT, &CMainDlg::OnEnSetfocusEdit). C WTL чего-то туплю.
X>Спасибо.

Если для эдита, то так
1. В карту сообщений добавить:

COMMAND_CODE_HANDLER_EX(EN_SETFOCUS, OnEnSetFocus)


или

COMMAND_HANDLER_EX(IDC_EDIT1, EN_SETFOCUS, OnEnSetFocus)



2.В класс диалога добавить:

void OnEnSetFocus(UINT notifyCode, int id, HWND wndCtl)

.

Для других контролов необх. использовать др. notifyCode (CBN_SETFOCUS, BN_SETFOCUS и т.п.)
Re[2]: Обработка фокуса в WTL
От: Xsyst  
Дата: 20.05.10 07:47
Оценка:
Здравствуйте, qwerty2006, Вы писали:

Q>Если для эдита, то так

Q>1. В карту сообщений добавить:

Q>
Q>COMMAND_CODE_HANDLER_EX(EN_SETFOCUS, OnEnSetFocus)
Q>


Q>или


Q>
Q>COMMAND_HANDLER_EX(IDC_EDIT1, EN_SETFOCUS, OnEnSetFocus)
Q>



Q>2.В класс диалога добавить:


Q>
Q>void OnEnSetFocus(UINT notifyCode, int id, HWND wndCtl)
Q>

Q>.

Q>Для других контролов необх. использовать др. notifyCode (CBN_SETFOCUS, BN_SETFOCUS и т.п.)


Вообщем понятно где ошибка была: я писал COMMAND_HANDLER(IDC_EDIT, WM_SETFOCUS, OnSetFocus), а надо было COMMAND_HANDLER(IDC_EDIT, EN_SETFOCUS, OnSetFocus). Спасибо за ответ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.