SetWindowPosで最前面に表示したフォームからモーダルで別フォームを呼び出すには?

解決


Tamy  2003-11-21 16:10:59  No: 110116  IP: [192.*.*.*]

SetWindowPosで最前面に表示したフォームからモーダルで別フォームを呼び出すには、どうすればよいでしょうか?

現在Form1を
r = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)  で最前面に表示しています。
Form1からForm2をモーダルで呼び出しても、Form1の後ろにForm2が隠れてしまいます。
これをForm2がForm1の後ろにならないようにするにはどうすればよいでしょうか?

WinXP
VB6SP5です。よろしくお願いします。

編集 削除
すーさん  2003-11-21 16:57:14  No: 110117  IP: [192.*.*.*]

HWND_NOTOPMOSTじゃなくてHWND_TOPMOSTでは?

編集 削除
すーさん  2003-11-21 16:59:15  No: 110118  IP: [192.*.*.*]

途中で送信してしまいました。
Form2のアクティブイベントでSetWindowPosでForm2を最前面にすればいいのでは?

編集 削除
Tamy  2003-11-21 17:43:14  No: 110119  IP: [192.*.*.*]

すーさん回答ありがとうございます。
ご指摘のあったところはコピペの間違いでした。
こちらに訂正
r = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)

Form2のアクティブイベントでSetWindowPosでForm2を最前面にしたら
思うような結果になりました。

Form2.Show vbModalのすぐ後に最前面にするとか色々やりましたが、
Form2のアクティブイベントで最前面にするとは考えもつきませんでした。
どうもありがとうございました。

編集 削除