リストボックスをフローティング表示 <TOP>
リストボックスをマウスで移動させることができます。
SetWindowLong ウインドウのスタイルなどの情報を設定
GetWindowLong ウインドウのスタイルなどの情報を取得
SetWindowText ウインドウのタイトルを変更
'================================================================ '= リストボックスをフローティング表示
'= (FloatListBox.bas) '================================================================ #include "Windows.bi" 'ウインドウのスタイルなどの情報を設定 Declare Function Api_SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&) 'ウインドウのスタイルなどの情報を取得 Declare Function Api_GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hWnd&, ByVal nIndex&) 'ウインドウのタイトルを変更 Declare Function Api_SetWindowText& Lib "user32" Alias "SetWindowTextA" (ByVal hWnd&, ByVal lpstring$) #define WS_CAPTION &HC00000 'WS_BORDER Or WS_DLGFRAME #define WS_THICKFRAME &H40000 'サイズ変更境界を持つウィンドウを作成する #define WS_EX_TOOLWINDOW &H80 'ツールウィンドウを作成 #define GWL_STYLE (-16) 'ウィンドウスタイルを取得 Var Shared List1 As Object
List1.Attach GetDlgItem("List1") : List1.SetFontSize 14
'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
Var Ret As Long
Var LB_STYLE As Long
LB_STYLE = Api_GetWindowLong(List1.GethWnd, GWL_STYLE)
LB_STYLE = LB_STYLE Or WS_EX_TOOLWINDOW
Ret = Api_SetWindowLong(List1.GethWnd, GWL_STYLE, LB_STYLE)
LB_STYLE = Api_GetWindowLong(List1.GethWnd, GWL_STYLE)
LB_STYLE = LB_STYLE Or WS_CAPTION Or WS_THICKFRAME
Ret = Api_SetWindowLong(List1.GethWnd, GWL_STYLE, LB_STYLE)
Ret = Api_SetWindowText(List1.GethWnd, "拡張ListBox")
List1.ResetContent
For i = 0 To 19
List1.AddString Trim$(Str$(i))
Next
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End