I have a Tree with TVS_CHECKBOXES.
Is it possible to know if CHECKBOX is ON or OFF ( without use :Cargo ) ?
Regards Maurizio
Tree with check
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Maurizio,
MsgInfo( TVIsChecked( oTree:hWnd, oTVItem:hItem ) )
Code: Select all
HB_FUNC( TVISCHECKED ) // hTreeView, hItem
{
hb_retl( TreeView_GetCheckState( ( HWND ) hb_parnl( 1 ), ( HTREEITEM ) hb_parnl( 2 ) ) );
}
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Maurizio,
Code: Select all
HB_FUNC( TVSETCHECK ) // hTreeView, hItem, lOnOff
{
hb_retl( TreeView_SetCheckState( ( HWND ) hb_parnl( 1 ), ( HTREEITEM ) hb_parnl( 2 ), hb_parl( 3 ) ) );
}
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Olá Maurizio,
Tente Isto: Mude em \fwh\source\classes\TTREEVIE.PRG
e isto
Use assim:
Abraços,
Rossine.
Tente Isto: Mude em \fwh\source\classes\TTREEVIE.PRG
Code: Select all
...
METHOD SetCheck( nIt, lFlag ) INLINE TVSetCheck( ::hWnd, nIt, lFlag )
METHOD IsChecked( nIt ) INLINE TVIsChecked( ::hWnd, nIt )
...
Code: Select all
#pragma BEGINDUMP
#include "windows.h"
#include "commctrl.h"
#include "hbapi.h"
HB_FUNC( TVSETCHECK ) // hTreeView, hItem, lOnOff
{
TVITEM tvItem;
HWND hWnd = ( HWND ) hb_parnl( 1 );
HTREEITEM hItem = ( HTREEITEM ) hb_parnl( 2 );
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
/*
Since state images are one-based, 1 in this macro turns the check off,
and
2 turns it on.
*/
tvItem.state = INDEXTOSTATEIMAGEMASK(( hb_parl( 3 ) ? 2 : 1));
hb_retl( ( BOOL ) TreeView_SetItem( ( HWND ) hb_parnl( 1 ), &tvItem ) );
}
HB_FUNC( TVISCHECKED ) // hTreeView, hItem
{
TVITEM tvItem;
HWND hWnd = ( HWND ) hb_parnl( 1 );
HTREEITEM hItem = ( HTREEITEM ) hb_parnl( 2 );
// Prepare to receive the desired information.
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Request the information.
hb_retl( ( BOOL ) TreeView_GetItem( ( HWND ) hb_parnl( 1 ), &tvItem ) );
// Return zero if it's not checked, or nonzero otherwise.
hb_retl( (BOOL) (tvItem.state >> 12) -1 ) ;
}
#pragma ENDDUMP
Use assim:
Code: Select all
Para Setar o status:
oTree:SetCheck( oItem:hItem, .F. ) && Uncheck
ou
oTree:SetCheck( oItem:hItem, .T. ) && check
Para Ler o status:
msgstop( oTree:IsChecked( oItem:hItem ) )
Rossine.