// JP opened flex table

Click to See Complete Forum and Search --> : Fix to Shilpa's article on Set focus on cell(ListView control)


Shilpa Shamapant
April 28th, 1998, 11:18 AM
This is the code for one of the functions used in the article.


int CMyListCtrl::GetRowColumnIndex(CPoint& point, int*col) const

{

int colnum = 0;

int row = HitTest( point, NULL );

if( col ) *col = 0;

// Make sure that the ListView is in LVS_REPORT

if( (GetWindowLong(m_hWnd, GWL_STYLE) & LVS_TYPEMASK) != LVS_REPORT )

return row;

//in case the hit test returns -1, loop through all the

// rows to get the correct column

row = GetTopIndex();

int bottom = row + GetCountPerPage();

if(bottom > GetItemCount())

bottom = GetItemCount();

// Get the number of columns

CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0);

int nColumnCount = pHeader->GetItemCount();

//Loop through the visible rows

for(;row <= bottom; row++)

{

// Get bounding rect of item and check whether point falls in it.

CRect rect;

GetItemRect( row, &rect, LVIR_BOUNDS );

if( rect.PtInRect(point) )

{

// Now find the column

for( colnum = 0; colnum = rect.left

&& point.x <= (rect.left + colwidth ) )

{

if( col ) *col = colnum;

return row;

}

rect.left += colwidth;

}

}

}

return -1;

}




Set Focus on a cell

//JP added flex table