IViewObjectEx::QueryHitPoint 메서드(ocidl.h)
점이 개체의 지정된 측면 내에 있는지 여부를 나타냅니다.
구문
HRESULT QueryHitPoint(
[in] DWORD dwAspect,
[in] LPCRECT pRectBounds,
[in] POINT ptlLoc,
[in] LONG lCloseHint,
[out] DWORD *pHitResult
);
매개 변수
[in] dwAspect
요청된 그리기 측면입니다.
[in] pRectBounds
포함하는 창의 클라이언트 좌표에 있는 개체 경계 사각형입니다. 이 사각형은 컨테이너에서 계산되고 전달되므로 개체가 적중 위치를 의미 있는 해석할 수 있습니다.
[in] ptlLoc
포함된 창의 클라이언트 좌표에 있는 적중 위치입니다.
[in] lCloseHint
컨테이너가 닫힌 것으로 간주하는 HIMETRIC 단위의 제안된 거리입니다. 이 값은 힌트이며 개체는 고유한 방식으로 해석할 수 있습니다. 개체는 이 힌트를 사용하여 출력 해상도를 대략적으로 유추하여 적중 테스트 구현의 광대도를 선택할 수도 있습니다.
[out] pHitResult
HITRESULT 열거형 값으로 표현된 적중에 대한 반환된 정보에 대한 포인터입니다.
반환 값
이 메서드는 성공에 대한 S_OK 반환합니다. 다른 가능한 반환 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
이 메서드는 요청된 측면에 대해 구현되지 않습니다. 대신 DVASPECT_CONTENT 사용합니다. |
설명
직사각형이 아닌 개체에 대한 적중 감지를 지원하려면 컨테이너에서 개체에 지정된 위치가 그리기 측면 중 하나 내에 있는지 여부를 묻는 신뢰할 수 있는 방법이 필요합니다. 이 함수는 IViewObjectEx::QueryHitPoint에서 제공합니다.
가능한 반환 값은 다음과 같습니다.
- 외부, 투명 영역
- 적중으로 간주될 만큼 닫기(작거나 얇은 개체에서 사용할 수 있음)
- 히트
개체가 지원하는 그리기 측면에 대해 IViewObjectEx::QueryHitPoint를 호출할 수 있습니다. 요청된 그리기 측면에서 지원되지 않는 경우 실패해야 합니다.
투명 개체는 개체 내에서 클릭이 정확히 발생하는 위치에 따라 사용자가 투명 개체 또는 그 뒤에 있는 개체를 선택할 수 있는 복잡한 적중 감지 메커니즘을 구현하려고 할 수 있습니다. 예를 들어 충분히 큰 텍스트를 표시하는 투명한 텍스트 상자를 사용하면 사용자가 문자 사이를 클릭할 때 뒤에 있는 개체(예: 비트맵)를 선택할 수 있습니다. 이러한 이유로 IViewObjectEx::QueryHitPoint 에서 반환되는 정보에는 적중이 불투명하거나 투명한 지역에서 발생하는지 여부에 대한 표시가 포함됩니다.
직사각형이 아닌 투명 적중 감지의 예는 개체가 뒤에 있는 투명한 원 컨트롤입니다(아래 예제의 줄).
표시된 값은 원에 대한 적중 테스트를 위한 값입니다. 회색 영역은 컨트롤의 일부가 아니지만 가까이 있는 것으로 간주되는 이미지 주변 영역을 나타내기 위해 여기에 표시됩니다. 각 개체는 close에 대한 고유한 정의를 구현하지만 컨테이너에서 제공하는 힌트에 의해 지원되므로 이미지가 더 크거나 작게 확대/축소될 때 근접성을 조정할 수 있습니다.
위의 그림에서 적중, 닫기 및 투명으로 표시된 포인트는 모두 투명으로 표시된 점(하지만 선의 경우 닫기)을 제외하고 원에서 다양한 강도의 적중이 됩니다. 이것은 안타의 다른 강도의 효과를 보여줍니다. 선 클레임이 닫힌 동안 원은 투명하게 응답하고 투명은 닫기보다 약하기 때문에 선이 적중합니다.
구현자에 대한 참고 사항
적어도 DVASPECT_CONTENT 측면에 대해 이 메서드를 구현하려면 IViewObjectEx를 지원하는 개체가 필요합니다. 개체는 정보를 반환하는 것 외에 이 메서드에 대한 응답으로 다른 작업을 수행해서는 안 됩니다. 부작용이 없어야 합니다.요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ocidl.h |