プロが教える店舗&オフィスのセキュリティ対策術

VC++5.0 または VC++6.0 の環境で、MFC を使ってダイアログベースの
EXEを造っています。
(OS は NT4.0 または 2000 です)

以下のことをしたいと思っています。

・プロセスA、Bがあります。
・プロセスAがプロセスBをフォアグランドにします。
→SetForegroundWindow() します。
・プロセスAがプロセスBのボタンやエディットボックスなどのコントロールに
フォーカスをあてる。

で、この最後のフォーカスをあてる処理は実現可能でしょうか?
自分のプロセス内のコントロールに対しては、SetFocus() で
フォーカスをあてられたのですが、別プロセスではフォーカスを
あてることができませんでした。

識者の方、ご教授願います。

A 回答 (1件)

んー,SetForegroundWindowでフォーカス当てれそうですが。


フォーカスをあてたいコントロールの CWnd(というかHWND) は既に取得済みなんですよね?
そいつで直接 SetForegroundWindow を呼んでやったらフォーカスあたると思いますが。

MSDNで SetForegroundWindow(SDK) 見てみたら2000と98はなんか条件があるみたいです。
    • good
    • 0
この回答へのお礼

アドバイス通り、コントロールに対して直接 SetForegroundWindow() を
実行することで解決できました。
ありがとうございました。

お礼日時:2001/11/20 10:51

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