您的位置: 旅游網 > 影視 >> 喜劇

    中利用設計繪圖程序初步呢

    發布時間:2021-10-28 05:37:43

    首先我們說下通過鼠標的移動來繪制直線。

    這里要捕獲到鼠標的兩個消息:WM_LBUTTONDOWN, WM_LBUTTONUP。響應WM_LBUTTONDOWN消息記錄直線的起始點,響應WM_LBUTTONUP消息記錄直線的終點并繪制直線。

    好了,我們看看怎么響應。

    void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)

    {

    //MessageBox(\"Left Button Clicks DrawView\");

    m_ptOrigin = point ; //這里先定義了一個內部變量保存直線的起始點

    CView::OnLButtonDown(nFlags, point);

    }

    下面看看響應WM_LBUTTONUP消息記錄直線的終點并繪制直線。

    //方法一

    void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)

    {

    HDC hdc;

    hdc = ::GetDC(m_hWnd); //調用全局函數

    MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,0);

    LineTo(hdc,point.x,point.y);

    ::ReleaseDC(m_hWnd,hdc);

    CView::OnLButtonUp(nFlags, point);

    }

    //方法二

    void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)

    {

    CDC *pDC = GetDC();

    pDC-MoveTo(m_ptOrigin);

    pDC-LineTo(point);

    ReleaseDC(pDC);

    }

    //方法三

    void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)

    {

    CClientDC dc(this) ; //CClientDC對象構造的時候就調用了GetDC,析構的時候調用

    ReleaseDC ,只能訪問客戶區

    CClientDC dc(GetParent());

    veTo(m_ptOrigin);

    neTo(point);

    }

    //方法四

    void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)

    {

    CWindowDC dc(this) ; //CWindowDC可以訪問客戶區和非客戶區

    veTo(m_ptOrigin);

    neTo(point);

    }

    void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)

    {

    CWindowDC dc(GetDesktopWindow()) ; //現在可以訪問桌面

    veTo(m_ptOrigin);

    neTo(point);

    }

    連續線繪圖:

    思路:鼠標移動的信號被捕捉到,然后隨時響應該信號,繪制圖線。

    這里要設置一個BOOL變量 m_bDraw 來判斷是否鼠標左鍵按下了。

    //畫連續的線條

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)

    {

    if ( m_bDraw )

    {

    CClientDC dc(this) ;

    veTo(m_ptOrigin); //移動到原來的點

    neTo(point); //繪制直線

    m_ptOrigin = point ; //將現在的點賦值給原來的坐標,以便下次調用

    }

    CView::OnMouseMove(nFlags, point);

    }

    //改變畫筆的顏色

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)

    {

    if ( m_bDraw )

    {

    CClientDC dc(this) ;

    CPen pen( PS_SOLID , 1 , RGB(255,128,128) );

    CPen *pOldPen = lectObject(pen);

    veTo(m_ptOrigin);

    neTo(point);

    m_ptOrigin = point ;

    lectObject(pOldPen);

    }

    CView::OnMouseMove(nFlags, point);

    }

    //畫扇型

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)

    {

    if ( m_bDraw )

    {

    CClientDC dc(this) ;

    CPen pen( PS_SOLID , 1 , RGB(255,128,128) );

    CPen *pOldPen = lectObject(pen);

    但由于F-86過于笨重 veTo(m_ptOrigin);

    neTo(m_ptOld);

    veTo(m_ptOrigin);

    neTo(point);

    m_ptOld = point ;

    lectObject(pOldPen);

    }

    CView::OnMouseMove(nFlags, point);

    }

    //畫帶邊線的扇型

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)

    {

    if ( m_bDraw )

    {

    CClientDC dc(this) ;

    CPen pen( PS_SOLID , 1 , RGB(255,128,128) );

    CPen *pOldPen = lectObject(pen);

    veTo(m_ptOrigin);

    neTo(m_ptOld);

    veTo(m_ptOrigin);

    neTo(point);

    veTo(m_ptOld);

    neTo(point);

    m_ptOld = point ;

    lectObject(pOldPen);

    }

    CView::OnMouseMove(nFlags, point);

    }

    //看看繪圖的模式設置方法

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)

    {

    if ( m_bDraw )

    {

    CClientDC dc(this) ;

    tROP2(R2_BLACK); //繪圖的模式設置,始終繪制黑色圖形

    CPen pen( PS_SOLID , 1 , RGB(255,128,128) );

    CPen *pOldPen = lectObject(pen);

    veTo(m_ptOrigin);

    neTo(m_ptOld);

    veTo(m_ptOrigin);

    neTo(point);

    veTo(m_ptOld);

    neTo(point);

    m_ptOld = point ;

    lectObject(pOldPen);

    }

    CView::OnMouseMove(nFlags, point);

    }

    到此,我們知道了一般地繪圖方法了。查看本文來源

    永州白癜風醫院哪家好
    重慶治療白癜風醫院哪好
    西安哪家醫院做人流好
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 欧美www网站| 美女内射毛片在线看免费人动物| 天堂岛最新在线免费看电影| 久久精品中文字幕第一页| 波多野结衣456| 又黄又爽无遮挡免费视频| 久久久久777777人人人视频| 天堂а√在线最新版在线| 久久久久久久久66精品片| 欧美亚洲国产精品久久高清| 免费a级毛片在线观看| 色费女人18女人毛片免费视频| 国产精品国产免费无码专区不卡 | 91精品综合久久久久久五月天| 成人精品一区二区久久| 久碰人澡人澡人澡人澡人视频| 毛片免费视频观看| 制服丝袜日韩欧美| 视频在线一区二区三区| 国产精品久久久福利| aaa日本高清在线播放免费观看| 插鸡网站在线播放免费观看| 亚洲AV成人噜噜无码网站| 欧美黑人疯狂性受xxxxx喷水| 午夜爽爽爽男女免费观看影院| 韩国福利影视一区二区三区| 国产精品亚洲精品日韩已方 | gay同性男男自免费播放| 无码国产精品一区二区免费模式 | 午夜精品乱人伦小说区| 韩国三级最新理论电影| 国产福利在线观看一区二区| 99久久精品这里只有精品| 影音先锋男人天堂| 久久99精品久久久大学生| 日韩精品极品视频在线观看免费| 亚洲成av人在线视| 波多野结衣被三个小鬼| 全免费a级毛片免费看不卡| 老鸭窝在线观看视频的网址| 国产呻吟久久久久久久92|