2017-01-10 7 views
-1

사용자가 암호 텍스트 필드를 클릭하면 알림을 받고 싶습니다. enter image description here 하지만 암호 텍스트 필드를 클릭 할 때, 다음과 같은 기능은 한 번 이상 호출됩니다 내 창이 수신되는 이유 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 ++를 시도했지만 spy ++ caputure가 제어 메시지를 편집하는 것으로 표시되지만 EN_SETFOCUS은 메시지가 아니며 편집 제어 알림입니다.

+0

질문에 대한 답변이 충분하지 않습니다. 디버깅을 위해 무엇을 시도 했습니까? Spy ++를 사용하여 메시지 스트림을 확인하고 실제로 여러 WM_SETFOCUS 메시지가 있는지 또는 코드가 여러 번 발생한다고 생각하게 만드는 다른 곳의 버그가 있는지 확인하십시오. –

+0

아니요 WM_SETFOCUS – firstaccount

+0

죄송합니다. EN_SETFOCUS 알림. Spy ++로 확인할 수도 있습니다. –

답변

-1

나는 혼자 대답을 얻었다. 편집 컨트롤이 포커스를 얻으면 EN_SETFOCUS를 계속 보내고 있습니다.