- 題名: 透明なフォームの作成
- 日時: 2010/02/08 15:26:05
- ID: 26396
- この記事の返信元:
- (なし)
- この記事への返信:
- [26397] Re[1]: 透明なフォームの作成2010/02/08 15:42:01
- ツリーを表示
■No26396に返信(つみひさんの記事) > そこでTransparencyKeyを設定してフォームを透明にすると、 > フォームのうえをクリックしたときは下のアプリをクリックできるのですが > ボタンなどは押せてしまいます。 Opacity あるいは TransparencyKey を設定したうえで、 Protected Overrides ReadOnly Property CreateParams() As CreateParams Get Const WS_EX_TRANSPARENT As Integer = &H20 Dim cp As CreateParams = MyBase.CreateParams cp.ExStyle = cp.ExStyle Or WS_EX_TRANSPARENT Return cp End Get End Property と記述しておけば、マウス操作が透過されます。 この場合には、TopMost プロパティも True にしておいた方がよいでしょう。
分類:[.NET]
フリーのツールでよくあるような付箋や透明時計のような
処理を実装しようとしています。
デスクトップにフォームを表示し、その上にはラベルやグリッド、
ボタンなど標準的なコントロールを配置します。
そこでフォーム全体を透過して、表示だけでなくクリックや
マウスの移動などの入力処理自体を下にあるアプリケーションで
受け取れるようにしたいと思っています。
そこでTransparencyKeyを設定してフォームを透明にすると、
フォームのうえをクリックしたときは下のアプリをクリックできるのですが
ボタンなどは押せてしまいます。
ラベルやボタンなどは透過させても、クリックなどの処理は
受け取ってしまうみたいです。
ラベルやボタン、その他の色がついている部分に関しても
入力処理をそのまま下のアプリへ渡す方法はないでしょうか。
フォームで受け取って、それを擬似的にVBで処理して
下へ伝えるというのはなるべく避けたいと思っています。