dポイントプレゼントキャンペーン実施中!

いきなり質問ですみません。
C++でWin32を使ったプログラミングをしているのですが、
常に非アクティブで常に手前に表示したウィンドウを造りたいのですが、どのようにすればいいのでしょうか

常に手前は簡単にできたのですが、常に非アクティブというのは調べてもなかなか見つかりません。
どなたか教えていただけると助かります。
キーワードだけでもかまいませんのでよろしくおねがいがいたしますm(_ _)m

A 回答 (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
    • good
    • 0
この回答へのお礼

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

分かりやすい回答ありがとうございました。m(_ _)m

お礼日時:2005/07/24 12:06

普通だと、アクティブにされた時に他のウィンドウやデスクトップをアクティブにするとか。




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

非アクティブなウィンドウを作る事自体が目的ですか?
こちらは何か別の目的のための手段なのでは?
・Alt+F4で修了しては困る
・ウィンドウ枠を常にグレーにしたい
・Alt+Tabに表示されたくない
とか。

目的によっては「非アクティブな」という方法でなくても実現可能なのでは?

この回答への補足

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

補足日時:2005/07/23 16:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!