◇PocketPC2002開発 〜タップ位置取得〜

ペンタップされた事を、そしてその座標を取得するにはどうすれば良いのでしょうか?
基本的に Windowsと同じと考えると、ペンタップ=マウスクリックではないかと推測しました。

○WM_LBUTTONDOWNを使ってみる

マウスをクリック(正確に言うと左ボタンを押し込んだとき)した時に、Windowsでは WM_LBUTTONDOWNメッセージが来ます。
実際にやってみました。
WndProcの WM_PAINTと同じ switch文内に追記します。

case WM_PAINT:
〜画面再描画時の処理〜
case WM_LBUTTONDOWN:
  //LOWORD(lParam)にX座標
  //HIWORD(lParam)にY座標
  break;

少なくともエミュレータではちゃんとタップ位置が取得できます。

○タップ位置をダイアログ表示してみる

キーと違って、色々と細かい事を調べたいので、ダイアログ表示してみます。

char s[256];
TCHAR tchar[512];
int mouse_x, mouse_y;

switch (message){
〜省略〜
  case WM_LBUTTONDOWN:
    mouse_x=LOWORD(lParam);
    mouse_y=HIWORD(lParam);
    sprintf(s, "x=%d, y=%d",mouse_x,mouse_y);
    MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,s,strlen(s) + 1,tchar,sizeof(tchar));
    MessageBox(NULL,tchar,_T("debug"),MB_OK);
    break;

トップメニュープログラマ専用PocketPC2002