■はじめに
最近はフリック操作が一般的になってきました。Windows Mobile(今後はWindows Phone、以後WM) 6.5でも標準でサポートされるようになり、以前のバージョンのOS用に作成したプログラムでもList-Viewコントロールなどはフリック操作をすると慣性スクロールします。
しかし、これはあくまでWM 6.5からで、それ以前のバージョンでは対応していません。また、WM 6.5であってもすべてのコントロールが慣性スクロールに対応しているか不明です。
そこで、役に立つかわかりませんが慣性スクロールするList-View(というよりList Boxesに近いですが)のウィンドウクラスを作成してみました。
■画面イメージ
■仕様
慣性リストビューの本体は2.のInertListView.hとILVItemList.hです。通常このセットで使用します。InertListView.hは描画部分、ILVItemList.hは項目リスト(データ管理)を担っています。
詳細なドキュメントに関してはこちらを参照ください。
なお、圧縮ファイルの中に使用例を2つ入れましたので、こちらを参考にしてください。
例1)
src\ilviewが例1で基本機能のみを利用した例です。タップすると、その項目の高さが切り替わります。メニューのループによりリストがループするかを指定します。
例2)
src\ileditが編集機能および時刻指定の機能を持たせた例です。タップ&ホールドで個々の項目の編集を行うことができます。タップだけだと例1同様に項目の高さの切り替えのみです。
項目の編集中に時刻をタップすると時刻ダイアログを表示します。
なお、個々の項目の編集するダイアログに関してはアプリケーション側で実装しています。
■ダウンロード
以下からダウンロードしてください。readmeはこちらです。
<2009/12/16版>
■注意事項
(1)本ソースですが、まだまだ動作、機能ともに不十分な状態です。某携帯電話/ミュージックプレーヤーと比べるべくもありませんが、まずは現時点の内容で公開しておきます。
(2)まだ、開発途上であるため、今後仕様が変更になる可能性があります。
(3)ソースは整形していないので、コメントアウトしてある個所が多数あり見づらいかもしれませんがご容赦ください。
(4)ソースは5.のとおりNYSLライセンスに準拠して公開しますので使えそうだと思った方は自由に利用してください。
■変更履歴
2009/12/16
・リファレンス(関数仕様)を追加。
・一部メッセージの見直し、エラー処理の強化など。詳細はこちらを参照ください。
2009/11/24
新規公開。
■利用規約について
本ソースは"NYSL Version 0.9982"に準拠し、以下のとおり公開いたします。
A. 本ソフトウェアは Everyone'sWare です。このソフトを手にした一人一人が、
ご自分の作ったものを扱うのと同じように、自由に利用することが出来ます。
A-1. フリーウェアです。作者(LIUNQA)からは使用料等を要求しません。
A-2. 有料無料や媒体の如何を問わず、自由に転載・再配布できます。
A-3. いかなる種類の 改変・他プログラムでの利用を行っても構いません。
A-4. 変更したものや部分的に使用したものは、あなたのものになります。
公開する場合は、あなたの名前の下で行って下さい。
B. このソフトを利用することによって生じた損害等について、作者は
責任を負わないものとします。各自の責任においてご利用下さい。
C. 著作者人格権は LIUNQA に帰属します。著作権は放棄します。
D. 以上の3項は、ソース・実行バイナリの双方に適用されます。
※NYSLに関しては以下のURLを参照ください。
http://www.kmonos.net/nysl/
■おわりに
最初に書いたとおりWM 6.5であれば、このソースを使用しなくとも慣性スクロールは実現できるかもしれません。少し調べてみたのですがList-Viewではできるのですが、List Boxesではできないようなので公開しておきます。少なくとも標準のList-ViewやList Boxesではループ上にスクロールすることはできないではないかと思います。
ただ、実際には自分で作成できないかというのと、例2のようなUIを実現してみたくて作成してみましたが何かの役に立てばと思います。
作者はWin32に関して深い知識を持っているわけではないので、ソース中おかしな個所があるかもしれませんがご容赦ください。
本ソースはNYSLライセンスにて公開していますが、もし、このソースを利用された場合、よろしければこちらまで一報いただけるとうれしく思います。
|