- Win32API質問箱 Build120©2ch.net
416 :デフォルトの名無しさん[sage]:2015/05/25(月) 00:12:22.08 ID:Y4roGc/9 - >>415
WM_ACTIVE:と、WM_NCACTIVE:のタイミング両方で、 SetActiveWindow( hBackupWnd );SetForegroundWindow(hBackupWnd);を動かしてみたんですけど、 ウインドの状態は前のウインドで保持されてはいますが、ポップアップメニューが閉じてしまいます。 WM_NCHITTESTを戻り値を0にしてもだめです。。 ポップアップメニューのウインドハンドル調べてみたのですが、ハンドルを得ることできそうもないです。 困った。。
|
- Win32API質問箱 Build120©2ch.net
419 :デフォルトの名無しさん[sage]:2015/05/25(月) 00:28:30.28 ID:Y4roGc/9 - 片山さん、自分のポップアップメニューではなく、他者のアプリのポップアップメニューですが、同じようなものは作成できるんでしょうか?
やりたいことは、ちーたんタッチボードや、TouchMousePointerなどの入力系ツールの作成です。 もしくは、マウスのイベントを無効にして、自分のウインドにフォーカスが移らないようにすることはできますか?
|
- Win32API質問箱 Build120©2ch.net
421 :デフォルトの名無しさん[sage]:2015/05/25(月) 00:36:33.73 ID:Y4roGc/9 - >>418
FindWindow("#32768", NULL)は知りませんでした助かります。ありがとうございます。
|
- Win32API質問箱 Build120©2ch.net
422 :デフォルトの名無しさん[sage]:2015/05/25(月) 00:48:07.44 ID:Y4roGc/9 - FindWindow("#32768", NULL)試してみたのですが、OS固有のポップアップメニューは処理できそうな感じですが、
他のアプリが作ってる一部のポップアップメニューのハンドルは取れそうもないっぽいです。 例:フラッシュアプリで右クリックなどのポップアップなど マウスフック試してみるか。。
|
- Win32API質問箱 Build120©2ch.net
424 :デフォルトの名無しさん[sage]:2015/05/25(月) 01:03:47.42 ID:Y4roGc/9 - >>423
さきほどのFindWindow("#32768", NULL)とグローバルフック経由からのサブクラス化など使えば PopupMenuのフックはいけそうですね。 マウスフックのAPI眺めてみたのですが、それっぽいメッセージの処理ができそうもなかったので、 WH_CBTフックで、アクティブ拒否ができるか試してみます。 こっちのほうが簡単かな?
|
- Win32API質問箱 Build120©2ch.net
425 :デフォルトの名無しさん[sage]:2015/05/25(月) 01:39:07.50 ID:Y4roGc/9 - WH_CBTフックで、アクティブ拒否したのですが、ポップアップメニュー消えちゃうぅぅ。
|
- Win32API質問箱 Build120©2ch.net
434 :デフォルトの名無しさん[sage]:2015/05/25(月) 20:24:07.83 ID:Y4roGc/9 - 情報ありがとうございます。
transparent属性にしたらそのウインドでのタッチイベント(WM_TOUCH)発生するんでしょうか? WS_EX_TRANSPARENTの属性をつけると、ヒットテストそのものが起きないとMSDNのサンプルに乗ってるんですが。。 https://msdn.microsoft.com/ja-jp/library/ms997507.aspx hwnd = CreateWindowEx(WS_EX_LAYERED | // レイヤード ウィンドウ WS_EX_TRANSPARENT | // このウィンドウをヒット テストしない 後ほど試して見ます。
|