う〜ん。
あれですな。
IT知識の海はあまりに広大で溺れてしまいそう。
水先案内人もいないまま航海に出るのは無謀極まりない気がしてきました。
とはいえ、現代は「いんたーねっと」という便利なものがあるのが救いです。(なんでしょうか)


今日も仕事はあまり進みませんでした。
新しく試してみたのはBackGroundWorkerとWndProcメソッド。
BackGroundWorkerは印刷に時間がかかるのをなんとかごまかす方法ということで
印刷をバックグラウンドで実行する為に使ってみました。(使い方は他所、もしくはMSDNを見てね)
こいつはなかなかよろしいですな。
これって一応マルチスレッドなんですか?
この程度ならなんとか使えそう。
(本格的なマルチスレッドは怖くて(いまんとこ必要も無いし)手が出せませんが)
WndProcはTextBoxでDeleteキーを判定する為に使ってみました。
TextBox(他のコントロールもそういうのが多いと思うけど)では
カーソルキーやDeleteキーは普通のキーイベントでは取れないのが困りもんなのよね。
まあ、無事にWM_KEYDOWNメッセージを捕獲してDeleteキーは取れたんですが、
WndProcメソッドでキーを処理する場合、
キー入力をキャンセル出来るのは通常イベントで捕獲できないキーだけなんですかね。
「WParam = IntPtr.Zero」でDeleteキーの入力を消すことは出来たのですが、
普通のキー(「a」とか「b」とか「1」とか)はなぜか消せない。
押したキーの文字がTextBox.Textに入力されちまいます。
Windows Messageは来てるのになぁ。
理経路がなんか違うのかしらん。
(ってかおいらが何か勘違いしてたかな?)
まあ通常のキーイベントで処理すればいいんだけど、なんかすっきりしねえなぁ。


追加修正
Deleteキーが取れないのはKeyPressイベントでした。
KeyDownイベントでは捕獲可能でした。(KeyUpは試してない)
KeyDownからKeyPressまでの間にControlで処理されてしまうのかねぇ。