CListCtrl::GetItemRect
Recupera il rettangolo di delimitazione di tutto o parte di un elemento nella visualizzazione corrente.
BOOL GetItemRect(
int nItem,
LPRECT lpRect,
UINT nCode
) const;
Parametri
nItem
Indice dell'elemento di cui il percorso deve essere recuperata.lpRect
Indirizzo di una struttura RECT che riceve il rettangolo di delimitazione.nCode
Parte della voce della visualizzazione elenco per il quale recuperare il rettangolo di delimitazione. Può essere uno dei valori seguenti:LVIR_BOUNDS restituisce il rettangolo di delimitazione dell'intero elemento, inclusi l'icona e l'etichetta.
LVIR_ICON restituisce il rettangolo di delimitazione dell'icona o di piccola icona.
LVIR_LABEL restituisce il rettangolo di delimitazione di testo elemento.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario zero.
Esempio
// OnClick is the handler for the NM_CLICK notification
void CListCtrlDlg::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
UNREFERENCED_PARAMETER(pResult);
LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
// Get the current mouse location and convert it to client
// coordinates.
CPoint pos( ::GetMessagePos() );
ScreenToClient(&pos);
// Get indexes of the first and last visible items in
// the listview control.
int index = m_myListCtrl.GetTopIndex();
int last_visible_index = index + m_myListCtrl.GetCountPerPage();
if (last_visible_index > m_myListCtrl.GetItemCount())
last_visible_index = m_myListCtrl.GetItemCount();
// Loop until number visible items has been reached.
while (index <= last_visible_index)
{
// Get the bounding rectangle of an item. If the mouse
// location is within the bounding rectangle of the item,
// you know you have found the item that was being clicked.
CRect r;
m_myListCtrl.GetItemRect(index, &r, LVIR_BOUNDS);
if (r.PtInRect(pia->ptAction))
{
UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
m_myListCtrl.SetItemState(index, flag, flag);
break;
}
// Get the next item in listview control.
index++;
}
}
Requisiti
Header: afxcmn.h