CListCtrl Spaltenindex der Zelle
-
Hi,
kann mir jemand sagen, wie man an den Spaltenindex der geklickten Zelle herankommt? Bis jetzt steht der zweite Parameter in GetItemText()fest auf 0 oder 1 usw, es soll aber gerne der Inhalt der Zelle zurückgegeben werden, die angeklickt wurde.
Hab schon mit pNMLV->isubItem als zweiten Parameter rumprobiert. Klick ich auf eine Zelle in Spalte 2, kommt nichts zurück.
Irgendwie passt die HDITEM-Struktur nicht zu getItemText().
Hab weiter unten im Code sogar den Text des Spaltenkopfes mit hc->GetItem(pNMLV->iSubItem, &hdi) geholt. Aber der Spaltenindex der geklickten Tabellenzelle, will nicht. Probier schon Stunden rum ... Schlimm!
Logisch wäre doch, dass pNMLV ne 2-dim. koordinate enthält - und fertig.
Soweit das hier:void CDlg2::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST1); CString itemText = pListCtrl->GetItemText(pNMLV->iItem, ?????); ...
Vielleicht hat jemand einen Tipp, kann ja nicht so wild sein.
Gruss
koreson
-
'nabend
Keiner nen Tipp - alle aushäusig ?
Habs eben selbst rausgetüftelt.[cpp]
void CDlg2::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST1);
pListCtrl->SetExtendedStyle(LVS_EX_FULLROWSELECT);
//Spaltenindex der geklickten Zelle
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMLV; <- funzt !
int nColumn = pNMListView->iSubItem;
//Zelleninhalt holen
CString itemText = pListCtrl->GetItemText(pNMLV->iItem, nColumn);
...
[/cpp]gruss
koreson