MyEarth Posted March 30, 2015 Posted March 30, 2015 (edited) Maybe i'm miss something, with custom ownerdraw if i want to remove the "selection" of the column and clear all like when you create the listview, how i can do? expandcollapse popup;LarsJ is the author #include <GUIListView.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> Global $hGUI, $hListView Global $nCurCol = -1 Global $iColDef = 0xFFFFFF Global $iColRow = 0xC0C0C0 Global $iColColumn = 0x0000FF ; <<<<<<<<<<<<< column color, how to reset this to 0xFFFFFF $hGUI = GUICreate('Test', 400, 200) $iListView = GUICtrlCreateListView('Items|SubItems', 10, 10, 280, 180, $LVS_REPORT, $WS_EX_CLIENTEDGE) $hListView = GUICtrlGetHandle($iListView) $iButton = GUICtrlCreateButton("Refresh", 300, 25) For $i = 0 To 100 _GUICtrlListView_InsertItem($hListView, 'Item' & $i) _GUICtrlListView_SetItemText($hListView, $i, 'SubItem' & $i, 1) Next GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY') GUISetState() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $iListView $nCurCol = GUICtrlGetState($iListView) _GUICtrlListView_RedrawItems($hListView, 0, 100) Case $iButton ; refresh EndSwitch WEnd Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam) Local $hWndFrom = DllStructGetData($tNMHDR, 'hWndFrom') Local $iCode = DllStructGetData($tNMHDR, 'Code') Switch $hWndFrom Case $hListView Switch $iCode Case $NM_CUSTOMDRAW Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam) Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage") Switch $dwDrawStage ; Holds a value that specifies the drawing stage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW ; Notify the parent window of any item-related drawing operations Case $CDDS_ITEMPREPAINT ; Before painting an item Return $CDRF_NOTIFYSUBITEMDRAW ; Notify the parent window of any subitem-related drawing operations Case BitOR( $CDDS_ITEMPREPAINT, $CDDS_SUBITEM ) ; Before painting a subitem Local $dwItemSpec = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") Local $iSubItem = DllStructGetData($tNMLVCUSTOMDRAW, "iSubItem") Switch $iSubItem Case $nCurCol If $dwItemSpec = 5 Then DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", $iColRow) Else DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", $iColColumn) EndIf Case Else If $dwItemSpec = 5 Then DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", $iColRow) Else DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", $iColDef) EndIf EndSwitch Return $CDRF_NEWFONT EndSwitch EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Edited March 30, 2015 by MyEarth
Solution MyEarth Posted March 30, 2015 Author Solution Posted March 30, 2015 Resetting $nCurCol do the things, thanks anyway but this time i have found the answer by myself
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