在CView中畫線

2021-05-22 22:27:41 字數 1690 閱讀 2127

1. 建立乙個單文件

2.在cxxview上右鍵選擇add member variable 新增cpoint  m_ptorigin,私有;新增bool m_hdraw ;

3.在建構函式中新增m_ptorigin = 0,m_hdraw = false;

4.同2選擇add windows message handler 新增lbottondown,lbottonup,mousemove並編輯

5.在onlbuttondown函式中新增m_ptorigin = point;

6.在 onlbuttonup函式中

a。 在視窗畫直線

hdc hdc;

hdc = ::getdc(m_hwnd);

movetoex(hdc,m_ptorigin.x,m_ptorigin.y,null);

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

::releasedc(m_hwnd,hdc);

或者:cdc *pdc = getdc( );

pdc->moveto(m_ptorigin );

pdc->lineto(point );

releasedc(pdc);

b。把工具欄包含進

cclientdc dc(getparent() );

dc.moveto(m_ptorigin);

dc.lineto(point);

::releasedc(dc);

桌面視窗:

cwindowdc dc(getdesktopwindow() );

dc.moveto(m_ptorigin );

dc.lineto(point );

c.使用畫筆、刷

cpen pen(ps_solid,1,rgb(255,1,1) );

cclientdc dc(this);

//cclientdc dc(getparent() );

cpen * poldpen=dc.selectobject(&pen);

dc.moveto(m_ptorigin);

dc.lineto(point );

dc.selectobject(poldpen);

cbrush brush(rgb(0,250,0) );

cclientdc dc(this);

dc.fillrect(crect(m_ptorigin,point ),&brush);

d.使用位圖

cbitmap bitmap;

bitmap.loadbitmap(idb_bitmap1);

cbrush brush(&bitmap);

cclientdc dc(this);

dc.fillrect(crect(m_ptorigin,point ),&brush);

e.畫曲線

void cdrawview::onlbuttondown(uint nflags, cpoint point)

void cdrawview::onlbuttonup(uint nflags, cpoint point)

void cdrawview::onmousemove(uint nflags, cpoint point)

dc.selectobject(poldpen);

cview::onmousemove(nflags, point);

}

MFC中CView轉化為CScrollView

由於我們程式設計時,會時常用到滾動條,所以會用到cscrollview類,但開始建立工程時沒有考慮這麼多。下面就繼承cview類改為繼承cscollview類說一下具體過程 1.找到要改的類,將h和cpp檔案裡的cview改為cscollview。直接用 edit選單下的replace 2.新增虛函...

MFC在兩控制項間畫線

cpen pen ps dot,1,rgb 0,0,0 建立乙個畫筆工具,也可用其他型別工具,如cbrush等,第乙個引數線段樣式,ps dot為點虛線,第二個引數為線寬度 cwnd pwnd getdlgitem idc static 獲取畫線所在控制項 cclientdc dc pwnd ccl...

ios 畫線平滑 iOS中簡單的畫線功能

最近在ios開發中,需要使用ios的畫線功能,畫線的方法可以寫在乙個controller檢視中,當然這不是最好的方式,建議還是自定義乙個uiview,並重寫drawrect 方法,這樣後面方便使用,並且不會造成 的冗長與囉嗦。一 新建乙個類,繼承自uiview 重寫drawrect 方法 void ...