• ベストアンサー

常に非アクティブなウィンドウを作りたい

いきなり質問ですみません。 C++でWin32を使ったプログラミングをしているのですが、 常に非アクティブで常に手前に表示したウィンドウを造りたいのですが、どのようにすればいいのでしょうか 常に手前は簡単にできたのですが、常に非アクティブというのは調べてもなかなか見つかりません。 どなたか教えていただけると助かります。 キーワードだけでもかまいませんのでよろしくおねがいがいたしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

> そのウィンドウをマウスなどでクリックしても、 > もともと選択していたウィンドウをアクティブなままにしたいんです 「アクティブウィンドウの領域外がクリックされた場合、自身を非アクティブにする」という事がWindowsの機能として行われてしまうのなら、回避できないと思います。 対策としては、 「自分がアクティブにされた場合、直前にアクティブだったウィンドウをアクティブにする」とかですが、直前の…ってのが取得できるかどうか次第ですね。 2-2-14.あるウィンドウをアクティブにしない方法(Windows API Topics) http://www.arcpit.co.jp/winapi/api_02/ap020214.htm WM_NCACTIVATEで、アクティブ化の際にアクティブ化を拒否すれば、自身はアクティブにはならないように思います。 ただ、代わりに直前のウィンドウがアクティブ化されるのか、アクティブウィンドウが無い状態になるのか、デスクトップウィンドウがアクティブになるのか、試さないと分からないかも。

参考URL:
http://www.arcpit.co.jp/winapi/api_02/ap020214.htm
genki140
質問者

お礼

自分がアクティブになる前のアクティブウィンドウを取得しておき、 そのウィンドウをアクティブにすることで問題が解決しました。 wParamがtrueのときにreturn falseをしてもアクティブかを拒否はできないみたいです^^; 分かりやすい回答ありがとうございました。m(_ _)m

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

普通だと、アクティブにされた時に他のウィンドウやデスクトップをアクティブにするとか。 > 非アクティブなウィンドウを作りたい 非アクティブなウィンドウを作る事自体が目的ですか? こちらは何か別の目的のための手段なのでは? ・Alt+F4で修了しては困る ・ウィンドウ枠を常にグレーにしたい ・Alt+Tabに表示されたくない とか。 目的によっては「非アクティブな」という方法でなくても実現可能なのでは?

genki140
質問者

補足

いえ、そのウィンドウをマウスなどでクリックしても、 もともと選択していたウィンドウをアクティブなままにしたいんです

すると、全ての回答が全文表示されます。

関連するQ&A