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

關于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年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

常用鏈接

留言簿(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>
            欧美精品一区在线| 激情亚洲成人| 久久久久久综合| 亚洲女与黑人做爰| 亚洲在线视频免费观看| 久久久亚洲影院你懂的| 中文一区二区| 欧美成人影音| 亚洲一区影院| 欧美一区二区在线播放| 午夜在线成人av| 国产精品久久久久久久久免费樱桃| 亚洲第一网站| 亚洲第一中文字幕| 亚洲欧美韩国| 国产视频综合在线| 久久精品91| 午夜精品视频在线| 国内成人在线| 欧美大成色www永久网站婷| 久久精品国产免费| 亚洲二区精品| 欧美成人精品在线观看| 免费欧美日韩| 一本色道久久综合亚洲91| 99热精品在线观看| 国产欧美精品一区二区色综合| 性欧美办公室18xxxxhd| 久久精品99国产精品日本| 雨宫琴音一区二区在线| 欧美激情黄色片| 欧美激情久久久久| 亚洲在线观看免费| 亚洲自拍偷拍福利| 在线观看欧美精品| 亚洲激情综合| 国产精品一区免费观看| 久久久国产一区二区| 另类专区欧美制服同性| 99国内精品久久久久久久软件| av72成人在线| 国产综合香蕉五月婷在线| 亚洲高清影视| 国产精品永久免费观看| 欧美激情二区三区| 国产精品视屏| 免费高清在线一区| 欧美日韩在线一区二区| 久久久亚洲一区| 欧美精品自拍| 久久99伊人| 欧美国产日韩一区二区| 欧美在线精品免播放器视频| 免费不卡中文字幕视频| 亚洲欧美日本另类| 久久久久九九视频| 亚洲欧美视频在线观看| 久久蜜桃精品| 亚洲欧美综合| 欧美成人黄色小视频| 欧美一级夜夜爽| 久久久久一本一区二区青青蜜月| 欧美精品xxxxbbbb| 久久久久久一区二区三区| 欧美精品一区在线发布| 巨乳诱惑日韩免费av| 国产精品久久久对白| 亚洲国产成人午夜在线一区| 国产精品一区二区在线观看网站| 亚洲高清自拍| 在线成人av网站| 一区二区三区视频观看| 在线成人欧美| 欧美与欧洲交xxxx免费观看| 亚洲一区免费网站| 欧美人在线视频| 欧美激情一区| 亚洲国产日韩欧美综合久久 | 日韩一区二区高清| 在线免费精品视频| 久久黄色级2电影| 欧美一区二区三区久久精品| 日韩一区二区精品葵司在线| 亚洲国产91| 久久精品国产一区二区三区免费看| 亚洲一区视频在线| 亚洲免费综合| 欧美涩涩网站| 欧美激情第3页| 亚洲国产欧美另类丝袜| 欧美在线一二三四区| 先锋影院在线亚洲| 欧美小视频在线| 亚洲免费精彩视频| 中文av一区二区| 欧美日韩免费一区二区三区视频 | 欧美中文在线字幕| 国产精品国产三级国产专区53| 亚洲毛片网站| 99精品欧美一区二区三区| 嫩草国产精品入口| 亚洲国产成人精品久久久国产成人一区 | 亚洲视频1区| 欧美精品一区二区三区四区| 亚洲国产一区二区视频| 日韩亚洲欧美一区| 欧美日韩一区二区在线 | 久久乐国产精品| 久久午夜精品| 亚洲第一中文字幕| 欧美大片专区| 亚洲欧洲一区二区在线观看| 一本一本a久久| 国产精品视频一二| 亚洲欧美综合网| 久久精品免费观看| 韩国成人福利片在线播放| 久久婷婷麻豆| 在线观看欧美激情| 欧美日本乱大交xxxxx| 在线视频精品一区| 欧美在线日韩在线| 在线观看成人网| 欧美高清在线视频| 一区二区三区国产精华| 亚洲欧美日韩国产综合| 国产精品第一页第二页第三页| 亚洲欧美在线免费| 欧美激情精品久久久久久变态 | 裸体歌舞表演一区二区| 亚洲人被黑人高潮完整版| 欧美另类久久久品 | 夜夜嗨一区二区| 国产精品久久久一区麻豆最新章节 | 国产精品一区二区久久| 欧美伊人精品成人久久综合97| 欧美成人自拍| 欧美一区高清| 99re66热这里只有精品4| 国产日韩精品一区二区浪潮av| 欧美国产视频在线| 欧美在线视频免费观看| 亚洲精品在线视频观看| 久久伊人免费视频| 亚洲私人影院| 在线播放中文一区| 国产欧美精品一区二区色综合| 欧美精品九九| 久久久999精品| 亚洲欧美日韩综合国产aⅴ| 亚洲欧洲日本在线| 女人香蕉久久**毛片精品| 欧美一区二区三区视频在线| 夜夜嗨av一区二区三区四区| 亚洲国产第一| 一区二区视频免费在线观看 | 午夜视频在线观看一区二区三区| 亚洲破处大片| 亚洲二区视频在线| 国产一区二区在线观看免费播放| 欧美性大战久久久久| 欧美激情综合色| 老巨人导航500精品| 久久久久久91香蕉国产| 久久精品国产亚洲高清剧情介绍 | 国内精品久久久久久| 欧美视频一区二区在线观看| 女同性一区二区三区人了人一| 久久xxxx精品视频| 午夜在线不卡| 香蕉国产精品偷在线观看不卡| 一区二区三区日韩精品| 亚洲精品国产欧美| 亚洲激情专区| 日韩视频一区| 亚洲人成网站在线观看播放| 亚洲春色另类小说| 欧美成年人网站| 欧美成人情趣视频| 狼人天天伊人久久| 男人的天堂亚洲| 欧美国产日韩一区二区| 亚洲精品社区| 亚洲日本欧美在线| 99精品热视频| 亚洲午夜视频| 欧美一区二区在线看| 欧美在线观看一二区| 欧美一区二区在线免费播放| 久久精品国产久精国产爱| 久久久夜夜夜| 美女任你摸久久| 亚洲国产精品免费| 亚洲伦理在线| 亚洲一区二区三区在线观看视频| 亚洲欧美日韩国产中文| 久久久久久久成人| 久久综合给合久久狠狠狠97色69| 久久偷看各类wc女厕嘘嘘偷窃| 欧美凹凸一区二区三区视频|