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

關于MFC畫圖的一些總結,MFC (Draw)

轉自:http://www.cnblogs.com/volnet/articles/472794.html

首先對按下鼠標的一點進行記錄,因此在WM_LBUTTONDOWN添加代碼:

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

{

     // TODO: 在此添加消息處理程序代碼和/或調用默認值

     m_ptOrigin=point;

     CView::OnLButtonDown(nFlags, point);

}

再次記錄鼠標彈起WM_LBUTTONUP的點的位置才可完成底下1-3的任務。

1、 畫線

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

{

     // TODO: 在此添加消息處理程序代碼和/或調用默認值

 

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

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

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

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

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

     ::ReleaseDC(m_hWnd,hdc);    //釋放設備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.

在其底下有兩個函數

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

其與方法二比好處就在于:在實例化GetWindowDC對象的時候就已經隱含獲取了hdc以及在對象生命周期結束的時候自動釋放它,以減輕我們的負擔。

*/

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

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

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);*/

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

//畫黑色的線(方法三)(基于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); //將其選入設備表

     dc.MoveTo(m_ptOrigin);

     dc.LineTo(point);

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

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

 

3、 畫矩形

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

//畫無邊框的矩形

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

//畫無邊框的矩形

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

     CClientDC dc(this);

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

 

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

     //載入位圖到畫刷

     /*CBitmap bitmap;

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

     CBrush brush(&bitmap);

     CClientDC dc(this);

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

 

//畫有邊框的矩形

/*方法說明:利用Rectangle方法來畫矩形。其中CBrushCPen類分別負責矩形內部和矩形邊框的屬性*/

//畫中心為白色的矩形

     /*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、 畫任意線條

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

但是要配合鼠標左鍵按下這個動作才可進行記錄,否則鼠標移動的事件將包括左鍵沒按下的情況。因此我們必須定義一個全局變量來記錄鼠標左鍵是否按下的信息。因此定義一個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);

     }*/

    

     //畫帶包絡線的扇形線條

/*需要記錄舊點的信息,因此在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參數的值來改變繪畫參數

     /*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

導航

統計

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

收藏夾

IT WEB

常用鏈接

牛人BLOG

學習網站

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            1000部精品久久久久久久久| 洋洋av久久久久久久一区| 亚洲综合精品一区二区| 91久久精品国产| 久久精彩免费视频| 香蕉亚洲视频| 久久久无码精品亚洲日韩按摩| 亚洲欧美一区二区原创| 欧美在线观看天堂一区二区三区| 亚洲欧美日韩天堂一区二区| 亚洲男人的天堂在线aⅴ视频| 亚洲图片欧美午夜| 欧美在线视屏| 欧美国产激情| 99视频有精品| 久久gogo国模裸体人体| 另类酷文…触手系列精品集v1小说| 久久久综合精品| 欧美fxxxxxx另类| 欧美韩日精品| 欧美色精品在线视频| 国内精品久久国产| 欧美va天堂| 欧美福利在线观看| 国产伦精品一区二区三| 亚洲精华国产欧美| 午夜日韩福利| 欧美国产视频在线观看| 一区二区三区|亚洲午夜| 欧美在线1区| 欧美午夜一区二区福利视频| 激情视频一区二区| 亚洲一区黄色| 亚洲国产你懂的| 欧美一区二区三区视频免费| 久久久久久国产精品mv| 亚洲精品123区| 欧美专区亚洲专区| 国产精品久久久久久av福利软件| 亚洲国产精品一区二区第四页av | 黄色成人av网| 亚洲一区二区免费在线| 亚洲风情亚aⅴ在线发布| 亚洲一区在线观看免费观看电影高清| 玖玖玖国产精品| 国产日韩精品一区二区| 亚洲无限av看| 亚洲精品孕妇| 欧美精品亚洲二区| 91久久极品少妇xxxxⅹ软件| 久久久美女艺术照精彩视频福利播放 | 免费日本视频一区| 小辣椒精品导航| 国产精品日韩一区二区三区| 99国产精品国产精品久久 | 久久久亚洲国产美女国产盗摄| 亚洲国产黄色| 久久一区二区视频| 国内久久婷婷综合| 久久久久国产精品午夜一区| 亚洲综合丁香| 国产精品视频成人| 欧美中文字幕在线观看| 亚洲综合精品四区| 国产亚洲激情在线| 久久国产一区二区| 欧美一区1区三区3区公司| 国产欧美日韩精品一区| 久久aⅴ乱码一区二区三区| 亚洲欧美日韩专区| 国产亚洲激情在线| 久久一区二区三区超碰国产精品| 久久gogo国模啪啪人体图| 国产亚洲女人久久久久毛片| 久久精品系列| 蜜桃精品久久久久久久免费影院| 亚洲国产欧美国产综合一区| 亚洲高清在线播放| 欧美三级视频在线| 久久成人人人人精品欧| 久久久免费av| 一区二区日韩免费看| 亚洲午夜精品网| 激情懂色av一区av二区av| 欧美激情一区二区三区| 欧美偷拍一区二区| 欧美一区二区日韩一区二区| 欧美伊人久久| 久久尤物视频| 亚洲精品乱码久久久久久久久| 亚洲精品免费网站| 国产欧美日韩综合一区在线播放| 久久青草福利网站| 欧美精品国产精品日韩精品| 亚洲在线电影| 久久久水蜜桃| 亚洲人成小说网站色在线| 一区二区成人精品 | 国产午夜亚洲精品羞羞网站| 久热这里只精品99re8久| 老司机一区二区三区| 亚洲午夜女主播在线直播| 欧美一区二区三区日韩视频| 日韩小视频在线观看| 亚洲主播在线播放| 亚洲美女视频| 欧美中文在线观看国产| 在线一区二区三区四区五区| 久久国产精品久久国产精品| 亚洲淫性视频| 亚洲精品中文字幕女同| 亚洲综合色网站| 日韩一二三在线视频播| 欧美在线电影| 欧美一区二区视频97| 欧美精品手机在线| 欧美大片免费观看| 狠狠色丁香婷婷综合久久片| 99在线|亚洲一区二区| 亚洲第一福利在线观看| 亚洲伊人色欲综合网| 制服丝袜激情欧洲亚洲| 欧美电影专区| 欧美成人精品1314www| 国产一区欧美日韩| 亚洲图片欧美午夜| 一区二区三区久久精品| 欧美国产日本韩| 欧美激情视频在线播放| 黄色成人免费观看| 久久精品女人| 蜜臀a∨国产成人精品| 黄色日韩在线| 久久精品成人欧美大片古装| 欧美一区深夜视频| 国产欧美日韩一区二区三区在线| 亚洲视频第一页| 亚洲欧美激情一区二区| 国产精品豆花视频| 一区二区免费在线视频| 久久婷婷久久一区二区三区| 久久久久国产一区二区| 久久精品国产99国产精品| 国产欧美日韩精品丝袜高跟鞋| 午夜免费在线观看精品视频| 午夜精品在线看| 国产日韩在线播放| 久久精品在这里| 欧美 日韩 国产精品免费观看| 亚洲国产精品小视频| 欧美激情视频在线免费观看 欧美视频免费一| 久久综合999| 最新国产乱人伦偷精品免费网站| 亚洲丰满少妇videoshd| 亚洲激情视频在线播放| 国产精品视频导航| 欧美激情乱人伦| 国产精品嫩草99a| 激情成人亚洲| 伊人天天综合| 亚洲欧美大片| 亚洲高清资源| 夜夜嗨av一区二区三区网站四季av| 亚洲一区国产| 免费看成人av| 在线一区观看| 久久久久一区| 国产精品99久久久久久久女警 | 国内精品久久久久久久果冻传媒| 欧美日韩综合久久| 国产日韩欧美成人| 亚洲精品少妇网址| 最新精品在线| 亚洲精品一区二区三区四区高清 | 国内精品久久久久久影视8| 亚洲一区二区三区精品在线观看 | 亚洲欧洲一区二区三区在线观看| 欧美激情一区二区三区四区| 一区二区三区免费网站| 久久九九久久九九| 一区二区三区色| 一区二区三区在线观看视频| 欧美日韩国产色视频| 久久精品91久久久久久再现| 亚洲看片网站| 欧美大胆成人| 久久电影一区| 在线视频亚洲一区| 一区免费观看| 国产欧美在线看| 欧美私人网站| 欧美成人激情视频| 亚洲一区二区三区免费在线观看 | 亚洲婷婷综合久久一本伊一区| 国产性天天综合网| 欧美另类变人与禽xxxxx| 久久久国产亚洲精品| 亚洲欧美韩国| 久久久精品国产免大香伊| 欧美日韩福利|