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

投稿日: 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


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

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

- VBレスキュー(花ちゃん) - - Web Forum -