DirectX タッチ入力を追加する

DirectXの勉強中です。Visual Studio が自動で作成するDirectXのコードに、タッチ入力を追加します。

ヘッダーファイル(タッチ入力用の例)

#pragma once
ref class TouchInput sealed
{
public:
	TouchInput();
internal:
	void OnPointerPressed(
		_In_ Windows::UI::Core::CoreWindow^ sender,
		_In_ Windows::UI::Core::PointerEventArgs^ args
		);
	void Initialize(_In_ Windows::UI::Core::CoreWindow^ window);
};

本体

#include "pch.h"

#include 
#include "TouchInput.h"


using namespace Windows::UI::Core;
using namespace Windows::UI::Input;
using namespace Windows::System;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::Devices::Input;


TouchInput::TouchInput()
{
}

void TouchInput::Initialize(_In_ CoreWindow^ window)
{
	window->PointerPressed +=
		ref new TypedEventHandler(this, &TouchInput::OnPointerPressed);
}
void TouchInput::OnPointerPressed(
	_In_ Windows::UI::Core::CoreWindow^ sender,
	_In_ Windows::UI::Core::PointerEventArgs^ args
	){
	// 左上からの座標 左上が原点
	uint32 pointerID = args->CurrentPoint->PointerId;
	float PosX = args->CurrentPoint->Position.X;
	float PosY = args->CurrentPoint->Position.Y;

}

登録する

DeviceResource.hにTouchInput^ m_TouchInput;変数を付け加える。DeviceResource.cppのSetWindow(...)に次のコードを付け加える

	m_TouchInput = ref new TouchInput();
	m_TouchInput->Initialize(m_window.Get());

解説

ウインドウに付随するイベントハンドラーを登録して、それが呼び出されるように設定する。