すみませんが、また教えて下さい。
フォームのボタンとか×ボタンを押さないで、フォーム以外の何かをクリックした時にフォームを閉じるにはどうすれば良いでしょうか?
フォームは最前面に表示する様にしています。
クリックする場所は、規定出来ません。スタートボタンであったり、
既に表示されているエクスプローラーだったり、タスクバーであったりします。
宜しくお願いします。
すみません。VB6での話です。あちこち調べているのですが、なさそうなので、今の所、タイマーで3秒後に何も操作が無ければ、ユーザーフォームを閉じる様にしようかと、それとマウスムーブを見て3秒閉をキャンセルする。
これだと自分で作れそうです。
もっと簡単に出来る方法があれば教えて下さい。
フォーム以外の何か のうちマウスクリックイベントがあるものすべての
マウスクリックプロシージャに「フォームを閉じる」コードを追加する。
DirectInput を試してみてください。
別アプリの上でのキーボード/マウス操作も捕らえることができます。
http://www.geocities.co.jp/SiliconValley/7406/tips/mouse/mouse2.html
フォームのLostFocusイベントではダメなんでしょうか?
※ 未確認です。
以上。
皆さんご回答有り難う御座います。
他のやりたい事も全て叶えてくれる方法
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
> 起動した時から、このフォーム上のmouseと言うボタンを押さないで
> マウスの追跡を行う様にするにはどうすれば良いか教えて貰えませんか。
「Mouse チェックボックスが押されたときに実行されるコード」を、
Form の Load イベントの最後に組み込めばよいかと。
> Sub chk_Mouse_Clickを一度コールすればいいのか?
ただ呼ぶだけだと、「Select Case chk_Mouse.Value」の部分の判定を
通過できませんよね。Sub chk_Mouse_Click を呼ぶのではなく、その中にある
「アクセス権を取得するためのコード」の部分だけを呼び出せば OK です。
Private Sub Form_Initialize
で下の物を呼び出す事で出来ました。
大変有り難う御座いました。
'アクセス権の取得
mDIDevM.Acquire
解決報告を忘れてました。
編集 削除