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 ...