setwindowposで常に最前面にするには?


たける  2005-09-04 10:14:43  No: 91968

http://madia.world.coocan.jp/vb/API/VBFORMMAE.htm

これを使ってform1を常に最前面にしてるのですが最初のうちは
前面ですがだんだん前面にならなくてこまっています。特にIEの
画面更新などで止まります。

Form_loadで一度だけsetwindowposをコールしているのですが
何か対処法はありますか。

VB6.0です


こちのち  2005-09-04 12:29:27  No: 91969

>だんだん前面にならなくて
だんだんとはどういうことですか?

>特にIEの画面更新などで止まります。
何が止まるんですか?

>Form_loadで一度だけsetwindowposをコールしているのですが
どのように?

その現象を再現できるコードがあればそれも示して下さい。


たける  2005-09-04 17:16:32  No: 91970

>だんだんと
最初は最前面なんですが4-5回他の窓を開くと最全面にならなくなります。

>何が止まるんですか
最前面になるのがならなくなります。そしてクリックして
フォームを最前面に持ってきてIEなどを開くと最前面に
ならなくなります。

>どのように

Private Sub Form_Load()

  
 '常に手前表示にする
    modoriti = SetWindowPos(Form1.hwnd, -1, 0, 0, 0, 0, &H40 Or &H2 Or &H1)
    

ご教授よろしくお願いします。


たける  2005-09-04 17:18:39  No: 91971

やりたいのは常に最前面じゃなくて絶対に最前面でどんな邪魔が入っても
form1を一番前に表示させたいのです。


こちのち  2005-09-04 18:38:59  No: 91972

>最初は最前面なんですが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

これだけでは、いっている現象が再現しませんが。


たける  2005-09-04 21:42:35  No: 91973

IEを別の窓に開くとその後ろにフォーム1がきます

コードの記述はForm_Loadのこれのみです


こちのち  2005-09-04 23:19:41  No: 91974

こちらの環境では提示されたコードだけでは現象が再現しません。
また、あなたの書く限りの操作ではForm1は背面になることはありませんでした。
なにか、その現象を再現する方法はありますか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加