利用MFC的CClientDC類實現畫線功能

 CClientDC派生於CDC類,在構造函數時調用GetDC函數,在析構時調用ReleaseDC函數。

CClientDC dc(this); //CClientDC dc(GetParent()); 可繪製直線到工具欄等地方

dc.MoveTo(m_ptOrigin);

dc.LineTo(point);

MFC  CClientDC實現畫圖主要代碼:

// lineView.h : ClineView 類的接口

public:
 // 用來記錄鼠標位置
 CPoint start;
 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
 afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
 afx_msg void OnMouseMove(UINT nFlags, CPoint point);

// lineView.cpp : ClineView 類的實現

void ClineView::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息處理程序代碼和/或調用默認值

 CView::OnLButtonDown(nFlags, point);
 start=point;
}

void ClineView::OnLButtonUp(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息處理程序代碼和/或調用默認值

 CView::OnLButtonUp(nFlags, point);
 start.x=-1;
 start.y=-1;
}

void ClineView::OnMouseMove(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息處理程序代碼和/或調用默認值

 CView::OnMouseMove(nFlags, point);
 if(start.x!=-1)
 {
  CClientDC dc(this);
  dc.MoveTo(start.x,start.y);
  dc.LineTo(point);
  start=point;
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章