如何实现另起一点画线 可我的程序只能连续画线
哪位高人能帮我改一下程序吗class CDrawPicView : public CView
{
protected: // 仅从序列化创建
CDrawPicView();
DECLARE_DYNCREATE(CDrawPicView)// 属性
public:
CDrawPicDoc* GetDocument() const;
bool bDraw;
int bRestart;
CPoint cPointStart;
CPoint cPointEnd;
CPoint cTempPoint;
CDC *pDC;// 操作
public:// 重写
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:// 实现
public:
virtual ~CDrawPicView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endifprotected:// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
};void CDrawPicView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
pDC=GetDC();
int nDrawMode=pDC->SetROP2(R2_NOT);
pDC->MoveTo(cPointStart);
pDC->LineTo(cPointEnd);
pDC->MoveTo(cPointStart);
pDC->LineTo(point);
cPointEnd=point;
pDC->SetROP2(nDrawMode);
ReleaseDC(pDC);
CView::OnMouseMove(nFlags, point);
}void CDrawPicView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
cPointStart=point;
CView::OnLButtonDown(nFlags, point);
}
哪位高人能帮我改一下程序吗class CDrawPicView : public CView
{
protected: // 仅从序列化创建
CDrawPicView();
DECLARE_DYNCREATE(CDrawPicView)// 属性
public:
CDrawPicDoc* GetDocument() const;
bool bDraw;
int bRestart;
CPoint cPointStart;
CPoint cPointEnd;
CPoint cTempPoint;
CDC *pDC;// 操作
public:// 重写
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:// 实现
public:
virtual ~CDrawPicView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endifprotected:// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
};void CDrawPicView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
pDC=GetDC();
int nDrawMode=pDC->SetROP2(R2_NOT);
pDC->MoveTo(cPointStart);
pDC->LineTo(cPointEnd);
pDC->MoveTo(cPointStart);
pDC->LineTo(point);
cPointEnd=point;
pDC->SetROP2(nDrawMode);
ReleaseDC(pDC);
CView::OnMouseMove(nFlags, point);
}void CDrawPicView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
cPointStart=point;
CView::OnLButtonDown(nFlags, point);
}
楼主还是要先学的基础知识,对绘图的很多概念都不清楚.
我想过用右键控制,我能在右键中打断画线,但是再次画线的时候总是从原来打断的地方画线,我想在打断后能够画线 并且在打断后单击左键取得第一点
To:rageliu 我不知道你这么说什么用意 呵呵 还摸不着头脑
To:boluoCTO(菠萝项目经理) 你说跟rageliu同一个意思 我想 但我不知道具体怎么用
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(bDraw)//控制变量
{
pDC=GetDC();
int nDrawMode=pDC->SetROP2(R2_NOT);
pDC->MoveTo(cPointStart);
pDC->LineTo(cPointEnd);
pDC->MoveTo(cPointStart);
pDC->LineTo(point);
cPointEnd=point;
pDC->SetROP2(nDrawMode);
ReleaseDC(pDC);
}
CView::OnMouseMove(nFlags, point);
}