<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    VC動態軌跡畫線

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
    分類: 2.4 線程/圖形學
     1878人閱讀 評論(0) 收藏 舉報 文檔null

    RFID設備管理軟件

    這是一個繪制直線的簡單繪圖程序,能過實現動態軌跡畫線,在拖動時產生臨時線來表示可能畫出的直線效果。

    首先:建立一個單文檔程序,名稱為Demo
    然后:在視圖類的聲明文件里面加入數據成員

    class CDemoView : public CView
    {
    //········
    protected:
        
        int m_Dragging;
        HCURSOR m_HCross;
        CPoint m_PointOld;
        CPoint m_PointOrigin;
    //········
    };

    接著:在視圖類的構造函數里面

    CDemoView::CDemoView()
    {
        // TODO: add construction code here
        m_Dragging=0;
        m_HCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);//載入標準的十字光標
    }

    接著:為視圖類添加鼠標左鍵,鼠標移動,鼠標左鍵釋放消息

    void CDemoView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
        // TODO: Add your message handler code here and/or call default
        ::SetCursor(m_HCross);//這一句能防止左鍵單擊的時候,保持鼠標樣式不變
        m_PointOrigin=point;
        m_PointOld=point;
        SetCapture();//捕獲鼠標,充分控制鼠標
        m_Dragging=1;
        RECT Rect;
        GetClientRect(&Rect);//取得窗口當前顯示坐標
        ClientToScreen(&Rect);//轉換為屏幕坐標
        ::ClipCursor(&Rect);//限定光標在指定矩形了嗎
        CView::OnLButtonDown(nFlags, point);
    }

     

    void CDemoView::OnMouseMove(UINT nFlags, CPoint point) 
    {
        // TODO: Add your message handler code here and/or call default
        ::SetCursor(m_HCross);
        if (m_Dragging)
        {
            CClientDC ClientDC(this);
            ClientDC.SetROP2(R2_NOT);//逆轉當前屏幕顏色來畫線的繪圖方式
            ClientDC.MoveTo(m_PointOrigin);//
            ClientDC.LineTo(m_PointOld);   //擦去上一次的線
            ClientDC.MoveTo(m_PointOrigin);
            ClientDC.LineTo(point);//繪制這一次的臨時線
            m_PointOld=point;
        }
        CView::OnMouseMove(nFlags, point);
    }

     

    void CDemoView::OnLButtonUp(UINT nFlags, CPoint point) 
    {
        // TODO: Add your message handler code here and/or call default
        if (m_Dragging)
        {
            m_Dragging=0;
            ::ReleaseCapture();//結束捕獲鼠標
            ::ClipCursor(NULL);//解鎖鼠標
            CClientDC ClientDC(this);
            ClientDC.SetROP2(R2_NOT);
            ClientDC.MoveTo(m_PointOrigin);
            ClientDC.LineTo(m_PointOld);//擦去上一次的臨時線
            ClientDC.SetROP2(R2_COPYPEN);//缺省繪圖模式,像素為畫筆顏色
            ClientDC.MoveTo(m_PointOrigin);
            ClientDC.LineTo(point);//繪制固定線
        }
        CView::OnLButtonUp(nFlags, point);
    }

     

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全