나는 특히 WPF 응용 프로그램에서 터치 패드의 가로 스크롤을 처리하는 방법을 알고있는 기사를 작성했습니다. 즉 우리는 우리의 WPF 창에서 WM_MOUSEHWHEEL
메시지를 가져 오기 위해 필요 Support Horizontal Scrolling of TouchPad in WPF Application - walterlv
입니다. 예! 마우스 휠 메시지. 이전에 수직 데이터를 가져 왔지만 이제 수평 데이터를 가져옵니다.
처음에는 창 메시지를 연결해야합니다.
protected override void OnSourceInitialized(EventArgs e)
{
var source = PresentationSource.FromVisual(_board);
((HwndSource) source)?.AddHook(Hook);
}
private IntPtr Hook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
// Handle window message here.
return IntPtr.Zero;
}
다음, WM_MOUSEHWHEEL
을 처리 :
const int WM_MOUSEHWHEEL = 0x020E;
private IntPtr Hook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
switch (msg)
{
case WM_MOUSEHWHEEL:
int tilt = (short) HIWORD(wParam);
OnMouseTilt(tilt);
return (IntPtr) 1;
}
return IntPtr.Zero;
}
/// <summary>
/// Gets high bits values of the pointer.
/// </summary>
private static int HIWORD(IntPtr ptr)
{
var val32 = ptr.ToInt32();
return ((val32 >> 16) & 0xFFFF);
}
/// <summary>
/// Gets low bits values of the pointer.
/// </summary>
private static int LOWORD(IntPtr ptr)
{
var val32 = ptr.ToInt32();
return (val32 & 0xFFFF);
}
private void OnMouseTilt(int tilt)
{
// Write your horizontal handling codes here.
}
당신은 OnMouseTilt
방법에 가로 스크롤 코드를 작성할 수 있습니다.
더 일반적인 클래스에서 위 코드를 모두 팩하고 MouseWheel
이벤트 발생시와 마찬가지로 MouseTilt
이벤트를 발생시킬 수 있습니다.