VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -