投稿日 | : 2005/01/27(Thu) 15:54 |
投稿者 | : ジム |
Eメール | : |
URL | : |
タイトル | : コンボBOXを禁止にすると解除されてしまいます |
毎回ありがとうございます。
プログレスバーのせいではありませんでした。間違いです。コンボBOXをFalseにすると解除
されてしまうようです。Command3_Click() 内の記述
Option Explicit 'SampleNo=104 WindowsXP VB6.0(SP5) 2002.05.19
'マウスカーソルの移動範囲を制限する(P384)
Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
'クライアント座標からスクリーン座標に交換する(P514)
Private Declare Function ClientToScreen Lib "user32" _
(ByVal hwnd As Long, lpPoint As POINTAPI) As Long
'マウスカーソの移動範囲取得する(P386)
Private Declare Function GetClipCursor Lib "user32" (lprc As RECT) As Long
'カーソルを表示・非表示にする(P390)
'0以上の時表示 0未満の時非表示
Private Declare Function ShowCursor Lib "user32" _
(ByVal bShow As Long) As Long
'座標の構造体
Private Type POINTAPI
X As Long
y As Long
End Type
'移動範囲の構造体
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private LookOff As RECT '構造体用変数
Private Sub Form_Load()
'初期値の取得
GetClipCursor LookOff
Timer1.Interval = 100
End Sub
Private Sub Command1_Click()
'マウスカーソルの移動範囲を制限し、非表示に
Dim MoLook As RECT
Dim LookPo As POINTAPI
ClientToScreen Me.hwnd, LookPo
'移動範囲を設定(何も貼り付けていない所)
MoLook.Left = LookPo.X
MoLook.Top = LookPo.y + 20
MoLook.Right = LookPo.X + 300
MoLook.Bottom = LookPo.y + 300
'マウスカーソルを非表示
' sMouseVisible False
'マウスカーソルをロック
ClipCursor MoLook
End Sub
Private Sub Command2_Click()
'マウスカーソルの移動範囲を解除し、表示する
'マウスカーソルのロック解除
ClipCursor LookOff
'マウスカーソルを表示
' sMouseVisible True
End Sub
Private Sub Form_Unload(Cancel As Integer)
'念のため終了時に初期値に戻す。
ClipCursor LookOff
sMouseVisible True
Unload Me
End Sub
Private Sub sMouseVisible(ByVal MoOnOff As Boolean)
'マウスカーソル表示・非表示用プロシージャ
'マウスの表示・非表示の設定
Dim flglook As Boolean
Dim ret As Long
flglook = MoOnOff
' ret = ShowCursor(flglook)
'カウント過剰UPの防止
Do While ret <> flglook
If ret < -1 Then
flglook = True
ElseIf ret > 0 Then
flglook = False
End If
ret = ShowCursor(flglook)
Loop
End Sub
Private Sub Command3_Click()
Dim i As Integer
Combo1.Enabled = False ' コンボ BOX を操作禁止にする。
ProgressBar1.Max = 30
ProgressBar1.Min = 0
Timer1.Enabled = True
For i = 0 To 30
ProgressBar1.Value = i
Do Until Timer1.Enabled = False
DoEvents
Loop
Timer1.Enabled = True
Next i
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
End Sub