[リストへもどる]
一括表示

投稿時間:2002/09/08(Sun) 09:29
投稿者名:windy
Eメール:
URL :
タイトル:
タイマー起動のフォームを前面表示
2度目ですがご教示お願い致します。
タイマーイベントによりshowメソッドでサブフォームを表示させています。
この時、他のアプリケーションのウィンドウがアクティブの場合に
そのウィンドウよりも前面に表示したいのですがどのようにすればよいでしょうか。

一度表示されたサブフォームを操作してHideで非表示にした後は
タイマーイベントのshowによって前面に表示されるのですが、
最初だけアクティブウィンドウの背面でフラッシュしています。

投稿時間:2002/09/08(Sun) 11:37
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: タイマー起動のフォームを前面表示
Form1.Show
Form2.Show vbModal, Form1

こういう事でしょうか?

投稿時間:2002/09/08(Sun) 21:52
投稿者名:windy
Eメール:
URL :
タイトル:
Re^2: タイマー起動のフォームを前面表示
> Form1.Show
> Form2.Show vbModal, Form1
> こういう事でしょうか?

説明が不十分で申し訳ありません。
Timer1を設けたForm1をロードして
Timer1のイベントに以下のようなコードを書いています。

Private Sub Timer1_Timer()
    If lgSettime = Now then
       Form2.Show
    End If
End sub

これで1回目だけ前面に表れず、2回目以降は前面になります。
(Form2をHideにする毎にlgSettimeに新しい値を入力します)

何かプロパティあたりの設定に気づいていないだけかと
思ったのですが、そうでもなさそうですので
batchman様の御提案を試してご連絡させていただきます。

batchman様、前回に続いてどうもありがとうございます。


投稿時間:2002/09/09(Mon) 01:17
投稿者名:batchman
Eメール:batchman@ae.wakwak.com
URL :
タイトル:
Re^3: タイマー起動のフォームを前面表示
>
> Private Sub Timer1_Timer()
>     If lgSettime = Now then
>        Form2.Show
>     End If
> End sub
>
> これで1回目だけ前面に表れず、2回目以降は前面になります。
> (Form2をHideにする毎にlgSettimeに新しい値を入力します)
>
私の回答は、怪答になっていそうです。m(_o_)m

Form2のLoadイベントで、SetWindowPos APIを使用してはいかがでしょうか。
TOPMOSTを指定すれば、他のアプリケーションウィンドウより前面に表示されるでしょう。
(常に前面に表示されますが...)

#開発環境が今手元にないので、間違ってたらすみません。

投稿時間:2002/09/08(Sun) 16:10
投稿者名:batchman
Eメール:batchman@ae.wakwak.com
URL :
タイトル:
Re: タイマー起動のフォームを前面表示
> 2度目ですがご教示お願い致します。
> タイマーイベントによりshowメソッドでサブフォームを表示させています。
> この時、他のアプリケーションのウィンドウがアクティブの場合に
> そのウィンドウよりも前面に表示したいのですがどのようにすればよいでしょうか。
>
> 一度表示されたサブフォームを操作してHideで非表示にした後は
> タイマーイベントのshowによって前面に表示されるのですが、
> 最初だけアクティブウィンドウの背面でフラッシュしています。

SetForegroundWindow APIを使ってみるとか

投稿時間:2002/09/09(Mon) 22:22
投稿者名:windy
Eメール:
URL :
タイトル:
(ほぼ解決,お礼)タイマー起動のフォームを前面表示
SetWindowPosで常に前面にした後、
直ぐ次の行でSetWindowPosで解除して
サブフォーム(Form2)を前面表示できました。

但し、Form2は数回フラッシュします。
これについて、以下に関係ありそうな記載があったのですが、
理解できませんでしたので、
今回はフラッシュしてもOKということにしました。

花ちゃん様、batchman様、どうもありがとうございました。

http://support.microsoft.com/default.aspx?scid=kb;ja;JP97925
http://support.microsoft.com/default.aspx?scid=kb;ja;JP227043
http://home.att.ne.jp/yellow/hide_n/programming/tips06.html