- PR -

タブレットペンのテールスイッチ検出方法

1
投稿者投稿内容
johnes
ベテラン
会議室デビュー日: 2007/11/21
投稿数: 50
投稿日時: 2008-10-14 19:10
お世話になっております。

現在C#2005でちょっとしたペイントソフトを作っていまして、それにタブレットのテールスイッチ(ペン裏)機能を付加したいと思っています。

テールスイッチの検出はMicrosoft.Ink.InkPictureのCursorInRangeイベントを使うことによって可能ということは分かっています。

だた描写部分はFormに直接Microsoft.Drawing系を使って描写する手法を取っており、InkPictureを使うとInkPicture自体が自動的にキャンバスとなってしまうためにMicrosoft.Drawing系を使った描写を受け付けなくなってしまいます。
かといってVisible=falseにして自動的にキャンバス化しなくしたり、InkEnabled=falseにしてみると、当然ですがCursorInRangeイベントが発生しなくなってしまいます。

何かいいテールスイッチ検出方法はないものでしょうか?
(Paint.NETなどのオープンソースも見てみたのですがテールスイッチ等は未対応のようですね。。。)
johnes
ベテラン
会議室デビュー日: 2007/11/21
投稿数: 50
投稿日時: 2008-10-16 19:18
自己解決しました。

タブレット上では"テールスイッチとペン先の組み合わせ"が"右クリック"と同じ動きをしていることに着目し、以下のミニマムコードを実施しました。
コード:
private void Form_MouseClick(object sender, MouseEventArgs e)
{
	if (e.Button == MouseButtons.Left)
		MessageBox.Show("左");
	else if (e.Button == MouseButtons.Right)
		MessageBox.Show("右");
}



すると予想通り通り、
"単純にペン先で"フォームをつっつくと"左"と。
"テールスイッチとペン先の組み合わせ"でつっつくと"右"と表示されました。
ということでマウスのイベント引数の判断で非常に単純に解決しました。
1

スキルアップ/キャリアアップ(JOB@IT)