ClipStuido Paintタッチ環境用ツール

左下に半透明のウィンドウが出てきてジェスチャーで複数の操作ができます。

ターゲットはClipStuido Paintでのペンと消しゴム、ブラシ、アンドゥ、リドゥのショートカットです。

キーボードない上にボタン小さいとかで切り替えがストレスな人向けに

とりあえず設定もない手抜き暫定版です
ShortCutPad

そのうち複数位置表示とかフリック操作で他のショートカットとか対応したいね。
※その後フリックのUndoRedo対応しました
※トグルやめてツールシフト考慮した作りに変更
消しゴム機能長押し対応したかったけど長押し中にペン操作が入るとタッチイベントはキャンセルされる仕様らしいので無理そう

shortcutpad
追記:
カスタマイズできるスクリーンキーボードとして
touchkey
というのがあるようですね

でも、こちらはこちらで作っていこう。

スクリーンキーボード処理

C#でスクリーンキーボード的な処理を書きたい
http://cs2ch.blog123.fc2.com/blog-entry-85.html
というサイトがあり参考にしたがうまく動かない・・
普通にフォーカスが当たってしまう。
他のサイトもここを参考にして成功してる
http://sturnus.hateblo.jp/entry/2014/05/06/012058
こういうときにソースコードがあれば環境の所為なのかが切り分けできるのだけど・・

マウスでクリックしてもフォーカスが当たらないようにする処理というのも見つけたがそれは正常に動いた
ただ、フォーカスが当たらないがほかのウィンドウのフォーカスは外れるという残念なものだった。

CodeProjectからそれっぽいプロジェクトを見つけて参考にしようと動かしてみたらやっぱり同じように動かない。

結局CreateParamsを捨て後付で無理やり設定することにした。

        private const int GWL_EXSTYLE = -20;
        private const int WS_EX_NOACTIVATE = 0x08000000;
        protected override void OnCreateControl()
        {
            base.OnCreateControl();
            SetWindowLong(this.Handle, GWL_EXSTYLE, GetWindowLong(this.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
        }

成功!