Código: Seleccionar todo
Func _WM_NOTIFY($hWndGUI, $MsgID, $iwParam, $ilParam)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$idFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $iCode
Case $NM_CLICK
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $iIndex = DllStructGetData($tInfo, "Index")
Switch $idFrom
Case $hListViewBuscar
If _GUICtrlListView_GetItemChecked($hListViewBuscar, $iIndex) Then MsgBox(0, "", "")
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_NOTIFY
Lo que veo que hace es que cuando hago click en el checkbox para tildarlo, el evento _GUICtrlListView_GetItemChecked lo ejecuta antes de que el checkbox se habilite, no se como explicarlo.
Si hago click en un checkbox (que no esta tildado) para activarlo, el evento no lo hace. Ahora si vuelvo a hacer clic en un checkbox para desactivarlo, el evento si lo ejecuta porque cuando comprueba _GUICtrlListView_GetItemChecked es verdad, el item estaba activado.
Si usan
Código: Seleccionar todo
If Not _GUICtrlListView_GetItemChecked($hListViewBuscar, $iIndex) Then MsgBox(0, "", "")
EDITO
Bueno ya encontre la forma, es con $LVN_ITEMCHANGED :). Esto por ahora ayuda, pero captura todo los cambios del item, si lo focuseo, si se le va el foco, etc etc, sirve, pero lo que me gustaria es que se active solo si checkeo el item, no si lo seleciono, focuseo, etc,etc, es un cargo de memoria de gusto.
Aprovechando la pregunta, lo que quiero hacer es que si hay algun item activo, se active el boton "Eliminar", si no hay ninguno que se bloquee. Eso es facil, el problema viene en el momento de decirle dentro de "_WM_NOTIFY" que tiene que bloquear X boton, tengo que declarar como Global la variable del boton para desactivarlo dentro de _WM_NOTIFY o puedo devolver un valor para que al funcion del GUI, bloquee el boton?