关于ClistCtrl响应鼠标左右键有关问题
关于ClistCtrl响应鼠标左右键问题
对话框OnInitDialog()里
m_List.InsertColumn(0, _T("File Name"), LVCFMT_LEFT, 250);
m_List.InsertColumn(1, _T("action"), LVCFMT_LEFT, 100);
m_List.InsertColumn(2, _T("close"), LVCFMT_LEFT, 75);
m_List.InsertItem(0, _T("0"));
m_List.SetItemText(0, 1, _T("do"));
m_List.SetItemText(0, 2, _T("delete"));
继承类
void CMyListCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
NM_LISTVIEW* pNMListView = reinterpret_cast <LPNMLISTVIEW>(pNMHDR);
int pv = pNMListView->iItem;
if (pNMListView->iItem != -1)
{
TRACE("This item is %d\n",pNMListView->iItem );
}
}
为什么点第一列的前半部分才会TRACE,点第一列后半部分和第二第三列没反映pNMListView->iItem = -1;
------解决方案--------------------
你在
对话框OnInitDialog()里
m_List.InsertColumn(0, _T("File Name"), LVCFMT_LEFT, 250);
m_List.InsertColumn(1, _T("action"), LVCFMT_LEFT, 100);
m_List.InsertColumn(2, _T("close"), LVCFMT_LEFT, 75);
m_List.InsertItem(0, _T("0"));
m_List.SetItemText(0, 1, _T("do"));
m_List.SetItemText(0, 2, _T("delete"));
继承类
void CMyListCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
NM_LISTVIEW* pNMListView = reinterpret_cast <LPNMLISTVIEW>(pNMHDR);
int pv = pNMListView->iItem;
if (pNMListView->iItem != -1)
{
TRACE("This item is %d\n",pNMListView->iItem );
}
}
为什么点第一列的前半部分才会TRACE,点第一列后半部分和第二第三列没反映pNMListView->iItem = -1;
------解决方案--------------------
你在
- C/C++ code
OnInitDialog() 里面添加一个样式 m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT )
------解决方案--------------------
看起来没什么问题啊,我也是这么做的