다음을 통해 공유


COleControl::GetActivationPolicy

기본 활성화 동작을 지 원하는 컨트롤의 변경 된 IPointerInactive 인터페이스.

virtual DWORD GetActivationPolicy( );

반환 값

플래그의 조합 된 POINTERINACTIVE 열거형입니다.가능한 플래그는 다음과 같습니다.

  • POINTERINACTIVE_ACTIVATEONENTRY
    개체 위치에서 마우스 이동 작업 중에 마우스를 가져갈 때 활성화 해야 합니다.

  • POINTERINACTIVE_DEACTIVATEONLEAVE
    마우스가 마우스 이동 작업 중 개체에서 벗어날 때 개체를 비활성화 해야 합니다.

  • POINTERINACTIVE_ACTIVATEONDRAG
    개체 위치에서 마우스를 끌어서 동안 끌 때 활성화 고 작업을 삭제 해야 합니다.

설명

경우는 IPointerInactive 인터페이스를 사용 하면 컨테이너에 위임 하 게 WM_SETCURSORWM_MOUSEMOVE 메시지를.COleControl이 인터페이스의 구현을 조정 마우스를 적절 하 게 조정 된 후 이러한 컨트롤의 메시지 맵을 통해이 메시지 발송 됩니다.

컨테이너를 받을 때마다는 WM_SETCURSOR 또는 WM_MOUSEMOVE 메시지를 지 원하는 비활성 개체 위에 마우스 포인터를 IPointerInactive, 메서드를 호출 해야 GetActivationPolicy 인터페이스 및 반환 플래그는 POINTERINACTIVE 열거.

메시지 맵에 해당 엔트리를 추가 하 여 이러한 메시지를 보통의 창 메시지 처럼 처리할 수 있습니다.처리기에서 사용 하지 마십시오.을 m_hWnd 멤버 변수를 사용 하는 모든 멤버 함수 없이 첫 번째 아닌 해당 값을 확인-NULL.

모든 개체를 위한 이상 마우스 커서를 설정 하거나 마우스 이동 이벤트는 발생 하지 같은 특수 한 시각적 피드백을 제공 반환 해야는 POINTERINACTIVE_ACTIVATEONENTRY 플래그 및 활성 때 피드백을 그립니다.이 플래그는 개체를 반환 하는 경우 컨테이너 내부 즉시 활성화 하 고 다음 호출을 발생 시킨 동일한 메시지를 전달 해야 GetActivationPolicy.

두 경우의 POINTERINACTIVE_ACTIVATEONENTRYPOINTERINACTIVE_DEACTIVATEONLEAVE 플래그 반환 된 후 마우스를 개체 위에 있을 때 개체에만 활성화 됩니다.경우는 POINTERINACTIVE_ACTIVATEONENTRY 플래그를 반환 하 고 개체 마우스 개체를 처음 입력할 때 한 번만 활성화할 수 있습니다.

비활성 컨트롤의 대상으로 OLE 끌어서 놓기 작업을 할 수도 있습니다.이 컨트롤의 창이 끌어 놓기 대상으로 등록할 수 있도록 사용자가 개체 위로 끌 순간 컨트롤을 활성화 해야 합니다.마우스를 끄는 동안에 발생 하는 활성화 하려면 반환 된 POINTERINACTIVE_ACTIVATEONDRAG 플래그:

DWORD CMyAxCtrl::GetActivationPolicy()
{
    return POINTERINACTIVE_ACTIVATEONDRAG;
}

정보를 전달 하 여 GetActivationPolicy 컨테이너에서 캐시할 수 없습니다.대신 비활성 개체는 마우스 입력 때마다이 메서드를 호출 해야 합니다.

비활성 개체 위치에 마우스 들어가면 활성화 되도록 요청 하지 않는 경우 컨테이너 이후 발송 해야 WM_SETCURSOR 메시지를 호출 하 여이 개체를 OnInactiveSetCursor 으로 개체 위에 마우스 포인터를 유지 합니다.

활성화는 IPointerInactive 인터페이스 일반적으로 즉, 원하는 컨트롤을 항상 마우스 메시지를 처리할 수 있습니다.이 동작을 지원 하지 않는 컨테이너에서 얻을 수는 IPointerInactive 인터페이스를 해야 볼 때 항상 활성화 해당 컨트롤이 있어야 합니다의 OLEMISC_ACTIVATEWHENVISIBLE 플래그 중의 기타 플래그.그러나이 플래그를 방지 하기 위해 가져오기 컨테이너에서 지원 하지 IPointerInactive을 지정할 수도 있습니다는 OLEMISC_IGNOREACTIVATEWHENVISIBLE 플래그:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

요구 사항

헤더: afxctl.h

참고 항목

참조

COleControl 클래스

계층 구조 차트

COleControl::OnInactiveSetCursor

COleControl::OnInactiveMouseMove