マウス操作の透過 – プログラミング – Home

通知
すべてクリア

[解決済] マウス操作の透過


松雄
 松雄
(@松雄)
ゲスト
結合: 16年前
投稿: 19
Topic starter  

松雄と申します。
あるソフト(mobmeterなど)でよくマウス操作を透過させる事が
可能ですがどうやってやればいいのでしょうか?どれだけ探し
ても見つかりませんし、方法も思い付きません。
どなたかご教授お願いできませんか?

環境:WinXP、VC++6


引用未解決
トピックタグ
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

その部分を壁紙にして、地壁紙に上書き。
内容表示を変更する時にその部分を地壁紙に上書き。

だと、駄目なのかな。


返信引用
えちぜん
 えちぜん
(@えちぜん)
ゲスト
結合: 18年前
投稿: 15
 

Spy++でメッセージ見てると、WS_DISABLEとWS_CLIPSIBLINGSという、スタイルを指定し
ているようです。
このあたり調べてみてはいかがでしょうか。
これだけではないのかもしれませんが。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

WindowFromPointで探したウィンドウに、WM_MOUSEMOVEやWM_LBUTTONDOWN等を
渡してやればいいのだと思う。やったことないけど。
段階的にアプローチしてはいかがですか。

ダイアログにボタンを貼り付け、ボタンを押されたらメッセージボックスを
表示するだけのプログラムを作りましょう。(デフォルトのダイアログでも終了の確認が
できる)
このボタンを押すのが最初の目標です。
操作する側のプログラムはTOPMOSTにしておき、ボタンのダイアログを隠した状態でク
リックし、
(見えない)ボタンの上ならメッセージボックスを表示させる。

次は、操作される側のプログラムに手を加え、マウスがボタンの上に来たらマウスポインタを
IDC_HANDに変えてみましょう。

次は、デスクトップのアイコンを隠し、それを押せるかどうか。

ここまでできたら、多分完成しているのではないかと。

# ん?さんや、えちぜんさんは、全く違うアプローチをしていますね。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> # ん?さんや、えちぜんさんは、全く違うアプローチをしていますね。
の続きです。

ん?さんや、えちぜんさんの方法で行き詰ったらで結構ですので、
操作される側のプログラムを作ってください。
自作すれば、必要に応じてログを取ったり、ウィンドウハンドルを表示させたり、
と研究には便利でしょう。


返信引用
松雄
 松雄
(@松雄)
ゲスト
結合: 16年前
投稿: 19
Topic starter  

みなさんありがとうございます。
あれからいろいろ実験してみましたが、透明ウィンドウではマウスイベントが
透過できましたが、半透明ウィンドウではできませんでした。
またこれからSPYなど利用し再度チャレンジします。


返信引用
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

壁紙に…と発言した要因は、
デスクトップの壁紙を今のとは別の物に変更すると、mobmeterの表示物が消えた為。

# 自分はこの様な実装の実績も無いので、案として発言しました。


返信引用
松雄
 松雄
(@松雄)
ゲスト
結合: 16年前
投稿: 19
Topic starter  

ごめんなさい、透明ウィンドウは本件とは全く関係ありませんでした。
透明部分しか意味ありませんでした。すっかり勘違いしておりました。
思考錯誤続行します。
ん?さん何度もありがとうございます。
しかし今回はWindowFromPointから探ろうと思います。


返信引用
えちぜん
 えちぜん
(@えちぜん)
ゲスト
結合: 18年前
投稿: 15
 

もう少し調べたところ
拡張スタイルに、WS_EX_TRANSPARENTを設定するとよさそうですね。
http://msdn.microsoft.com/ja-jp/library/61fe4bte(VS.80).aspx

WS_DISABLEDとWS_CLIPSIBLINGSはなくても透過はするようです。
あまり関係なかったようです。
WS_DISABLEDはウィンドウを無効に、WS_CLIPSIBLINGSはクリッピングのためにスタイル
を変えてあるようですね。


返信引用
えちぜん
 えちぜん
(@えちぜん)
ゲスト
結合: 18年前
投稿: 15
 

透過と書いている部分は、操作が透過すると置き換えてください。
WS_EX_TRANSPARENTを指定するとマウスイベントが下のウィンドウに透過して渡されるよ
うです。


返信引用
松雄
 松雄
(@松雄)
ゲスト
結合: 16年前
投稿: 19
Topic starter  

えちぜんさん、ありがとうございます。
WS_EX_TRANSPARENTであっさり解決できました。
本当に嬉しいです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました