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

關(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>
            久久亚洲精选| 亚洲男同1069视频| 欧美一区二区视频97| 久久久久久久网站| 久久久精品午夜少妇| 国产精品色婷婷| 欧美国产欧美亚州国产日韩mv天天看完整| 狠狠色狠狠色综合| 欧美日韩理论| 麻豆freexxxx性91精品| 午夜欧美精品久久久久久久| 亚洲国内精品| 久久久久久尹人网香蕉| 亚洲与欧洲av电影| 日韩一区二区福利| 亚洲视频电影在线| 欧美v亚洲v综合ⅴ国产v| 欧美日韩一区二区视频在线观看 | 欧美国产亚洲精品久久久8v| 久久久999精品| 国产精品久久久久久久午夜片| 米奇777超碰欧美日韩亚洲| 午夜日韩视频| 欧美一区二区精品久久911| 欧美在线亚洲一区| 欧美阿v一级看视频| 日韩亚洲国产欧美| 亚洲小说春色综合另类电影| 亚洲三级视频在线观看| 国产精品久久久久久模特| 在线电影国产精品| 国产精品视频一区二区三区| 欧美日韩伊人| 欧美激情国产日韩| 久久在线免费观看视频| 欧美激情一区在线| 欧美国产日韩精品免费观看| 最新69国产成人精品视频免费| 亚洲成人在线免费| 午夜精品视频一区| 亚洲欧美日韩成人| 亚洲男人天堂2024| 久久久xxx| 国产精品免费观看视频| 国产一区二区三区观看 | 99热精品在线观看| 欧美电影在线免费观看网站| 亚洲国产日韩欧美在线99 | 国产欧美高清| 国产日韩欧美一区二区| 国内成人精品视频| 亚洲一区二区三区影院| 久久精品国产99国产精品| 欧美高清一区二区| 亚洲欧美日韩国产综合| 久久一日本道色综合久久| 欧美日韩成人在线视频| 国产精品一区二区在线观看不卡 | 国内外成人免费视频| 国产网站欧美日韩免费精品在线观看| 国产亚洲欧美日韩日本| 亚洲国产精品女人久久久| 9色porny自拍视频一区二区| 久久成人免费电影| 亚洲精品一区二区在线观看| 免费观看久久久4p| 欧美性做爰毛片| 亚洲成人在线免费| 亚洲黄色在线看| 亚洲精品视频在线| 夜夜爽99久久国产综合精品女不卡 | 尤物yw午夜国产精品视频明星| 亚洲国产一区视频| 欧美在线视频二区| 99re视频这里只有精品| 美女露胸一区二区三区| 国产毛片一区| 亚洲视频福利| 一本在线高清不卡dvd| 狼狼综合久久久久综合网| 国产精品丝袜久久久久久app| 亚洲欧洲日产国产网站| 欧美黄色日本| 欧美一级大片在线观看| 国产精品亚洲精品| 亚洲一区二区不卡免费| 欧美电影在线| 女生裸体视频一区二区三区| 激情国产一区| 欧美福利网址| 免播放器亚洲| 亚洲人成在线免费观看| 欧美制服丝袜第一页| 久久不射2019中文字幕| 国产区亚洲区欧美区| 亚洲欧美在线一区二区| 欧美在线视频免费播放| 国产一区二区三区黄视频| 久久久久久网址| 免费在线观看日韩欧美| 黄色成人在线网站| 欧美jizz19性欧美| 小辣椒精品导航| 伊人久久婷婷色综合98网| 欧美日韩一区不卡| 中文一区二区| 亚洲国产精品一区制服丝袜| 亚洲专区一区二区三区| 小嫩嫩精品导航| 国产亚洲精品资源在线26u| 欧美大片免费久久精品三p| 亚洲理伦在线| 一区二区三区蜜桃网| 欧美偷拍一区二区| 亚洲精选在线观看| 国产欧美日韩精品一区| 久久久噜噜噜久久中文字幕色伊伊| 国产一区二区av| 亚洲精品综合精品自拍| 国产综合欧美在线看| 性做久久久久久久久| 性色一区二区三区| 欧美午夜精品久久久久久超碰| 亚洲另类在线一区| 日韩一二三区视频| 欧美激情综合亚洲一二区| 亚洲欧美在线高清| 欧美中文在线免费| 欧美一区永久视频免费观看| 亚洲国产日韩一区| 免费看的黄色欧美网站| 快射av在线播放一区| 一本色道久久综合亚洲二区三区 | 一区在线视频观看| 亚洲欧美激情诱惑| 免费在线亚洲欧美| 午夜日韩福利| 99亚洲伊人久久精品影院红桃| 久久久久久久高潮| 艳女tv在线观看国产一区| 免费日韩av片| 久久国产精品72免费观看| 亚洲午夜在线视频| 亚洲国产精品久久久久秋霞不卡| 国产精品videosex极品| 久久精品一区二区三区不卡| 亚洲一区二区三区免费观看| 亚洲精品女人| 亚洲精选在线| 美日韩精品免费| 一本久久a久久免费精品不卡| 蜜桃av一区二区在线观看| 欧美激情一区二区三区蜜桃视频| 香蕉久久久久久久av网站| 久久久人人人| 亚洲欧美在线观看| 久久久欧美精品| 久久激情五月丁香伊人| 极品裸体白嫩激情啪啪国产精品| 欧美一区成人| 亚洲大胆在线| 久久综合网络一区二区| 欧美华人在线视频| 亚洲激情av| 欧美精品偷拍| 在线亚洲精品| 欧美一区二区私人影院日本 | 欧美激情综合色综合啪啪| 亚洲愉拍自拍另类高清精品| 日韩一区二区免费看| 亚洲综合电影| 久久精品30| 欧美午夜性色大片在线观看| 国产欧美日韩在线观看| 亚洲激情成人在线| 亚洲少妇自拍| 亚洲欧美日本日韩| 国产精品国产一区二区| 一区二区免费在线播放| 久久国产精品免费一区| 欧美香蕉大胸在线视频观看| 午夜精品理论片| 国产精品都在这里| 亚洲在线一区二区| 香蕉成人伊视频在线观看 | 欧美一区二区日韩一区二区| 亚洲精品三级| 欧美日韩精品二区| 亚洲一区二区三区四区中文| 亚洲在线中文字幕| 国产欧美亚洲一区| 欧美一二三区在线观看| 欧美国产三区| 国产精品日韩| 亚洲第一页在线| 午夜精品久久久久久99热| 久久九九热免费视频| 亚洲第一网站免费视频| 久久综合狠狠综合久久综青草| 免费看精品久久片|