MFC 画线
▲ 连续划线
// 鼠标是否按下标志 点位变量
private:
// 是否按下
bool m_isPress;
// 存点数据
CPoint m_myPoint;
消息:
BEGIN_MESSAGE_MAP(CMFCApplication1View, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
ON_WM_LBUTTONDOWN() // 左键按下
ON_WM_LBUTTONUP() // 左键抬起
ON_WM_MOUSEMOVE() // 鼠标移动
END_MESSAGE_MAP()
消息实现:
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point)
{
m_myPoint = point;
m_isPress = true;
CView::OnLButtonDown(nFlags, point);
}
void CMFCApplication1View::OnLButtonUp(UINT nFlags, CPoint point)
{
#ifdef MASK_THIS_BLOCK
CClientDC dc(this);
dc.MoveTo(m_myPoint);
dc.LineTo(point);
#endif // 0
m_isPress = false;
CView::OnLButtonUp(nFlags, point);
}
void CMFCApplication1View::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_isPress) {
CClientDC dc(this);
dc.MoveTo(m_myPoint);
dc.LineTo(point);
// 更新起点
m_myPoint = point;
}
CView::OnMouseMove(nFlags, point);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了