MFC程序中,如何真正的实现在当前屏幕上通过鼠标点击和移动一段距离后鼠标释放两个动作画一条线?

我消息处理的程序是这样写的。//CmultiView消息处理程序voidCmultiView::OnLButtonDown(UINTnFlags,CPointpoint)... 我消息处理的程序是这样写的。
// CmultiView 消息处理程序

void CmultiView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

m_prpoint=m_endpoint=point;
flags=false;
CView::OnLButtonDown(nFlags, point);

}

void CmultiView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(flags)
{
CWindowDC pDC(GetDesktopWindow());
pDC.MoveTo(m_prpoint);
pDC.LineTo(m_endpoint);
m_endpoint=point;
pDC.MoveTo(m_prpoint);
pDC.LineTo(m_endpoint);

// ReleaseDC(pDC);
}

CView::OnMouseMove(nFlags, point);
}

void CmultiView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

// CDC* pDC=GetDC();

CWindowDC pDC(GetDesktopWindow());
pDC.MoveTo(m_prpoint);
pDC.LineTo(m_endpoint);
m_endpoint=point;
pDC.MoveTo(m_prpoint);
pDC.LineTo(m_endpoint);
//ReleaseDC(pDC);
ReleaseCapture();

flags=false;
CView::OnLButtonUp(nFlags, point);

}

CWindowDC dc(GetDesktopWindow());不是获取屏幕窗口吗?但是画直线的时候我只能在窗口中获取鼠标焦点,但是线是在窗口之外。可是我还是没有办法在桌面上画图(一点当前电脑屏幕,程序就失去焦点了,根本画不了图),怎么才能真正的在屏幕上上画图呢?就是说我在当前电脑屏幕上的任意一点按下左键,然后在屏幕上上的另一点释放左键,然后就在这两点之间画一条直线,而不是在窗口里面点击和释放。
能在屏幕上鼠标移动画直线,画圆,椭圆,矩形等图形应该就是异曲同工,但是我现在完成不了真正的屏幕移动画线,我刚自学MFC,在CSDN上搜索这个问题,我都没有得到我想要的答案,希望你能给我点指导。谢谢
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
百度网友ddcd389
2012-06-19
知道答主
回答量:5
采纳率:0%
帮助的人:3.3万
展开全部
加qq2389645672 我给你发过去
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式