混沌雑記帳






WindowsMobileのGestureAPIに関する情報が少ないのと
GestureAPIで検索するとWindows7の情報が出てくる&似てるけど異なる部分があるのでメモ。

タッチスライドした場合のウインドウメッセージの発生順は以下になる。
WM_LBUTTONDOWN
WM_GESTURE(GID_BEGIN)
WM_GESTURE(GID_PAN) ←タッチ中繰り返し
WM_GESTURE(GID_END)
WM_GESTURE(GID_SCROLL)
WM_LBUTTONUP

またGID_PANについては連続する場合先頭にGF_BEGIN、末尾にGF_ENDが付く。
この二つは同時に付く場合もある。(GID_PANが一つのみの場合)
GID_SCROLLはゆっくりタッチした場合などに来ない場合がある。

陥りやすいミスとしてGID_XXXはwParamに入ってること。
Windows7だとGESTUREINFOのdwIDとなっているので要注意。
(もしかしたら改定されて今はwParamなのかも知れないがネット上だと上記がでてくる)
現時点ではGID_ROTATE、GID_SCROLLなどは定義されていない。
(WindowsMobile7でマルチタッチ用に定義が増えるのかもしれない)

・GID_PANでの処理
GESTUREINFOのptsLocationにタッチ座標がそのまま入ってくる。
(ptsLocationについては全て共通でタッチ座標が入ってると思われる)
画面をスライドさせたい場合などは前のGID_PANとの差分を取って処理するなど。

・GID_SCROLLの処理
こっちがちょっと複雑でptsLocationは最終のタッチ座標。
残りのデータはullArgumentsに纏めて入っている。
分解するためのマクロが定義されているのでこれを使う。
 GID_SCROLL_ANGLE(ullArguments)はスライドした方向を取得できる。
  GID_ROTATE_ANGLE_FROM_ARGUMENTでラジアンに変換できる。
 GID_SCROLL_DIRECTION(ullArguments)はARG_SCROLL_XXXの概ねの方向を取得。
 GID_SCROLL_VELOCITY(ullArguments)はフリックの速さを取得。
4方向のどれかで良いのならDIRECTION、斜めも必要ならANGLEを使う。
慣性スクロールなどが必要であればVELOCITYを使って処理する。
離したあともメッセージが続くということはないのでタイマーなどが必要。

また前後にWM_LBUTTONDOWN、WM_LBUTTONUPがあることの注意すること。
GID_PANでスクロールなどさせると意図せず範囲選択になってしまったりする。
この場合、タップ処理はGID_SELECTで処理すると良い。
ただし全てWM_GESTUREで処理してしまうと選択処理が出来なくなったりする。
選択が必要なアプリケーションでは、スクロール用のWM_GESTURE処理と
選択用の従来処理を切り替えられるようにする事を検討する。
なお、GID_SELECTは離してから来る。(即ちWM_LBUTTONUP直前)

GID_HOLD、GID_DOUBLESELECTでも先にGID_SELECTが来るので
切り分ける必要がある場合タイムアウト処理が必要なのはサンプルの通り。
モバイル | Comments:1
(2009/12/20(Sun) 14:14:22)

T-01AのWindowsMobile6.5アップデート(SP05)が出たので早速アップデート。
本当は何か使えなくなる危険考えて待とうかと思ってたんだけど
そうそう大きな問題は出てない感じだし、我慢できずに(笑)

全体としてはWM6.1に比べると僅かに遅い感じ?
同じリズムで操作すると追いついてこない感じがある。
ただ少し操作してると慣れてしまうくらいの差だとは思う。

特に致命的問題が出るソフトはない感じ。
数少ない、強いて言えばな問題が幾つかあるくらい。

SortInchKeyの設定で種類選択ドロップダウンが操作不能。
このドロップダウンは以前からドロップダウンが上手く出ず
項目が見えないってのがあったんだけど。
ただ上下キーで変更できてたのがそれも不能に。
まあini直接でもそれほどの問題ではないので、まあなんとか。

FileDialogChangerが何故か上手く動作しなかった。
入れなおしとかでも駄目で、他の設定後に諦め悪く入れなおしたら動いた。
良く判らないが動かないのは非常に厳しいので助かった。
駄目かと思ってArcbirdのgsGetFile直接使用を実装したのに意味なし。
まあC#からgsGetFileを直接使うっていうのは中々面倒なパターンで勉強にはなったが。

WkTASKは事前にX02T関連で聞いていた通りで
スタートメニューが独立プロセスになったらしい。
その為×ボタンで終了から除外しておかないと表示できなくなる。
あとはまあ、タスクバー表示がちょっと変わったので画面によってデザインに影響でてる。

微妙な差といえばGsFinderでドラッグ複数選択が出来るようになってる。
タップで選択していくとうっかり実行になったりするからこれは助かる。


レジストリ変更で場所を忘れてたのをメモ。

・未署名プログラムのインストール/実行時警告
HKEY_LOCAL_MACHINE\Security\Policies\Policies
0x101Aを0から1へ

・Todayの分割線非表示
HKEY_LOCAL_MACHINE\Software\Microsoft\Today
HidePluginSeparators=dword:1
モバイル | Comments:0
(2009/12/17(Thu) 23:04:16)

海外リリースでこれはと思った17ボタンマウス Nagaが国内登場(AKIBA PC Hotline)
流石国内でも普通に扱ってるRazer製というか、予想外に早く取り扱いが始まった。

イマイチ判らないのはボタンの割り当て機能について。
ハード的な送出を数字キーとテンキーにすることが出来るのは判ったんだけど
ソフト毎の割り当てって切り替えソフトとかついてないのかな?
マクロも含めてゲーミングマウスなら珍しくはないと思うんだが、どこにも言及が見当たらない。
一応Razerの過去のモデルにはあるので同等のものが使えると思うんだけど…。
ABIBA PC Hotlineの記事もコマンド割り当てできるような感じに書いてあるし。
ただ海外のレビュー動画を見たところ画面にボタン設定が見当たらなかったんだよなぁ。
一応他のソフトで補えなくもないんだけど、使い勝手微妙になったりするし。
その辺りが確認できないとちょっと飛び込みにくい感じ。
まあもし身近で見かけちゃったら危ないけど、扱いそんなに広く無いしね。

まああとはLEDがうざそうなのはどうしようもないか。
いざとなれば分解してLEDを黙らせるって手もないわけじゃ無いが…。
こういうのも設定設けて欲しいよなぁ。単純に背面にスイッチでもいいけど。
PC関連 | Comments:0
(2009/12/16(Tue) 23:41:03)

Todayプラグインを更新。

tdyRegStatus2.jpg

まずちょっとサイズが大きすぎたので高さを80から60まで縮小。
数字、On/Offは変えずにトレイサイズとアイコンだけ変更。
ついでにトレイの色を他のアイテムと近くして統一感アップ。

プログラム側では0もしくはOffのアイテムのアイコンをグレーに。
初めは内部的にグレー化して描画しようかと思ったんだけど
存外面倒なことが判ったのでパーツ画像にOff時を加えた。
なので仕様的にはOff時表示なのでグレーなのはこのスキンだからとなる。
Off時の数値の複数化も対応。
どうもやはりステータスによっては複数状態になってしまうようで仕方なく。
保持領域を可変化しなきゃいけなかったんで、他の情報も可変サイズ化した。
パスとかMAX_PATH(260Byte)が実サイズになったのでほんの僅かだけど使用減少?

これでとりあえずこのプラグインは一段落、かな?
次の問題は不在着信リストを一発で表示したいって所か。
電話アプリの一画面なんだけど直接の表示方法がわからない。
バルーンからだと表示されるんだからオプションなりなんなりがあるはずなんだけど…。
海外のフォーラムとかも探したけどやっぱり方法を探す質問はあっても回答がないような?
まあそこまで必要でも無いから現状の電話アプリ表示でも良いといえば良いんだが、イマイチ引っかかるな。
モバイル | Comments:0
(2009/12/01(Tue) 06:23:06)

201001のログ 200911のログ

Copyright © 混沌雑記帳. All Rights Reserved. [PHPウェブログシステム3 FLEUGELzネットマニア + 独自改造]