는 내가 WM_MOUSEMOVE의 WinProc에서 메시지 처리 빈 창을 만들기 위해 노력하고 있어요 : 내가 IE에서 hyberlink를 가져 수 있기를 바랍니다한 창에서 다른 창으로 mousemove 이벤트를 시뮬레이트하는 방법은 무엇입니까?
case WM_MOUSEMOVE:
{
HWND otherHwnd = HWND(0x000608FC);
POINT pt = {LOWORD(lParam), HIWORD(lParam)};
ClientToScreen(otherHwnd, &pt);
PostMessage(otherHwnd, WM_TIMER, WPARAM(4096), 0);
PostMessage(otherHwnd, message, wParam, lParam);
SendMessage(otherHwnd, WM_NCHITTEST, NULL, (LPARAM)MAKELONG(pt.x, pt.y));
SendMessage(otherHwnd, WM_NCHITTEST, NULL, (LPARAM)MAKELONG(pt.x, pt.y));
SendMessage(otherHwnd, WM_NCHITTEST, NULL, (LPARAM)MAKELONG(pt.x, pt.y));
SendMessage(otherHwnd, WM_SETCURSOR, WPARAM(otherHwnd), (LPARAM)MAKELONG(HTCLIENT, WM_MOUSEMOVE));
break;
}
,하지만 결과는 매우에 호버 스타일로 보여 할 것을 hyberlink입니다 짧은 시간, 정상으로 돌아온 다음 다시 공중에 올랐다가 정상적으로 움직입니다. www.amazon.com에서 링크 ("오늘의 거래")를 가리 키도록 시뮬레이트하면 링크가 깜박입니다.
나는 더 좋은 방법이 있다고 생각한다. 심지어 IE 윈도우도 다른 윈도우로 덮여있다. IE가 mouseevent와 동작 할 수있다. 최상의 솔루션을 기다리고 있습니다 ~ orz
위의 링크는 실제로 링크를 가리키면 spy ++ 로그입니다. 는 및 시뮬레이션은 코드 아무 문제가 없습니다 실제 메시지
<01277> 000608FC S WM_SETCURSOR hwnd:000608FC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<01278> 000608FC R WM_SETCURSOR fHaltProcessing:False
<01279> 000608FC P WM_MOUSEMOVE fwKeys:0000 xPos:406 yPos:50
<01280> 000608FC P WM_TIMER wTimerID:4096 tmprc:00000000
<01281> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01282> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01283> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01284> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01285> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01286> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01287> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01288> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01289> 000608FC S WM_SETCURSOR hwnd:000608FC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<01290> 000608FC R WM_SETCURSOR fHaltProcessing:False
<01291> 000608FC P WM_MOUSEMOVE fwKeys:0000 xPos:406 yPos:50
<01292> 000608FC P WM_TIMER wTimerID:4096 tmprc:00000000
<01293> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01294> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01295> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01296> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01297> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01298> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01299> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01300> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01301> 000608FC S WM_SETCURSOR hwnd:000608FC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<01302> 000608FC R WM_SETCURSOR fHaltProcessing:False
<01303> 000608FC P WM_MOUSEMOVE fwKeys:0000 xPos:406 yPos:50
<01304> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01305> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01306> 000608FC P WM_TIMER wTimerID:4096 tmprc:00000000
<01307> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01308> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01309> 000608FC S WM_NCHITTEST xPos:520 yPos:283
<01310> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
<01311> 000608FC S WM_NCHITTEST xPos:521 yPos:281
<01312> 000608FC R WM_NCHITTEST nHittest:HTCLIENT
spy ++를 사용하는 다른 메시지를 볼 수 없습니다. 그리고 웹 브라우저의 그림을 캡처하여 빈 창에 표시하려고합니다. 찍은 사진을 통해 보내진 메시지가 여전히 불안정한 호버를 만듭니다. 빈 창과 웹 브라우저 창을 같은 위치에 놓습니다. – Gohan