JohnBailey Posted November 27, 2007 Posted November 27, 2007 (edited) How do I remove an arrow (possibly with _GUICtrlHeader_SetItemFlags() ) in a column header item. For instance, Windows Explorer has a column with an arrow and I want to remove it. Does this make sense?_GUICtrlHeader_SetItemFlags() basically doesn't have a remove arrow just a draw it in different directions.ANSWERThanks Gary!#439401 Edited November 27, 2007 by JohnBailey A decision is a powerful thing
GaryFrost Posted November 27, 2007 Posted November 27, 2007 How do I remove an arrow (possibly with _GUICtrlHeader_SetItemFlags() ) in a column header item. For instance, Windows Explorer has a column with an arrow and I want to remove it. Does this make sense?_GUICtrlHeader_SetItemFlags() basically doesn't have a remove arrow just a draw it in different directions.I think it would have to be _GUIImageList_Destroy, but not sure you can do that on system control. Might even crash explorer. SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
JohnBailey Posted November 27, 2007 Author Posted November 27, 2007 I think it would have to be _GUIImageList_Destroy, but not sure you can do that on system control. Might even crash explorer.Well, I don't want to destroy the header or the listview. I am just wanting to remove/undraw a drawn arrow. The manual says for the setItemFlag4 - Draws a down arrow on this item8 - Draws a up arrow on this itemIf there is already a drawn arrow (say on column two) and then I want to draw another arrow (say on column one) well I want to remove the previous arrow (so the arrow on column one).SetItemFlag let's me draw an arrow, but doesn't let me remove the arrow. A decision is a powerful thing
GaryFrost Posted November 27, 2007 Posted November 27, 2007 (edited) Well, I don't want to destroy the header or the listview. I am just wanting to remove/undraw a drawn arrow. The manual says for the setItemFlag4 - Draws a down arrow on this item8 - Draws a up arrow on this itemIf there is already a drawn arrow (say on column two) and then I want to draw another arrow (say on column one) well I want to remove the previous arrow (so the arrow on column one).SetItemFlag let's me draw an arrow, but doesn't let me remove the arrow.After a little more research I think you can do what you want with _GUICtrlHeader_SetItemFormat Edited November 27, 2007 by GaryFrost SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
JohnBailey Posted November 27, 2007 Author Posted November 27, 2007 After a little more research I think you can do what you want with _GUICtrlHeader_SetItemFormatNo joke! How? I've been looking through the udf script and don't really understand how A decision is a powerful thing
GaryFrost Posted November 27, 2007 Posted November 27, 2007 expandcollapse popup#include <GuiConstantsEx.au3> #include <GuiHeader.au3> #include <GuiImageList.au3> #include <WinAPI.au3> Opt('MustDeclareVars', 1) $Debug_HDR = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work Global $iMemo _Main() Func _Main() Local $hGUI, $hHeader, $hImage ; Create GUI $hGUI = GUICreate("Header", 400, 300) $hHeader = _GUICtrlHeader_Create ($hGUI) $iMemo = GUICtrlCreateEdit("", 2, 24, 396, 274, 0) GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New") GUISetState() ; Create an image list with images $hImage = _GUIImageList_Create (11, 11) _GUIImageList_Add ($hImage, _WinAPI_CreateSolidBitmap ($hGUI, 0xFF0000, 11, 11)) _GUIImageList_Add ($hImage, _WinAPI_CreateSolidBitmap ($hGUI, 0x00FF00, 11, 11)) _GUIImageList_Add ($hImage, _WinAPI_CreateSolidBitmap ($hGUI, 0x0000FF, 11, 11)) _GUICtrlHeader_SetImageList ($hHeader, $hImage) ; Add columns _GUICtrlHeader_AddItem ($hHeader, "Column 1", 100, 0, 0) _GUICtrlHeader_AddItem ($hHeader, "Column 2", 100, 0, 1) _GUICtrlHeader_AddItem ($hHeader, "Column 3", 100, 0, 2) _GUICtrlHeader_AddItem ($hHeader, "Column 4", 100) ; Set column 1 format _GUICtrlHeader_SetItemFormat ($hHeader, 0, BitOR($HDF_CENTER, $HDF_STRING, $HDF_SORTDOWN)) ; Show column 1 format MemoWrite("Column 1 format: " & "0x" & Hex(_GUICtrlHeader_GetItemFormat ($hHeader, 0))) Sleep(1000) ; Reset column 1 format _GUICtrlHeader_SetItemFormat ($hHeader, 0, BitOR($HDF_LEFT, $HDF_STRING, $HDF_IMAGE)) ; Show column 1 format MemoWrite("Column 1 format: " & "0x" & Hex(_GUICtrlHeader_GetItemFormat ($hHeader, 0))) ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>_Main ; Write a line to the memo control Func MemoWrite($sMessage) GUICtrlSetData($iMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
JohnBailey Posted November 27, 2007 Author Posted November 27, 2007 code removed - see linkGARY YOU ROCK!Thanks !!! I'm just using a blank image list and that seems to do the trick. A decision is a powerful thing
GaryFrost Posted November 27, 2007 Posted November 27, 2007 GARY YOU ROCK! Thanks !!! I'm just using a blank image list and that seems to do the trick. Should be no reason to use a blank image list just use: _GUICtrlHeader_SetItemFormat ($hHeader, 0, BitOR($HDF_LEFT, $HDF_STRING)) that should turn off the arrow SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
JohnBailey Posted November 27, 2007 Author Posted November 27, 2007 Should be no reason to use a blank image list just use: _GUICtrlHeader_SetItemFormat ($hHeader, 0, BitOR($HDF_LEFT, $HDF_STRING)) that should turn off the arrow Works better than the blank image! Thanks I didn't know that it could be done this way. A decision is a powerful thing
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now