Posted on 2012-09-28 16:08
盛勝 閱讀(347)
評論(0) 編輯 收藏 引用 所屬分類:
vc++深入詳解
建立工程文件
選擇單文檔其他全部默認

添加LButtonDown和LButtonUp的消息響應函數
點擊上邊的 查看(v)->建立類向導

這里已經點擊過Add Funtion ,點擊后工程自動添加消息函數。點擊edit code可以進行代碼編輯。
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_ptOrigin=point;
//MessageBox("view Clicked!");
CView::OnLButtonDown(nFlags, point);
}
同理OnLButtonUp消息函數也一樣添加,代碼為下邊:
void CTestView::OnLButtonUp(UINT nFlags, CPoint point)
{
//1
/*
// TODO: Add your message handler code here and/or call default
//首先獲取窗口的設備描述表
HDC hdc;
//m_hWnd是CWnd的一個成員變量用來保存窗口句柄,而CTestView派生于CWnd類。GetDC全局函數獲取得當前窗口的設備描述表
hdc = ::GetDC(m_hWnd);
//移動到線條的起點
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
//畫線
LineTo(hdc,point.x,point.y);
//釋放設備描述表
::ReleaseDC(m_hWnd,hdc);
*/
//CWnd類提供了成員函數GetDC和ReleaseDC,先利用Platform SDK函數實現畫線功能時,這兩個函數前面都加::表示全局
//函數
//2
/*
//MFC封裝了CDC類(一個設備描述表)
CDC* pDC=GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);
*/
//3
/*
//CClientDC派生于CDC類,構造時自動調用GetDC函數。一旦定義了CClientDC的一個對象就不用再調用GetDC和ReleaseDC
//CClientDC dc(this);
CClientDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
*/
//4
//CwindowDC的優勢:對象可以訪問整個窗口區域
//CWindowDC dc(this);
CWindowDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}