コンボボックスのF4キーによるDropDown禁止 <TOP>
通常、コンボボックスはF4キーでドロップダウンしますが、それを禁止します。
SendMessage ウィンドウにメッセージを送信
CB_SETEXTENDEDUI
デフォルトまたは拡張のユーザーインターフェイスを設定
左:F4キーでドロップダウン 右:ドロップダウン禁止(▼クリックでドロップダウン)
'================================================================
'= コンボボックスのF4キーによるドロップダウン禁止
'================================================================
#include "Windows.bi"
' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
#define CB_GETEXTENDEDUI &H156 'コンボボックスが拡張インターフェイスを持つかどうかを判断する
#define CB_SETEXTENDEDUI &H155 'デフォルトまたは拡張のユーザーインターフェイスを設定する
Var Shared Combo1 As Object
Var Shared Check1 As Object
Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14
Check1.Attach GetDlgItem("Check1")
'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
For i% = 1 To 12
Combo1.AddString Str$(i%)
Next
Combo1.SetFocus
End Sub
'================================================================
'=
'================================================================
Declare Sub Check1_on edecl ()
Sub Check1_on()
Var Ret As Long
If Check1.GetCheck Then
Ret = Api_SendMessage(Combo1.GethWnd, CB_SETEXTENDEDUI, 1, 0)
Else
Ret = Api_SendMessage(Combo1.GethWnd, CB_SETEXTENDEDUI, 0, 0)
End If
Combo1.SetFocus
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End