GESTURECONFIG 구조 와 CGesture Config 클래스

9269 단어 WindowsTouch
CGesture Config 클래스 는 GESTURECONFIG 구조 체 에 대한 패키지 입 니 다. CObject 클래스 에서 파생 된 것 은 조작 과정 을 간소화 하고 더욱 편리 하 게 사용 하기 위해 서 입 니 다. 상세 한 내용 은 뒤의 GESTURECONFIG 설명 을 참고 하 십시오. 구체 적 인 코드 는 다음 과 같 습 니 다.
/// 
/// CGestureConfig class allows to customize Windows gesture features such as zoom, pan or rotate. This class is used in CWnd::SetGestureConfig and CWnd::GetGestureConfig methods.
class CGestureConfig : public CObject
{
	friend class CWnd;

public:
	/// 
	/// CGestureConfig constructor
	CGestureConfig();

	/// 
	/// CGestureConfig destructor
	virtual ~CGestureConfig();

	/// 
	/// Enable/disable gesture zoom
	/// TRUE - enable the feature. FALSE - disable it
	void EnableZoom(BOOL bEnable = TRUE);

	/// 
	/// Enable/disable gesture rotate
	/// TRUE - enable the feature. FALSE - disable it
	void EnableRotate(BOOL bEnable = TRUE);

	/// 
	/// Enable/disable gesture 2 finger tap
	/// TRUE - enable the feature. FALSE - disable it
	void EnableTwoFingerTap(BOOL bEnable = TRUE);

	/// 
	/// Enable/disable gesture press and tap
	/// TRUE - enable the feature. FALSE - disable it
	void EnablePressAndTap(BOOL bEnable = TRUE);

	/// 
	/// Enable/disable gesture pan
	/// TRUE - enable the feature. FALSE - disable it
	/// Gesture pan flags. Can be either GC_PAN (all pan gestures) or combination of the following flags: GC_PAN_WITH_SINGLE_FINGER_VERTICALLY, GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY, GC_PAN_WITH_GUTTER and GC_PAN_WITH_INTERTIA
	void EnablePan(BOOL bEnable = TRUE, DWORD dwFlags = GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA);

	/// 
	/// Determines whether the gesture zoom feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsZoomEnabled() const { return (Get(GID_ZOOM) & GC_ZOOM) == GC_ZOOM; }

	/// 
	/// Determines whether the gesture rotate feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsRotateEnabled() const { return (Get(GID_ROTATE) & GC_ROTATE) == GC_ROTATE; }

	/// 
	/// Determines whether the gesture 2 finger tap feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsTwoFingerTapEnabled() const { return (Get(GID_TWOFINGERTAP) & GC_TWOFINGERTAP) == GC_TWOFINGERTAP; }

#if defined(GID_PRESSANDTAP) && defined(GC_PRESSANDTAP)
	/// 
	/// Determines whether the gesture "press and tap" feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsPressAndTapEnabled() const { return (Get(GID_PRESSANDTAP) & GC_PRESSANDTAP) == GC_PRESSANDTAP; }
#endif

	/// 
	/// Determines whether the gesture pan feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsPanAllEnabled() const { return (Get(GID_PAN) & GC_PAN) == GC_PAN; }

	/// 
	/// Determines whether the gesture pan vertical feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsPanVerticalEnabled() const { return (Get(GID_PAN) & GC_PAN_WITH_SINGLE_FINGER_VERTICALLY) == GC_PAN_WITH_SINGLE_FINGER_VERTICALLY; }

	/// 
	/// Determines whether the gesture pan horizontal feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsPanHorizontalEnabled() const { return (Get(GID_PAN) & GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY) == GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY; }

	/// 
	/// Determines whether the gesture pan with gutter feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsPanWithGutterEnabled() const { return (Get(GID_PAN) & GC_PAN_WITH_GUTTER) == GC_PAN_WITH_GUTTER; }

	/// 
	/// Determines whether the gesture pan with inertia feature is enabled
	///  
	/// TRUE if the feature is enabled; otherwise FALSE.
	BOOL IsPanWithInertiaEnabled() const { return (Get(GID_PAN) & GC_PAN_WITH_INERTIA) == GC_PAN_WITH_INERTIA; }

	/// 
	/// Modify specific gesture touch paramaters
	///  
	/// TRUE if succeeds; otherwise FALSE.
	/// Gesture feature ID. Can be one of the following: GID_ZOOM, GID_PAN, GID_ROTATE, GID_TWOFINGERTAP or GID_PRESSANDTAP
	/// Gesture features to enable. Can be 0 or GC_ALLGESTURES for all features except GID_PAN and GC_PAN or combination of the following flags: GC_PAN_WITH_SINGLE_FINGER_VERTICALLY, GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY, GC_PAN_WITH_GUTTER and GC_PAN_WITH_INTERTIA for gesture pan
	BOOL Modify(DWORD dwID, DWORD dwWant = GC_ALLGESTURES, DWORD dwBlock = 0);

	/// 
	/// Obtains a specific gesture touch paramaters
	///  
	/// Gesture features. Can be 0 or GC_ALLGESTURES for all features except GID_PAN and GC_PAN or combination of the following flags: GC_PAN_WITH_SINGLE_FINGER_VERTICALLY, GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY, GC_PAN_WITH_GUTTER and GC_PAN_WITH_INTERTIA for gesture pan
	/// Gesture feature ID. Can be one of the following: GID_ZOOM, GID_PAN, GID_ROTATE, GID_TWOFINGERTAP or GID_PRESSANDTAP
	/// TRUE - the method returns the enabled features; FALSE - disabled
	DWORD Get(DWORD dwID, BOOL bWant = TRUE) const;

#ifdef _DEBUG
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:
	PGESTURECONFIG m_pConfigs;
	int	m_nConfigs;
};

다음은 GESTURECONFIG 에 대한 상세 한 설명 입 니 다.
필세 메 시 지 를 사용 할 설정 과 이 설정 의 종 류 를 가 져 오고 설정 합 니 다.
문법
typedef struct _GESTURECONFIG {
  DWORD dwID;
  DWORD dwWant;
  DWORD dwBlock;
} GESTURECONFIG, *PGESTURECONFIG;

구성원
dwID
메시지 설정 형식의 식별 자 를 사용 하거나 사용 하지 않 습 니 다.더 많은 정보 에 대해 서 는 "비고" 를 참조 하 시기 바 랍 니 다.
dwWant
사용 할 메시지 입 니 다.
dwBlock
사용 하지 않 을 메시지 입 니 다.
코 멘 트
두 손가락 을 평평 하 게 이동 시 키 지 않 고 한 손가락 을 평평 하 게 이동 시 킬 수 없습니다.먼저 GCPAN 에 필요 한 위 치 를 설정 해 야 GCPAN_WITH_SINGLE_FINGER_HORIZONTALLY 또는 GCPAN_WITH_SINGLE_FINGER_VERTICALLY 에서 설정 합 니 다.
하면, 만약, 만약... SetGestureConfig 지연 을 사용 하지 않 으 려 면 GFEND 로고 의 GIDPAN 메시지 에는 지연 벡터 가 포 함 됩 니 다.
이 구 조 를 전달 할 때 dwID 구성원 들 은 필세 에 관 한 정 보 를 포함 할 것 이다.이것 은 다른 표지 의 의 미 를 확정 할 것 이다.메 시 지 를 이동 하기 위해 표 지 를 설정 하면 이 표 지 는 회전 메 시 지 를 위 한 표지 와 다 를 것 입 니 다.
아래 표 지시 GESTURECONFIG 구조 적 dwID 구성원 이 지원 하 는 필세 의 각종 식별 자.하면, 만약, 만약... dwID 0 으로 설정 하면 전역 필세 설정 표 지 를 표시 합 니 다.
명칭.
값.
설명 하 다.
GID_ZOOM
3
필세 크기 조정 설정 을 표시 합 니 다.
GID_PAN
4
지시 평이 필세.
GID_ROTATE
5
지시 회전 필세.
GID_TWOFINGERTAP
6
두 손가락 으로 필세 클릭 을 지시 하 다.
GID_PRESSANDTAP
7
지 시 는 펜 세 를 누 르 고 클릭 합 니 다.
 
... 해 야 한다 dwID 0 으로 설정 할 때 아래 표 지 를 사용 합 니 다.
명칭.
값.
설명 하 다.
GC_ALLGESTURES
0x00000001
모든 필 세 를 지시 하 다.
 
... 해 야 한다 dwID GID 로 설정ZOOM 시 아래 표 지 를 사용 합 니 다.
명칭.
값.
설명 하 다.
GC_ZOOM
0x00000001
글자 크기 조정 을 지시 합 니 다.
 
... 해 야 한다 dwID GID 로 설정PAN 시 아래 표 지 를 사용 합 니 다.
명칭.
값.
설명 하 다.
GC_PAN
0x00000001
모든 평이 한 필세 를 지시 하 다.
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY
0x00000002
지시 단 지 는 수직 으로 이동 하 는 것 을 가리킨다.
GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY
0x00000004
지시
GC_PAN_WITH_GUTTER
0x00000008
수직 이동 을 주 방향 으로 제한 하여 특정한 한도 값 에 도달 하여 슬롯 을 돌파 할 때 까지 한다.
GC_PAN_WITH_INERTIA
0x00000010
평이 한 필세 가 멈 출 때 부 드 럽 게 천천히 멈 출 수 있 도록 시간 지연 이 있 는 평 이 를 표시 합 니 다.
 
주의 하 다.   ... 에 있다 SetGestureConfig 설정 GIDPAN 플래그 는 이동 을 위 한 기본 필세 처리 프로그램 에 영향 을 줍 니 다.같은 플래그 에 dwWant 와 dwBlock 을 동시에 설정 해 서 는 안 됩 니 다.이것 은 의외 의 행 위 를 초래 할 것 이다.평이 와 구 판 평이 지원 에 대한 더 많은 정 보 는 참고 하 시기 바 랍 니 다 Windows Touch 필세;필세 사용 및 저지 에 관 한 예 시 는 참고 하 시기 바 랍 니 다. SetGestureConfig。
... 해 야 한다 dwID GID 로 설정ROTATE 시 아래 표 지 를 사용 합 니 다.
명칭.
값.
설명 하 다.
GC_ROTATE
0x00000001
지시 회전 필세.
 
... 해 야 한다 dwID GID 로 설정TWOFING ERTAP 시 아래 표 지 를 사용 합 니 다.
명칭.
값.
설명 하 다.
GC_TWOFINGERTAP
0x00000001
두 손가락 으로 필세 클릭 을 지시 하 다.
 
... 해 야 한다 dwID GID 로 설정PRESSANDTAP 시 아래 표 지 를 사용 합 니 다.
명칭.
값.
설명 하 다.
GC_PRESSANDTAP
0x00000001
지 시 는 펜 세 를 누 르 고 클릭 합 니 다.
 
예시
    GESTURECONFIG gc[3];    
    UINT uiGcs = 3;

    ZeroMemory(&gc, sizeof(gc));
    gc[0].dwID  = GID_ZOOM;
    gc[1].dwID  = GID_ROTATE;
    gc[2].dwID  = GID_PAN;
    BOOL bResult = GetGestureConfig(hWnd, 0, 0, &uiGcs, gc, sizeof(GESTURECONFIG));        
    if (!bResult){                
        DWORD err = GetLastError();                                       
    }    


요구 하 다.
최소 지원 클 라 이언 트
Windows 7
최소 지원 서버
Windows Server 2008 R2
표두
Winuser. h (Windows. h 포함)

좋은 웹페이지 즐겨찾기