- - PR -
WndProcでのメッセージ(マウスクリック)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-27 12:24
よろしくお願いします。
C#で ・フォーム ・画像(ユーザコントロール(派生元:PictureBox)) を用意し、フォーム全面に画像を張り付けています。 そして、以下のメソッドをユーザコントロール内で定義し、フォームにマウスイベントを通知しています。 −ユーザコントロール− protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_NCHITTEST: m.Result = (IntPtr)HTTRANSPARENT; return; } base.WndProc(ref m); } −フォーム− protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_NCHITTEST: m.Result = (IntPtr)HTCAPTION; return; } base.WndProc(ref m); } そこで、画像がクリックされた時に特殊な処理をしたいので、 ・WM_LBUTTONDOWN = 0x201 を定義したのですが、このメッセージが来ていませんでした。 WndProc内で、コントロールがマウスクリックされたのを知る手段はないのでしょうか? コントロール上でマウスクリックしたら、フォームを移動できるのでクリック自体は拾えているはずだと思うのですが、いまいちわかりません。 ご存じの方いたら教えてください、よろしくお願いします。 −環境− Windows VISTA VS2005 | ||||
|
投稿日時: 2007-07-27 13:08
非クライアント領域なので、 ・const int WM_NCLBUTTONDOWN = 0xA1; を定義することで、期待どおりの動作を行えました。 |
1