|
김시환 님이 쓰신 글 :
: 임의로 사용자가 마우스를 누르지 않아도 자동으로 클릭을 발생시키는
: 함수가 없나 해서 이렇게 올립니다.
:
: 좀 알려 주세요...
아래의 SendMessage API를 호출하면 됩니다.
LRESULT SendMessage(
HWND hWnd, // 메시시를 받을 윈도우의 윈도우 핸들(객체의 Handle 속성)
UINT Msg, // 메시지 번호
WPARAM wParam, // 가상키 상태 플래그 조합
LPARAM lParam // 마우스 메시지 발생 위치=> 하위 워드: X 상위워드:Y
);
마우스 메시지(번호):
왼쪽: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK
오른쪽: WM_RRTTONDOWN, WM_RBUTTONUP
가운데: WM_MBUTTONDOWN , WM_MBUTTONUP, WM_MBUTTONDBLCLK
기타: WM_MOUSEACTIVATE, WM_MOUSEMOVE, WM_MOUSEWHEEL
가상키:
MK_CONTROL, MK_LBUTTON, MK_MBUTTON ,MK_MBUTTON ,MK_RBUTTON, MK_SHIFT 등
예를 들어, Ctrl키와 Shift 키가 눌려진 상태에서, (20,30) 지점에서 마우스 왼쪽 단추가 클릭되었다고 Form2에 메시지를 보내려면 아래와 같이 하면 됩니다.
DWORD Pos=20;
Pos <<= 16;
Pos |= 30;
SendMessage(Form2->Handle, WM_LBUTTONDOWN, MK_CONTROL | MK_SHIFT , Pos);
끝.
|