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

投稿日: 2003/09/10(Wed) 15:06
投稿者tak
Eメール
URL
タイトルform.show vbmodal 文法の仕様・・??

こんにちは。当方WIN2000Pro_SP4 + VB6.0_SP5で開発している者です。
現在、タスクトレイ常駐型ツールを作っています。
「スタートアップ」に登録しておき、パソコンが起動したらタスクトレイにぴょこんとアイコンが
表示されるようにしています。(ここまではなんとか作りこみました。)

以下にソースを抜粋します。なお、スタートアップは標準モジュールの「main」プロシージャです。
フォームが閉じられた後、常にラベル「ExitProc」にて終了処理を行おうとしています。

標準モジュール
Sub main()

'ここでINIファイルの内容を構造体に退避する処理を行っています。


Load Form1
Form1.Show vbModal
GoTo ExitProc

ExitProc:

'@
'ここでAPIの「ZeroMemory」にてINIファイル退避構造体をクリアしています。

End Sub

Private Sub Form_Activate()

    'フォームがアクティブになったら常にテキストボックスにフォーカスを当てます。
    Text1.SetFocus
    
    'タスクトレイにアイコンを追加し、フォームを隠します。
    Call TaskTrayAddIcon(Me.hwnd, Me.Icon, Me.Caption)
    'A
    Me.Visible = False
    
End Sub


上記の場合、Form1をモーダルで「Show」メソッドを走らせて、Form1の「Activate」イベントが走ります。
そこまでは意図通りなのですが、そのまま、「GoTo ExitProc」→「@」ステップに行ってしまいます。
本来なら、フォーム上の「×」ボタンなり「終了」ボタンを押下した時のみ「GoTo ExitProc」ステップに
行くようになると思ったんですが、どうも上手くいきませんでした・・。
この後、タスクトレイからツールを起動してもINIファイルの内容が構造体に退避されていませんでした・・。
(@ステップが処理されているのですから当然なのですよね・・。)

ちなみに「A」ステップにて「Me.Visible = True」とする事で、ユーザが終了しようとした時にのみ終了処理を
走らせるという流れは上手くいきました。

「Me.Visible = False」にしているとどうしてもスルーしてしまうものなのでしょうか??


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

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

- Web Forum -