ヘッダーコントロールを削除します。
#Include <GuiHeader.au3>
_GUICtrlHeader_Destroy(ByRef $hWnd)
パラメータ
$hWnd | コントロールのハンドル |
返し値
成功: | True、ハンドルが0に設定されます |
失敗: | False |
注意
_GUICtrlHeader_Createで作成されたヘッダーコントロールにのみ使用可能です。
関連
_GUICtrlHeader_Create
例
#include <GuiConstantsEx.au3>
#include <GuiHeader.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
$Debug_HDR = False ; 関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用
Global $hHeader
_Main()
Func _Main()
Local $hGUI
; GUIを作成
$hGUI = GUICreate("Header", 400, 300)
$hHeader = _GUICtrlHeader_Create($hGUI)
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
; 列を追加
_GUICtrlHeader_AddItem($hHeader, "Column 1", 100)
_GUICtrlHeader_AddItem($hHeader, "Column 2", 100)
_GUICtrlHeader_AddItem($hHeader, "Column 3", 100)
_GUICtrlHeader_AddItem($hHeader, "Column 4", 100)
; 全フィルタをクリア
_GUICtrlHeader_ClearFilterAll($hHeader)
MsgBox(4096, "Information", "About to Destroy Header")
_GUICtrlHeader_Destroy($hHeader)
; ユーザーが終了するまでループ
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode
Local $tNMHDR, $tNMHEADER, $tNMHDFILTERBTNCLICK, $tNMHDDISPINFO
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hHeader
Switch $iCode
Case $HDN_BEGINDRAG ; ヘッダーコントロールアイテムの1つがドラッグ操作された際に送信される
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_BEGINDRAG" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
Return False ; ヘッダーコントロールがドラッグ&ドロップ操作を自動管理するよう許可
;~ Return True ; 外部の(手動)ドラッグ&ドロップ管理によってコントロールのオーナーに
; ドラッグ&ドロップ処理の一部に独自機能追加の許可をしていることを表す
Case $HDN_BEGINTRACK, $HDN_BEGINTRACKW ; ヘッダーコントロールの親ウィンドウにユーザーがコントロールのディバイダーをドラッグしていることを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_BEGINTRACK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
Return False ; ディバイダーのトラッキングを許可
;~ Return True ; トラッキングをさせない
Case $HDN_DIVIDERDBLCLICK, $HDN_DIVIDERDBLCLICKW ; ヘッダーコントロールの親ウィンドウにユーザーがコントロールのディバイダー領域をダブルクリックしていることを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_DIVIDERDBLCLICK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
; 返し値なし
Case $HDN_ENDDRAG ; ヘッダーコントロールアイテムのドラッグ操作が終わった際に送信される
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_ENDDRAG" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
Return False ; コントロールにアイテムの自動配置と自動並べ替えを許可
;~ Return True ; アイテムの配置をさせない
Case $HDN_ENDTRACK, $HDN_ENDTRACKW ; ヘッダーコントロールの親ウィンドウにユーザーがディバイダーのドラッグをやめたことを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_ENDTRACK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
; 返し値なし
Case $HDN_FILTERBTNCLICK ; ヘッダーコントロールの親ウィンドウにフィルターボタンがクリックされたことを通知。または$HDM_SETITEM メッセージに反応
$tNMHDFILTERBTNCLICK = DllStructCreate($tagNMHDFILTERBTNCLICK, $ilParam)
_DebugPrint("$HDN_FILTERBTNCLICK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Item") & @LF & _
"-->Left:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Left") & @LF & _
"-->Top:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Top") & @LF & _
"-->Right:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Right") & @LF & _
"-->Bottom:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Bottom"))
;~ Return True ; ヘッダーコントロールの親ウィンドウに$HDN_FILTERCHANGE通知が送信される
; この通知によって親ウィンドウはそのユーザーインターフェイスの要素の同期が可能になる
Return False ; 通知を送信したくない場合
Case $HDN_FILTERCHANGE ; ヘッダーコントロールの親ウィンドウにヘッダーコントロールフィルターの属性が変更あるいは編集されたことを通知。
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_FILTERCHANGE" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
; 返し値なし
Case $HDN_GETDISPINFO, $HDN_GETDISPINFOW ; コントロールがコールバックヘッダーアイテムの情報が必要な場合にヘッダーコントロールのオーナーに送信される
$tNMHDDISPINFO = DllStructCreate($tagNMHDDISPINFO, $ilParam)
_DebugPrint("$HDN_GETDISPINFO" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHDDISPINFO, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHDDISPINFO, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHDDISPINFO, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHDDISPINFO, "Item"))
;~ Return LRESULT
Case $HDN_ITEMCHANGED, $HDN_ITEMCHANGEDW ; ヘッダーコントロールの親ウィンドウにヘッダーアイテムの属性が変更したことを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_ITEMCHANGED" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
; 返し値なし
Case $HDN_ITEMCHANGING, $HDN_ITEMCHANGINGW ; ヘッダーコントロールの親ウィンドウにヘッダーアイテムの属性が変更中であることを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_ITEMCHANGING" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
Return False ; 変更を許可
;~ Return True ; 変更をさせない
Case $HDN_ITEMCLICK, $HDN_ITEMCLICKW ; ヘッダーコントロールの親ウィンドウにユーザーがコントロールをクリックしたことを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_ITEMCLICK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
; 返し値なし
Case $HDN_ITEMDBLCLICK, $HDN_ITEMDBLCLICKW ; ヘッダーコントロールの親ウィンドウにユーザーがコントロールをダブルクリックしたことを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_ITEMDBLCLICK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
; 返し値なし
Case $HDN_TRACK, $HDN_TRACKW ; ヘッダーコントロールの親ウィンドウにユーザーがヘッダーコントロールのディバイダーをドラッグ中であることを通知
$tNMHEADER = DllStructCreate($tagNMHEADER, $ilParam)
_DebugPrint("$HDN_TRACK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @LF & _
"-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @LF & _
"-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @LF & _
"-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @LF & _
"-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button"))
Return False ; ディバイダーのトラッキングを継続
;~ Return True ; トラッキングを終了
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _DebugPrint($s_text, $line = @ScriptLineNumber)
ConsoleWrite( _
"!===========================================================" & @LF & _
"+======================================================" & @LF & _
"-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
"+======================================================" & @LF)
EndFunc ;==>_DebugPrint