Я хочу получать уведомление, когда пользователь нажимает текстовое поле пароля. Но когда я щелкните текстовое поле для ввода пароля, следующая функция вызывается несколько раз:Почему мои окна получают en_setfocus 12 раз
void CUserDlg::OnSetfocusPasswordEdit()
{
// TODO: Add your control notification handler code here
cout << "focus on password text field";
}
Почему это происходит? Я также попытался:
LRESULT CFakeUserDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch (message)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_PASSWORD_EDIT:
if (HIWORD(wParam) == EN_SETFOCUS)
{
cout << "";
}
cout << "";
break;
}
.
.
.
Это также происходит много раз, когда я нажимаю текстовое поле только один раз.
Я просто пытался шпионить ++, но он показывает, что spy ++ caputure редактирует управляющие сообщения, но EN_SETFOCUS
- это не сообщение, это уведомление об управлении редактированием.
Здесь не достаточно информации, чтобы ответить на ваш вопрос. Что вы пробовали, чтобы отладить его? Используете ли вы Spy ++ для проверки потока сообщений и смотрите, есть ли на самом деле несколько сообщений WM_SETFOCUS, или, может быть, у вас есть ошибка где-то еще, что заставляет код думать, что это происходит несколько раз. –
Не WM_SETFOCUS – firstaccount
Справа, извините. Уведомления EN_SETFOCUS, которые вы также можете проверить со Spy ++. –