フォーム以外をクリックするとフォームを閉じるには

解決


よっしー  2009-08-01 16:02:13  No: 142304

すみませんが、また教えて下さい。
フォームのボタンとか×ボタンを押さないで、フォーム以外の何かをクリックした時にフォームを閉じるにはどうすれば良いでしょうか?
フォームは最前面に表示する様にしています。
クリックする場所は、規定出来ません。スタートボタンであったり、
既に表示されているエクスプローラーだったり、タスクバーであったりします。
宜しくお願いします。


よっしー  2009-08-01 17:18:05  No: 142305

すみません。VB6での話です。あちこち調べているのですが、なさそうなので、今の所、タイマーで3秒後に何も操作が無ければ、ユーザーフォームを閉じる様にしようかと、それとマウスムーブを見て3秒閉をキャンセルする。
これだと自分で作れそうです。
もっと簡単に出来る方法があれば教えて下さい。


そふと99  2009-08-01 21:01:39  No: 142306

フォーム以外の何か  のうちマウスクリックイベントがあるものすべての
マウスクリックプロシージャに「フォームを閉じる」コードを追加する。


魔界の仮面弁士  2009-08-02 01:18:49  No: 142307

DirectInput を試してみてください。
別アプリの上でのキーボード/マウス操作も捕らえることができます。

http://www.geocities.co.jp/SiliconValley/7406/tips/mouse/mouse2.html


オショウ  2009-08-02 04:31:18  No: 142308

フォームのLostFocusイベントではダメなんでしょうか?

※  未確認です。

以上。


よっしー  2009-08-02 15:51:56  No: 142309

皆さんご回答有り難う御座います。

他のやりたい事も全て叶えてくれる方法
http://www.geocities.co.jp/SiliconValley/7406/tips/mouse/mouse2.html
がすごいです。これ使いたいのですが、
起動した時から、このフォーム上のmouseと言うボタンを押さないで
マウスの追跡を行う様にするにはどうすれば良いか教えて貰えませんか。
mDIDevM.Acquireがわからないので、フォームのイニシャライズで
Sub chk_Mouse_Clickを一度コールすればいいのか?と思ったりする
私のレベルなのですが、駄目でした。

'マウス情報へのアクセスON/OFF
Private Sub chk_Mouse_Click()
    Select Case chk_Mouse.Value
        Case 0  'OFF
            If Not mDIDevM Is Nothing Then
                'アクセス権の破棄
                mDIDevM.Unacquire
            End If
            
        Case 1  'ON
            If Not mDIDevM Is Nothing Then
                'アクセス権の取得
                mDIDevM.Acquire
            End If
    End Select
End Sub


魔界の仮面弁士  2009-08-02 18:43:58  No: 142310

> 起動した時から、このフォーム上のmouseと言うボタンを押さないで
> マウスの追跡を行う様にするにはどうすれば良いか教えて貰えませんか。

「Mouse チェックボックスが押されたときに実行されるコード」を、
Form の Load イベントの最後に組み込めばよいかと。

> Sub chk_Mouse_Clickを一度コールすればいいのか?
ただ呼ぶだけだと、「Select Case chk_Mouse.Value」の部分の判定を
通過できませんよね。Sub chk_Mouse_Click を呼ぶのではなく、その中にある
「アクセス権を取得するためのコード」の部分だけを呼び出せば OK です。


よっしー  2009-08-03 04:52:46  No: 142311

Private Sub Form_Initialize
で下の物を呼び出す事で出来ました。
大変有り難う御座いました。

       'アクセス権の取得
       mDIDevM.Acquire


よっしー  2009-08-03 06:06:23  No: 142312

解決報告を忘れてました。


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




  


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