IPointerInactive::OnInactiveSetCursor 메서드(ocidl.h)
비활성 개체의 마우스 포인터를 설정합니다. 이 메서드는 비활성 개체가 마우스 포인터 아래에 있을 때 WM_SETCURSOR 메서드를 수신할 때 컨테이너에서 호출됩니다.
구문
HRESULT OnInactiveSetCursor(
[in] LPCRECT pRectBounds,
[in] LONG x,
[in] LONG y,
[in] DWORD dwMouseMsg,
[in] BOOL fSetAlways
);
매개 변수
[in] pRectBounds
포함하는 창의 클라이언트 좌표 단위에 지정된 개체 경계 사각형입니다. 이 매개 변수는 WM_SETCURSOR 메시지가 수신되었을 때 개체에 화면의 정확한 위치와 크기를 알려줍니다. 이 값은 클라이언트의 좌표계 단위로 지정됩니다.
[in] x
마우스 위치의 가로 좌표(클라이언트의 포함 창 단위)입니다.
[in] y
마우스 위치의 세로 좌표(클라이언트의 포함 창 단위)입니다.
[in] dwMouseMsg
WM_SETCURSOR 발생한 마우스 메시지의 식별자입니다.
[in] fSetAlways
이 값이 TRUE이면 개체가 커서를 설정해야 합니다. 이 값이 FALSE이면 개체는 커서를 설정할 의무가 없으며 이 경우 S_FALSE 반환해야 합니다.
반환 값
이 메서드는 다음 값뿐만 아니라 E_FAIL 표준 반환 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
마우스 포인터가 성공적으로 설정되었습니다. |
|
개체가 커서를 설정하지 않았습니다. 컨테이너는 커서를 설정하거나 fSetAlways 매개 변수를 TRUE로 설정하여 개체를 다시 호출해야 합니다. |
설명
컨테이너는 IPointerInactive::GetActivationPolicy 메서드를 호출하여 개체의 활성화 정책을 확인한 후 비활성 개체 위에 마우스 포인터를 설정하기 위해 이 메서드를 호출합니다. 개체가 해당 호출을 통해 현재 위치에서 활성화되도록 요청하지 않은 경우 컨테이너는 마우스 포인터가 개체 위에 유지되는 한 OnInactiveSetCursor 를 호출하여 후속 WM_SETCURSOR 메시지를 비활성 개체로 디스패치합니다.
반올림 오류를 방지하고 개체 구현자에서 작업을 더 쉽게 하기 위해 이 메서드는 포함된 클라이언트 창의 단위, 즉 일반적인 HIMETRIC 단위 대신 개체가 표시되는 창에서 창 좌표를 사용합니다. 따라서 개체가 활성 상태이고 비활성 상태일 때 동일한 좌표와 코드 경로를 사용할 수 있습니다. 창 좌표는 마우스 위치를 지정합니다. 경계 사각형도 동일한 좌표계에 지정됩니다.
OnInactiveSetCursor 는 개체가 커서를 설정해야 하는지 여부를 나타내는 추가 매개 변수 fSetAlways를 사용합니다. 컨테이너는 먼저 이 매개 변수 FALSE를 사용하여 이 메서드를 호출해야 합니다. 개체는 커서를 설정하지 않았음을 나타내기 위해 S_FALSE 반환할 수 있습니다. 이 경우 컨테이너는 커서 자체를 설정하거나, 이 작업을 수행하지 않으려면 fSetAlways가 TRUE인 OnInactiveSetCursor 메서드를 다시 호출해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ocidl.h |