投稿日 | : 2005/11/14(Mon) 20:30 |
投稿者 | : E |
Eメール | : |
URL | : |
タイトル | : Re^2: あるウィンドウの手前にフォームを表示 |
皆様ご回答ありがとうございます。
この方法でうまく動作したのですが、最後の注意書きが気になりますね・・・。
ネットで検索したのですが、ワトソン博士が出てくることがあるという情報以外、
見つけることができませんでした。
SetParentを使ってみましたが、無記名さんのおっしゃるとおり、
タスクバーから消え、メモ帳の中にフォームが取り込まれ
しかも中途半端に非表示になってしまいました。
逆にフォームを親にした場合、CADは完全に非表示になりました。
元々、CADのI/F(C言語)からEXEをキックし、EXEが終了するまで待機させている為、
CADの画面が真っ白(しかも応答無し)になってしまうのを
防ぐための手段として検討したものですから(そもそもこちらを質問すべきだったかもしれません)
CADが非表示になるのは結果オーライです。
花ちゃんさんの方法はまだ試していませんが、
とりあえずはSetparentでやってみようと思います。
本当にありがとうございました。
今後とも宜しくお願い致します。
P.S.
ちなみに上記の応答無しを回避する方法ってあるんでしょうか??
WaitForSingleObjectを使って待機させてます。
P.S.2
一応、ソースを書いておきます。
一部、Starfishさんのサンプルを流用させて頂きました。
Private Sub Command1_Click()
lngHwndNotepad = FindWindow("Notepad", vbNullString)
lngRetuenValue = SetParent(lngHwndNotepad, Me.hwnd)
End Sub
Private Sub Command2_Click()
lngRetuenValue = SetParent(lngHwndNotepad, 0)
ShowWindow lngHwndNotepad, SW_SHOWMAXIMIZED'Windowを最大化
End Sub