BEGIN_MESSAGE_MAP(CHexCtrl, CListCtrl)
//{{AFX_MSG_MAP(CHexCtrl)
ON_NOTIFY_REFLECT(LVN_ITEMCHANGING, OnItemchanging)
ON_WM_ERASEBKGND()
ON_NOTIFY_REFLECT(NM_CLICK, OnClick)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()void CHexCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_bBeginSel = FALSE;
ReleaseCapture();
*pResult = 0;
}void CHexCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_bBeginSel = TRUE;
CWnd* pWnd = SetCapture();
LVHITTESTINFO lvhit;
lvhit.pt = point;
int item = SubItemHitTest(&lvhit);
if (item != -1 && (lvhit.flags & LVHT_ONITEM))
{
int subitem = lvhit.iSubItem;
if (subitem > 0 && subitem < 17)
{
m_nBeginItem = MAKELONG(subitem, item);
m_nEndItem = m_nBeginItem;
}
}
Invalidate();
CListCtrl::OnLButtonDown(nFlags, point);
}void CHexCtrl::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CListCtrl::OnMouseMove(nFlags, point); if (m_bBeginSel)
{
LVHITTESTINFO lvhit;
lvhit.pt = point;
int item = SubItemHitTest(&lvhit);
if (item != -1 && (lvhit.flags & LVHT_ONITEM))
{
int subItem = lvhit.iSubItem;
int id = MAKELONG(subItem, item);
if (id == m_nEndItem)
return;
if (subItem > 0 && subItem < 17)
{
m_nEndItem = id;
//TRACE("%08X~%08X", min(m_nBeginItem,m_nEndItem), max(m_nBeginItem,m_nEndItem));
CRect rcSubItem;
GetItemRect(item, rcSubItem, LVIR_BOUNDS);
//InvalidateRect(&rcSubItem);
Invalidate();
}
}
}
}void CHexCtrl::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_bBeginSel = FALSE;
ReleaseCapture();
CListCtrl::OnLButtonUp(nFlags, point);
}
class CHexCtrl : public CListCtrl以上代码发现,当鼠标按下,按出List,放开鼠标,OnLButtonUp并不响应,何解?
还有发现当鼠标快速点击,OnLButtonUp也不响应,而响应了OnClick,这又何解?
解决方案 »
- 年底散分100 祝:新年快乐,万事如意,工作顺利!
- 无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!
- 如何知道消息是哪一个线程发送给自己的?也许没有答案
- 请问使用Select模型与直接使用CAsynSocket自带的接收、发送、连接事件有什么区别?
- 把 24位转化为灰度图,显示图像出现倾斜?
- CTabCtrl 的疑惑。。。。各位大哥救命呀。。。
- 怎样取系统硬件的序列号?
- 为什么CreateThread不能用?
- 把一个dialog关联到CView类中的步骤是什么?
- 如果看不到"我的参与"和"我的问题"等栏目,你参与一下便又可以看到了
- 如何在客户端程序里添加显示与服务器的网络连接延时 MS
- 关于剪贴板EmptyClipboard
有专门的VC版