서브클래싱 작업을 하고 있습니다.
아래처럼 코딩하였는데, 마우스클릭이나 Move 이벤트에서는 스크린 좌표가 정상적으로 들어오는데,
WM_MOUSEWHEEL 에서는 값이 이상하게 들어옵니다.
어떻게 해줘야 WM_MOUSEWHEEL 이벤트에서도 정상적인 스크린 좌표를 얻을수 있는지 도움 부탁드립니다.
(해당 패널의 좌표값이 아니라, 모니터 전체 영역에서의 좌표값이 들어오는것 같습니다.)
감사합니다.
//---------------------------------------------------------------------------
void __fastcall TForm1::NewProc(Messages::TMessage &Message)
{
Message.Result = WindowProc(Message.Msg, Message.WParam, Message.LParam);
OriginalProc(Message);
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
int nCurX, nCurY;
switch(uMsg)
{
case WM_MOUSEWHEEL: // 스크린 좌표(nCurX, nCurY) 이상한 값이 들어옵니다.
nCurX = LOWORD(lParam);
nCurY = HIWORD(lParam);
break;
case WM_MOUSEMOVE: // 스크린 좌표(nCurX, nCurY) 정상적으로 읽힙니다.
nCurX = LOWORD(lParam);
nCurY = HIWORD(lParam);
break;
default:
return FALSE;
}
return TRUE;
}
//---------------------------------------------------------------------------
|