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;
}
}