ドラッグ時の画像として使用されるアイテム画像の半透明バージョンを作成します。
#Include <GuiHeader.au3>
_GUICtrlHeader_CreateDragImage($hWnd, $iIndex)
パラメータ
$hWnd | コントロールのハンドル |
$iIndex | ゼロ始まりのアイテムインデックス。アイテムに割り当てられる画像が透明画像のもとになります。 |
返し値
成功: | 新しい画像のみを要素として格納した画像リストのハンドル |
失敗: | 0 |
注意
なし。
関連
_GUICtrlHeader_GetImageList
例
#include <GuiConstantsEx.au3>
#include <GuiHeader.au3>
#include <GuiImageList.au3>
#include <WinAPI.au3>
Opt('MustDeclareVars', 1)
$Debug_HDR = False ; 関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用
_Main()
Func _Main()
Local $hGUI, $hHeader, $hImage, $iMsg, $aSize, $tPos, $tRect, $hDC
; GUIを作成
$hGUI = GUICreate("Header", 400, 300)
$hHeader = _GUICtrlHeader_Create ($hGUI)
GUISetState()
; 列を追加
_GUICtrlHeader_AddItem ($hHeader, "Column 1", 100)
_GUICtrlHeader_AddItem ($hHeader, "Column 2", 100)
_GUICtrlHeader_AddItem ($hHeader, "Column 3", 100)
_GUICtrlHeader_AddItem ($hHeader, "Column 4", 100)
; ドラッグ時画像を作成
$hImage = _GUICtrlHeader_CreateDragImage ($hHeader, 1)
$aSize = _GUIImageList_GetIconSize ($hImage)
$hDC = _WinAPI_GetDC ($hGUI)
; ユーザーがやめるまでカーソル位置にドラッグ時画像を表示
Do
$iMsg = GUIGetMsg()
If $iMsg = $GUI_EVENT_MOUSEMOVE Then
If $tPos <> 0 Then
$tRect = DllStructCreate($tagRECT)
DllStructSetData($tRect, "Left", DllStructGetData($tPos, "X"))
DllStructSetData($tRect, "Top", DllStructGetData($tPos, "Y"))
DllStructSetData($tRect, "Right", DllStructGetData($tPos, "X") + $aSize[0])
DllStructSetData($tRect, "Bottom", DllStructGetData($tPos, "Y") + $aSize[1])
_WinAPI_InvalidateRect ($hGUI, $tRect)
EndIf
$tRect = _WinAPI_GetClientRect ($hGUI)
$tPos = _WinAPI_GetMousePos (True, $hGUI)
If _WinAPI_PtInRect ($tRect, $tPos) Then
_GUIImageList_Draw ($hImage, 0, $hDC, DllStructGetData($tPos, "X"), DllStructGetData($tPos, "Y"))
EndIf
EndIf
Until $iMsg = $GUI_EVENT_CLOSE
EndFunc ;==>_Main