マルチタッチ、面白そうなのでデバイスが安価で手に入るなら試してみようと思ったのですが
価格よりも置き場所の問題で購入できませんでした orz
マルチタッチ機能を使うプログラムを作成する場合は、トムさんがお察しの通り Windows SDK 7 が
必要ですが、Visual C++ 2010 Express Edition なら Visual C++ 2010 Express Edition を
インストールする際に一緒に Windows SDK 7 もインストールされるみたいですので、
Visual Studio 2008 でマルチタッチのプログラムを組むための環境を用意するより Visual C++ 2010 を
使用した方がお手軽かもしれません
今のところDXライブラリはマルチタッチに関する機能はありませんので、現時点でDXライブラリを
使いつつマルチタッチも、という場合は WM_TOUCHMOVE などのメッセージを処理する必要があります
マルチタッチ機能の使い方に関する解説は WM_TOUCH で検索するといくつか出てきますので、
探してみてください
基本的に WM_TOUCH 系のメッセージからマルチタッチに関する情報を得ることになりますが、
DXライブラリは WM_ 系のメッセージをライブラリ内部で処理してしまっています
なので、DXライブラリを使いつつウインドウに飛んでくるメッセージの一部を自前で
処理したい場合は、メッセージを処理する関数を SetHookWinProc 関数で登録します
こちらにDXライブラリを使いながらマウスクリックのウインドウメッセージが飛んできたら
画面に四角形を表示するプログラムを組んでみましたので
よろしければご覧になってみてください
#include "DxLib.h"
// マウスのボタンが押されたかどうかを記録するための変数
int MouseClick ;
// フック用ウインドウプロージャ
// WM_TOUCH 系の情報取得もここで行ってください
LRESULT CALLBACK WndProc( HWND WindowHandle, UINT Message, WPARAM wParam, LPARAM lParam )
{
// メッセージによって分岐
switch( Message )
{
// マウスのどれかのボタンが押されたら「押されたフラグ」用の変数を1にする
case WM_LBUTTONDOWN :
case WM_RBUTTONDOWN :
case WM_MBUTTONDOWN :
MouseClick = 1 ;
break ;
}
return 0;
}
// WinMain 関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
// ウインドウモード
ChangeWindowMode( TRUE ) ;
// フック用ウインドウプロージャの登録
SetHookWinProc( WndProc ) ;
// DXライブラリの初期化
if( DxLib_Init() == -1 )
return -1 ;
// 描画先を裏画面に
SetDrawScreen( DX_SCREEN_BACK ) ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面クリア
ClearDrawScreen() ;
// マウスのボタンが押されていたら四角形を描画する
if( MouseClick == 1 )
{
// 四角形を描画
DrawBox( 0, 0, 128, 128, GetColor( 255,255,255 ), TRUE ) ;
// フラグを倒す
MouseClick = 0 ;
}
// メッセージの描画
DrawString( 0, 0, "画面をクリックすると一瞬だけ四角形が表示されます", GetColor( 255,255,255 ) ) ;
// 裏画面の内容を表画面に
ScreenFlip();
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}