CView::OnLButtonDown(nFlags, point)有什么用
voidCDrawDemoView::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandler...
void CDrawDemoView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//判断鼠标是否在画图区域,如果不在直接返回
if( point.x<m_rtMapRect.left ||
point.x>m_rtMapRect.right ||
point.y<m_rtMapRect.top ||
point.y>m_rtMapRect.bottom)
return;
m_bSelecting=TRUE;
m_nEndX=m_nStartX=point.x;
m_nEndY=m_nStartY=point.y;
m_nStartGridX=(point.x-m_rtMapRect.left)/m_nGridWidth;
m_nStartGridY=(point.y-m_rtMapRect.top)/m_nGridWidth;
SetCapture();
if(!m_bOpNull) //判断是否在画图形
SetCursor(m_csCross); //把鼠标设为十字
CRect crect=m_rtMapRect;
ClientToScreen(&crect); //Api 这个是将客户区坐标变换为屏幕坐标(可以在整个crect屏幕操作)
ClipCursor(&crect); //Api 该函数把光标限制在屏幕上的一个矩形区域内
CView::OnLButtonDown(nFlags, point); //不知道什么用,我去掉后貌似也没有错误
} 展开
{
// TODO: Add your message handler code here and/or call default
//判断鼠标是否在画图区域,如果不在直接返回
if( point.x<m_rtMapRect.left ||
point.x>m_rtMapRect.right ||
point.y<m_rtMapRect.top ||
point.y>m_rtMapRect.bottom)
return;
m_bSelecting=TRUE;
m_nEndX=m_nStartX=point.x;
m_nEndY=m_nStartY=point.y;
m_nStartGridX=(point.x-m_rtMapRect.left)/m_nGridWidth;
m_nStartGridY=(point.y-m_rtMapRect.top)/m_nGridWidth;
SetCapture();
if(!m_bOpNull) //判断是否在画图形
SetCursor(m_csCross); //把鼠标设为十字
CRect crect=m_rtMapRect;
ClientToScreen(&crect); //Api 这个是将客户区坐标变换为屏幕坐标(可以在整个crect屏幕操作)
ClipCursor(&crect); //Api 该函数把光标限制在屏幕上的一个矩形区域内
CView::OnLButtonDown(nFlags, point); //不知道什么用,我去掉后貌似也没有错误
} 展开
4个回答
展开全部
CDrawDemoView类是从CView继承类,在CView的派生类CDrawDemoView中使用过(UINT nFlags, CPoint point)等参数后,系统要将他们返回会基类,如果改变参数的内容基类将无法得到这些参数,对这个函数没影响是由于没调用他的积累函数,如果调用基类函数并且使用这两个返回的参数,就有可能错误。所以这个函数尽量不要改变参数的值,但是可以使用。
如果注释了CView::OnLButtonDown(nFlags, point); 后果就是当有WM_LBUTTONDOWN消息的时候它只会执行MessageBox("View Clicked!"); 而系统一些默认下的LBUTTONDOWN操作不会被执行,如果了解switch语句的话,应该知道它有个default,CView::OnLButtonDown(nFlags, point);和default性质一样,它把处理过的WM_LBUTTONDOWN消息传递给那些还能处理这样消息的处理函数。
如果注释了CView::OnLButtonDown(nFlags, point); 后果就是当有WM_LBUTTONDOWN消息的时候它只会执行MessageBox("View Clicked!"); 而系统一些默认下的LBUTTONDOWN操作不会被执行,如果了解switch语句的话,应该知道它有个default,CView::OnLButtonDown(nFlags, point);和default性质一样,它把处理过的WM_LBUTTONDOWN消息传递给那些还能处理这样消息的处理函数。
展开全部
CDrawDemoView类是从CView继承类,在CView的派生类CDrawDemoView中使用过(UINT nFlags, CPoint point)等参数后,系统要将他们返回会基类,如果你改变参数的内容基类将无法得到这些参数,对这个函数没影响是由于你没调用他的积累函数,如果你调用基类函数并且使用这两个返回的参数,就有可能错误。所以这个函数尽量不要改变参数的值,但是可以使用
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-08-03
展开全部
响应鼠标左键按下的消息,最后一句不可以去掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后一句不要删除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询