青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

關(guān)于MFC畫圖的一些總結(jié),MFC (Draw)

轉(zhuǎn)自:http://www.cnblogs.com/volnet/articles/472794.html

首先對按下鼠標(biāo)的一點(diǎn)進(jìn)行記錄,因此在WM_LBUTTONDOWN添加代碼:

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

{

     // TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值

     m_ptOrigin=point;

     CView::OnLButtonDown(nFlags, point);

}

再次記錄鼠標(biāo)彈起WM_LBUTTONUP的點(diǎn)的位置才可完成底下1-3的任務(wù)。

1、 畫線

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

{

     // TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值

 

     //畫黑色的線(方法一)

     /*HDC hdc;    //聲明一個hdc

     hdc=::GetDC(m_hWnd);   //用全局函數(shù)HDC GetDC(HWND hWnd);來獲取設(shè)備句柄。由于是全局函數(shù)因此在函數(shù)前加“::”即可

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

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

     ::ReleaseDC(m_hWnd,hdc);    //釋放設(shè)備hdc*/

 

/*方法二說明:利用CDC Do all drawing through the member functions of a CDC object. The class provides member functions for device-context operations, working with drawing tools, type-safe graphics device interface (GDI) object selection, and working with colors and palettes.

在其底下有兩個函數(shù)

MoveTo

Moves the current position.

PolyBezier

Draws one or more Bézier splines. The current position is neither used nor updated.

方法二與方法一相比的好處在于:方法二無須再定義窗體的句柄*/

     //畫黑色的線(方法二)

/*CDC *pDC=GetDC();

     pDC->MoveTo(m_ptOrigin);

     pDC->LineTo(point);

     ReleaseDC(pDC);*/

/*方法三說明:利用CDC的一個派生類CWindowDC類(The CWindowDC class is derived from CDC. It calls the Windows functions GetWindowDC at construction time and ReleaseDC at destruction time. This means that a CWindowDC object accesses the entire screen area of a CWnd (both client and nonclient areas).

其與方法二比好處就在于:在實(shí)例化GetWindowDC對象的時候就已經(jīng)隱含獲取了hdc以及在對象生命周期結(jié)束的時候自動釋放它,以減輕我們的負(fù)擔(dān)。

*/

     //畫黑色的線(方法三)

/*CWindowDC dc(this);  //this代表當(dāng)前窗體的句柄

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);*/

/*值得說明的是:在CWindowDC dc(this);this代表當(dāng)前窗體的句柄,因此我們只需要將需要繪畫的窗體指針傳入即可。在本例子中由于該消息基于View類的,因此在程序中View窗口進(jìn)行繪畫有效。若要修改為MainFrame類的話,由于MainFrame類是View類的父窗口,因此我們僅僅需要獲取當(dāng)前類的父窗口的指針既可,也就是把當(dāng)前的this替換為GetParent()。若要在整個Windows桌面上繪畫的話可以獲取桌面的指針GetDesktopWindow()。具體代碼實(shí)現(xiàn)如下:*/

//畫黑色的線(方法三)(基于MainFrame類框)

     /*CWindowDC dc(GetParent());

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);*/

 

     //畫黑色的線(方法三)(基于Windows桌面)

     /*CWindowDC dc(GetDesktopWindow());

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);*/

/*方法四說明:利用CDC的一個派生類CClientDC類 (The CClientDC class is derived from CDC and takes care of calling the Windows functions GetDC at construction time and ReleaseDC at destruction time. This means that the device context associated with a CClientDC object is the client area of a window.

其方法與CwindowDC基本類似。

*/

//畫黑色的線(方法四)

/*CClientDC dc(this);

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);*/

 

2、 改變顏色

/*****************************************************************************************/

//畫紅色的線

     /*CPen pen(PS_SOLID,1,RGB(234,23,53));    //定義一個CPen類對象,并利用RGB宏改變其顏色

     CClientDC dc(this);

     CPen *pOldPen=dc.SelectObject(&pen); //將其選入設(shè)備表

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);

     dc.SelectObject(pOldPen);   //還原先前設(shè)備表中被改動的缺省值*/  

/*方法說明:通過改變畫筆CPen的屬性并把它們選入設(shè)備表,然后再進(jìn)行畫線,設(shè)備表的缺省值是黑色 */

 

3、 畫矩形

/*****************************************************************************************/

//畫無邊框的矩形

/*方法說明:利用FillRect函數(shù)填充矩形。填充內(nèi)容為畫刷的內(nèi)容,即畫刷對象的指針。*/

//畫無邊框的矩形

     /*CBrush brush(RGB(5,255,255));

     CClientDC dc(this);

     dc.FillRect(CRect(m_ptOrigin,point),&brush);*/

 

     //以位圖作為畫刷的資源

     //載入位圖到畫刷

     /*CBitmap bitmap;

     bitmap.LoadBitmap(IDB_BITMAP1);  /*從“項(xiàng)目”“添加資源”中添加位圖資源并將其ID號選到LoadBitmap()函數(shù)中。*/

     CBrush brush(&bitmap);

     CClientDC dc(this);

     dc.FillRect(CRect(m_ptOrigin,point),&brush);*/

 

//畫有邊框的矩形

/*方法說明:利用Rectangle方法來畫矩形。其中CBrushCPen類分別負(fù)責(zé)矩形內(nèi)部和矩形邊框的屬性*/

//畫中心為白色的矩形

     /*CClientDC dc(this);

     dc.Rectangle(CRect(m_ptOrigin,point));*/

 

     //畫中心為透明的矩形

     /*CClientDC dc(this);

     CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));

     CBrush *pOldBrush=dc.SelectObject(pBrush);

     dc.Rectangle(CRect(m_ptOrigin,point));

     pOldBrush=pBrush;*/

 

//畫中心為透明邊為任意顏色的矩形

     /*CClientDC dc(this);

     CPen pen(PS_SOLID,1,RGB(234,23,53));

     CPen *pOldPen=dc.SelectObject(&pen);

     CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));

     CBrush *pOldBrush=dc.SelectObject(pBrush);

     dc.Rectangle(CRect(m_ptOrigin,point));

     dc.SelectObject(pOldPen);

     dc.SelectObject(pOldBrush);*/

 

4、 畫任意線條

/*要記錄每一個點(diǎn)的位置必須將以下代碼添加到WM_MOUSEMOVE的消息中才可記錄移動中的每一點(diǎn)。

但是要配合鼠標(biāo)左鍵按下這個動作才可進(jìn)行記錄,否則鼠標(biāo)移動的事件將包括左鍵沒按下的情況。因此我們必須定義一個全局變量來記錄鼠標(biāo)左鍵是否按下的信息。因此定義一個BOOL變量來記錄是或者否按下的信息。在CVIEW.h頭文件中添加一個私有的BOOL m_bDraw;的變量來記錄。在WM_LBUTTONDOWN中將其值修改為m_bDraw=TRUE; WM_LBUTTONUP中修改m_bDraw=FALSEWM_MOUSEMOVE中添加如下代碼。*/

     CClientDC dc(this);

     if(m_bDraw==TRUE)

     {

         dc.MoveTo(m_ptOrigin);

         dc.LineTo (point);

         m_ptOrigin=point;

     }

     //畫扇形線條

     /*CClientDC dc(this);

     if(m_bDraw==TRUE)

     {

         dc.MoveTo(m_ptOrigin);

         dc.LineTo (point);

     }*/

    

     //畫帶包絡(luò)線的扇形線條

/*需要記錄舊點(diǎn)的信息,因此在WM_LBUTTONDOWNm_ptOld中賦值為point以后在WM_MOUSEMOVE中改變其值*/

     /*CClientDC dc(this);

     if(m_bDraw==TRUE)

     {

         dc.MoveTo(m_ptOrigin);

         dc.LineTo(m_ptOld);

         dc.MoveTo(m_ptOld);

         dc.LineTo(point);

         m_ptOld=point;

     }*/

 

//介紹int SetROP2(int nDrawMode);方法,通過改變nDrawMode參數(shù)的值來改變繪畫參數(shù)

     /*CClientDC dc(this);

     if(m_bDraw==TRUE)

     {

         dc.SetROP2(R2_BLACK);

         dc.MoveTo(m_ptOrigin);

         dc.LineTo(m_ptOld);

         dc.MoveTo(m_ptOld);

         dc.LineTo(point);

         m_ptOld=point;

     }*/

/*MSDNSets the current drawing mode.

int SetROP2(int nDrawMode );

*/

posted on 2009-04-30 15:07 Brandon 閱讀(5993) 評論(0)  編輯 收藏 引用 所屬分類: MFC

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

收藏夾

IT WEB

常用鏈接

牛人BLOG

學(xué)習(xí)網(wǎng)站

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲激情小视频| 免费在线观看日韩欧美| 亚洲精品日韩在线观看| 欧美精品电影| 国产精品99久久久久久www| 99在线精品视频| 国产精品国内视频| 欧美影院成人| 久久亚洲私人国产精品va媚药 | 久热国产精品视频| 99精品视频免费观看视频| 亚洲美女在线一区| 国产伦精品一区二区三区免费| 久久精品一区四区| 久久综合伊人| 亚洲一区在线直播| 久久国产精品99久久久久久老狼| 亚洲大胆人体视频| 99re成人精品视频| 激情婷婷亚洲| 日韩视频免费观看高清在线视频| 国产精品一区在线播放| 欧美成年人在线观看| 欧美日韩三区| 久久深夜福利免费观看| 欧美国产一区在线| 欧美中文日韩| 欧美肥婆在线| 久久国产精品99国产精| 欧美国产另类| 欧美在线精品一区| 欧美日本国产| 久久免费精品视频| 欧美亚洲成人免费| 欧美成人四级电影| 国产欧美一区二区精品婷婷| 亚洲欧洲日产国产网站| 国产亚洲一区二区精品| 亚洲黄色免费| 黄色一区二区三区四区| 亚洲午夜精品| 夜夜爽99久久国产综合精品女不卡| 午夜精品区一区二区三| 一本色道久久综合亚洲精品婷婷| 欧美一区二区视频在线观看2020| 一本色道久久综合狠狠躁的推荐| 久久久女女女女999久久| 性久久久久久久久久久久| 欧美精选在线| 亚洲黄色视屏| 亚洲国内精品| 久久久久久久久蜜桃| 久久成人精品视频| 国产精品亚洲综合久久| 9i看片成人免费高清| 亚洲精品系列| 欧美mv日韩mv国产网站app| 久久亚洲一区二区| 国产一区二区三区黄| 亚洲香蕉在线观看| 亚洲影视综合| 欧美午夜美女看片| 99在线精品观看| 亚洲午夜激情网页| 欧美日韩国产限制| 亚洲精品美女久久7777777| 亚洲激情小视频| 欧美ed2k| 亚洲欧洲视频在线| 一区二区三区视频在线观看| 欧美日韩伊人| 一区二区三区**美女毛片| 亚洲午夜电影网| 国产精品国产三级国产普通话三级 | 亚洲一区在线播放| 亚洲男同1069视频| 国产精品jizz在线观看美国| 一区二区国产日产| 午夜宅男久久久| 国产午夜精品一区理论片飘花| 午夜精品亚洲一区二区三区嫩草| 久久成年人视频| 黄色av日韩| 麻豆av福利av久久av| 亚洲国产经典视频| 亚洲午夜久久久久久久久电影院 | 国产精品久久999| 欧美一区二区三区日韩| 欧美96在线丨欧| 一本色道久久精品| 国产欧美在线播放| 久久全球大尺度高清视频| 欧美激情一区二区久久久| 在线一区二区三区四区| 国产伦精品一区二区| 久久嫩草精品久久久精品| 亚洲人精品午夜| 久久se精品一区二区| 亚洲日本成人| 国产乱码精品一区二区三区av| 久久久国际精品| 日韩一级二级三级| 久久青草久久| 亚洲先锋成人| 亚洲国产成人av好男人在线观看| 欧美日韩免费一区| 久久美女艺术照精彩视频福利播放| 亚洲人成毛片在线播放| 久久国产99| 一本色道久久综合一区| 狠狠入ady亚洲精品| 国产精品vvv| 欧美成人精品在线| 性欧美videos另类喷潮| 亚洲欧洲日本专区| 噜噜噜91成人网| 亚洲欧美影院| 99re亚洲国产精品| 一区二区三区中文在线观看 | 欧美一区二区三区日韩视频| 亚洲精品在线电影| 男女av一区三区二区色多| 午夜精品视频一区| 一本色道久久88亚洲综合88| 136国产福利精品导航网址应用 | 欧美日韩一区二区三区在线视频| 久久在线免费| 久久国产精品72免费观看| 一区二区三区日韩欧美| 亚洲精品久久久久久久久| 噜噜噜噜噜久久久久久91| 久久精品国产一区二区三| 亚洲免费在线观看| 亚洲毛片av在线| 亚洲激情国产精品| 精品9999| 精久久久久久| 韩国成人福利片在线播放| 国产视频一区二区在线观看| 国产精品剧情在线亚洲| 欧美午夜精品久久久久久孕妇| 欧美精品尤物在线| 欧美精品 国产精品| 欧美国产日韩视频| 欧美国产第一页| 欧美韩日亚洲| 欧美日韩精品国产| 欧美日韩卡一卡二| 欧美深夜影院| 国产精品高清网站| 国产精品毛片一区二区三区| 国产精品免费久久久久久| 国产欧美大片| 国产综合自拍| 亚洲国产精品久久久久秋霞影院| 91久久精品国产91性色tv| 91久久精品美女高潮| 亚洲乱码国产乱码精品精天堂| 日韩视频在线观看国产| 亚洲视频电影在线| 欧美一区二区在线免费播放| 久久免费的精品国产v∧| 能在线观看的日韩av| 亚洲国产一区二区视频| 亚洲精品综合精品自拍| 亚洲视频自拍偷拍| 久久成人精品视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲女同性videos| 久久久久久久久蜜桃| 一本色道久久综合狠狠躁的推荐| 亚洲伊人伊色伊影伊综合网 | 亚洲精品一区二区三区四区高清| 99国产麻豆精品| 亚洲免费在线视频| 久久综合伊人77777蜜臀| 亚洲精品专区| 久久国产精品久久久久久久久久| 欧美va日韩va| 国产欧美日韩在线视频| 亚洲国产成人精品女人久久久| 一区二区三区日韩精品视频| 欧美一区二区三区在线看| 欧美不卡高清| 影音先锋日韩有码| 宅男精品导航| 免费亚洲婷婷| 亚洲一区二区三区国产| 久久久水蜜桃av免费网站| 欧美系列精品| 亚洲国产精品第一区二区| 在线一区视频| 欧美激情精品久久久久久蜜臀 | 欧美在线日韩精品| 欧美日韩国产在线一区| 一区二区三区在线观看视频| 亚洲欧美激情视频| 亚洲人成网站色ww在线| 久久精视频免费在线久久完整在线看| 欧美日韩黄色一区二区|