다음을 통해 공유


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
S_OK
마우스 포인터가 성공적으로 설정되었습니다.
S_FALSE
개체가 커서를 설정하지 않았습니다. 컨테이너는 커서를 설정하거나 fSetAlways 매개 변수를 TRUE로 설정하여 개체를 다시 호출해야 합니다.

설명

컨테이너는 IPointerInactive::GetActivationPolicy 메서드를 호출하여 개체의 활성화 정책을 확인한 후 비활성 개체 위에 마우스 포인터를 설정하기 위해 이 메서드를 호출합니다. 개체가 해당 호출을 통해 현재 위치에서 활성화되도록 요청하지 않은 경우 컨테이너는 마우스 포인터가 개체 위에 유지되는 한 OnInactiveSetCursor 를 호출하여 후속 WM_SETCURSOR 메시지를 비활성 개체로 디스패치합니다.

반올림 오류를 방지하고 개체 구현자에서 작업을 더 쉽게 하기 위해 이 메서드는 포함된 클라이언트 창의 단위, 즉 일반적인 HIMETRIC 단위 대신 개체가 표시되는 창에서 창 좌표를 사용합니다. 따라서 개체가 활성 상태이고 비활성 상태일 때 동일한 좌표와 코드 경로를 사용할 수 있습니다. 창 좌표는 마우스 위치를 지정합니다. 경계 사각형도 동일한 좌표계에 지정됩니다.

OnInactiveSetCursor 는 개체가 커서를 설정해야 하는지 여부를 나타내는 추가 매개 변수 fSetAlways를 사용합니다. 컨테이너는 먼저 이 매개 변수 FALSE를 사용하여 이 메서드를 호출해야 합니다. 개체는 커서를 설정하지 않았음을 나타내기 위해 S_FALSE 반환할 수 있습니다. 이 경우 컨테이너는 커서 자체를 설정하거나, 이 작업을 수행하지 않으려면 fSetAlwaysTRUEOnInactiveSetCursor 메서드를 다시 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ocidl.h

추가 정보

IPointerInactive