void CMyClass::OnClickLVSheets(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO:
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
m_lv_sheets.ScreenToClient(&point);//m_lv_sheets为CListCtrl的变量
LVHITTESTINFO lvinfo;
lvinfo.pt = point;
lvinfo.flags = LVHT_ABOVE;
UINT nFlag;
int nItem = m_lv_sheets.HitTest(point, &nFlag);
nItem = m_lv_sheets.SubItemHitTest(&lvinfo);
int iCurrentItem = lvinfo.iItem;
//处理Shift + lButtonDown事件
if(GetKeyState(VK_SHIFT) < 0) // the Shift Key been pressed.
{
VC6.0--CListCtrl中的NM_CLICK事件(CheckBox通过Shift与鼠标左键实现多选)
最新推荐文章于 2024-01-06 15:19:36 发布
这篇博客介绍了如何在VC6.0中使用CListCtrl处理NM_CLICK事件,实现通过Shift键和鼠标左键进行多选的功能。文章详细讲解了代码逻辑,包括检查Shift键状态、设置CheckBox选中状态以及处理不在Item上的点击情况。在处理过程中,博主发现并解决了CheckBox状态未更新的问题,并提醒注意当iCurrentItem为-1时,GetCheck的特殊返回值。

最低0.47元/天 解锁文章
928

被折叠的 条评论
为什么被折叠?



