http://madia.world.coocan.jp/vb/API/VBFORMMAE.htm
これを使ってform1を常に最前面にしてるのですが最初のうちは
前面ですがだんだん前面にならなくてこまっています。特にIEの
画面更新などで止まります。
Form_loadで一度だけsetwindowposをコールしているのですが
何か対処法はありますか。
VB6.0です
>だんだん前面にならなくて
だんだんとはどういうことですか?
>特にIEの画面更新などで止まります。
何が止まるんですか?
>Form_loadで一度だけsetwindowposをコールしているのですが
どのように?
その現象を再現できるコードがあればそれも示して下さい。
>だんだんと
最初は最前面なんですが4-5回他の窓を開くと最全面にならなくなります。
>何が止まるんですか
最前面になるのがならなくなります。そしてクリックして
フォームを最前面に持ってきてIEなどを開くと最前面に
ならなくなります。
>どのように
Private Sub Form_Load()
'常に手前表示にする
modoriti = SetWindowPos(Form1.hwnd, -1, 0, 0, 0, 0, &H40 Or &H2 Or &H1)
ご教授よろしくお願いします。
やりたいのは常に最前面じゃなくて絶対に最前面でどんな邪魔が入っても
form1を一番前に表示させたいのです。
>最初は最前面なんですが4-5回他の窓を開くと最全面にならなくなります。
他の窓とは?
何を開いたら最全面にならなくなるんでしょう?
>最前面になるのがならなくなります。そしてクリックして
>フォームを最前面に持ってきてIEなどを開くと最前面に
>ならなくなります。
コードの記述はForm_Loadのこれのみですか?
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub Form_Load()
Dim modoriti As Long
'常に手前表示にする
modoriti = SetWindowPos(Form1.hwnd, -1, 0, 0, 0, 0, &H40 Or &H2 Or &H1)
End Sub
これだけでは、いっている現象が再現しませんが。
IEを別の窓に開くとその後ろにフォーム1がきます
コードの記述はForm_Loadのこれのみです
こちらの環境では提示されたコードだけでは現象が再現しません。
また、あなたの書く限りの操作ではForm1は背面になることはありませんでした。
なにか、その現象を再現する方法はありますか?
ツイート | ![]() |