PreTranslateMessage()를 처리할 때 간과하는 것이 KEY_DOWN, KEY_UP에 대한 처리를 무시하는 것이다.
실제로 아래와 같은방식으로 처리하게 되면 함수 호출이 두번 수행되게 된다.
if( pMsg->wParam == VK_RETURN )
{
OnClickedButton();
return TRUE;
}
따라서, 아래처럼 KEY_DOWN, KEY_UP에 대한 처리를 한 후에 입력 키값을 비교해야 한다.
if ( pMsg->message == WM_KEYDOWN )
{
if( pMsg->wParam == VK_RETURN )
{
OnClickedButton();
return TRUE;
}
}