c++ - MFC 使用指针数组的正确方法?
问题描述
我是 MFC 的新手,正在尝试解决这个 MFC 线条绘制问题,但我一直遇到访问问题。首先,这是个问题。
- 通过使用鼠标左键拖动,画一条线。(意思就像在App Paint上画线)
- 所有的行都应该存储在数组中。
- 当客户端窗口大小发生变化时,不应删除所有行。
我想要做的是,创建一个线类。
CLine.cpp
#include "pch.h"
#include "CLine.h"
CLine::CLine()
{
m_start = NULL;
m_end = NULL;
}
void CLine::draw(CDC* pDC)
{
pDC->MoveTo(m_start);
pDC->LineTo(m_end);
}
在我创建的 ChildView.h 中,
int LineCount;
CLine* CLine[100];
子视图.cpp
void CChildView::OnPaint()
{
CPaintDC dc(this);
if (LMouseDown)
{
for (int i = 0; i <= LineCount; i++)
{
CLine[i]->draw(&dc);
}
}
}
void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
CLine[LineCount]->m_start = point;
CLine[LineCount]->m_end = point;
LMouseDown = true;
CWnd::OnLButtonDown(nFlags, point);
}
void CChildView::OnMouseMove(UINT nFlags, CPoint point)
{
if (LMouseDown)
{
CLine[LineCount]->m_end = point;
}
CWnd::OnMouseMove(nFlags, point);
}
void CChildView::OnLButtonUp(UINT nFlags, CPoint point)
{
if (LMouseDown)
{
CLine[LineCount]->m_end = point;
LMouseDown = false;
LineCount++;
}
CWnd::OnLButtonUp(nFlags, point);
}
当我运行此代码时,只要单击窗口上的某个位置,就会出现错误Exception thrown: write access violation
。
为了正确使用这个数组来保存我的线路信息,我该怎么做?
解决方案
推荐阅读
- java - 使用 Jackson 将大量 JSON 响应反序列化为 POJO 的最有效方法是什么?
- visual-studio - 调试期间如何在每次更改时将文件复制到输出目录
- sql - 在 SQL 中为表中的一组行偏移日期时间数据
- go - 这个 rot13 密码有什么问题?
- node.js - 在本地主机之外的 AWS Lightsail 中访问 NodeJS 演示应用程序
- jenkins - Jmeter jenkins 不存储过去的构建结果
- android - 错误:不兼容的类型:字符串无法转换为 JSONArray
- .net - 即使在 linux/mac/windows 上,如何让 NuGet 包在安装时运行命令/逻辑?
- r - 如何在 forest_model 中将换行符添加到因子级别
- nginx - 如何将 nginx 配置为反向代理服务器 /some-path 从另一个服务器根路径 /