質問: お世話になります。 タイトルバーを持たないフォームでドラッグ移動をさせようと、下記のサイト様 を拝見してソースを組んでいるのですが、二つ目のサンプル、コントロール上でも 移動できるようにするでは、すべてが同じフォームの中に存在しているので、 このコードでもできると思うのですが、自分で別にクラス化したユーザコントロールを 貼り付けた場合、どのようなコードにすればよいでしょうか。 ![画像の説明をここに入力](https://i.stack.imgur.com/O9PEj.png) 既にクラス化されているので、図のようにラベルやピクチャボックスに後から MouseDownやMouseMoveの処理を追加することはできません。それなら、 クラス化するときにラベルやピクチャボックスにMouseDownやMouseMoveの処理を 追加しておけばよいかというと、本来必要でない(フォームではないので、 持って動かすという処理はこの時点では必要ない)処理を入れるのはふさわしくないと 思います。 やはり、この自作のユーザーコントロールをフォームに張り付けた後、 フォーム側のコードからMouseDownやMouseMoveの処理を実装したいのですが、 通常通りにやると、ラベルやピクチャボックスでドラッグすると、 それらのコントロールにマウス処理が働いてしまい、うまくいきません。 サンプルに書かれてある内容通りです。 力ずくでやるのであれば、ラベルやピクチャボックスにフォームからアクセスすれば できそうではありますが、あまりきれいなコードにはならないと思っています。 図のラベルやピクチャボックスの場所でも、ドラッグ移動できるようにするきれいな方法を ご教授いただけますでしょうか。 よろしくお願いいたします。
回答: きれいな方法ではないですが、あとから全体的にWindowメッセージを処理したいのであれば、 WH_GETMESSAGEでSetWindowsHookExを使用して、 GetMessageをフックして必要な処理を行う方法もあります。