直線的“橡皮筋”畫法
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
微軟的畫圖程序中畫直線時,會有畫線提示,形象的說就像“橡皮筋”一樣,在未最終確定直線的長度和角度前都會有一根類似“橡皮筋”的直線,便于客戶可以方便的畫出理想的直線,具體實現方法如下:
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_bDraw = true;
m_ptOrigin = point;
m_ptEnd = point;
CView::OnLButtonDown(nFlags, point);
}
void CDrawView::OnMouseMove(UINT nFlags, CPoint point)
{
if(m_bDraw)
{
CClientDC dc(this);
dc.SetROP2(R2_NOT); //1
dc.MoveTo(m_ptOrigin); //2
dc.LineTo(m_ptEnd); //3
m_ptEnd = point;
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptEnd);
}
CView::OnMouseMove(nFlags, point);
}
具體原理是,m_ptOrigin為起始坐標點,m_ptEnd不斷的記錄終端坐標點,這里假定客戶區是白色的,在鼠標移動時,1句是將繪圖的模式設成像素色為屏幕顏色的反色,注意這時的m_ptEnd為上一次的鼠標移動的終點,上次那條線顏色為黑色,通過1、2、3句將上次的那條線的像素色黑色變成白色和客戶區顏色相同,后面三句才最終畫出在現在這個坐標終點下的黑色直線。不斷往復。(其實這個方法雖然很普遍,但是很不實用)
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成