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

關于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

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

常用鏈接

留言簿(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| 亚洲日韩欧美视频一区| 一区二区免费在线视频| 午夜性色一区二区三区免费视频| 久久精品人人做人人爽电影蜜月| 久久资源av| 欧美激情一二区| 一区二区欧美激情| 久久久精品午夜少妇| 欧美日韩国产综合网 | 亚洲欧美国产三级| 久久久在线视频| 国产精品久久久久秋霞鲁丝| 国产一区视频网站| 一二三四社区欧美黄| 久久精精品视频| 亚洲日本无吗高清不卡| 99这里只有久久精品视频| 久久黄色网页| 国产精品久久久久一区二区| 亚洲国产精品v| 久久www免费人成看片高清| 亚洲国产经典视频| 亚久久调教视频| 欧美日韩免费看| 在线观看欧美一区| 麻豆精品视频| 亚洲国产成人tv| 亚洲欧洲99久久| 欧美国产国产综合| 亚洲午夜视频| 欧美日韩ab| 亚洲第一区中文99精品| 欧美亚洲综合在线| 99在线精品免费视频九九视| 老牛嫩草一区二区三区日本| 国产精品午夜av在线| 99亚洲伊人久久精品影院红桃| 久久精品国产精品亚洲| 亚洲天堂av在线免费| 欧美日韩和欧美的一区二区| 亚洲国产天堂久久综合| 鲁大师成人一区二区三区| 亚洲欧美三级在线| 国产精品夜夜夜| 亚洲女性裸体视频| 日韩午夜激情av| 欧美区在线观看| 亚洲国产精品视频一区| 久久亚洲春色中文字幕久久久| 亚洲永久在线观看| 国产精品久久久久av| 亚洲一区综合| 99成人在线| 国产精品jizz在线观看美国| 一本久久综合| 洋洋av久久久久久久一区| 欧美日韩视频在线一区二区 | 亚洲精品一区二区三区福利| 欧美成人69av| 亚洲精品一二三区| 亚洲精品男同| 欧美日韩视频第一区| 亚洲一区二区三区四区视频 | 麻豆成人在线观看| 91久久精品日日躁夜夜躁欧美| 欧美电影在线观看| 欧美日韩国产综合视频在线观看中文 | 欧美激情亚洲精品| 欧美区国产区| 香蕉久久久久久久av网站| 欧美亚洲一区二区在线观看| 好看的亚洲午夜视频在线| 亚洲第一精品电影| 欧美色另类天堂2015| 影音先锋国产精品| 国产一区视频在线看| 蜜桃久久精品乱码一区二区| 美女精品网站| 一道本一区二区| 午夜激情一区| 91久久午夜| 亚洲无毛电影| 在线欧美电影| 一本一本大道香蕉久在线精品| 国产欧美日韩精品丝袜高跟鞋| 久久综合国产精品| 欧美日韩视频一区二区| 久久婷婷国产综合精品青草 | 国产精品乱码久久久久久| 久久久精品2019中文字幕神马| 麻豆成人av| 欧美中文字幕在线视频| 男人天堂欧美日韩| 欧美伊人久久| 欧美日韩xxxxx| 免费一级欧美片在线观看| 国产精品国产三级国产专区53| 欧美a级大片| 国产乱子伦一区二区三区国色天香 | 亚洲精品一区二区三区樱花| 亚洲字幕一区二区| 亚洲蜜桃精久久久久久久 | 欧美三级特黄| 欧美成人福利视频| 国产欧美成人| av成人老司机| 99国产精品久久久久久久成人热 | 欧美影院久久久| 亚洲综合欧美日韩| 欧美日韩a区| 亚洲人成网在线播放| 亚洲高清三级视频| 久久国产精品99久久久久久老狼| 亚洲一区二区三区四区中文| 欧美.www| 欧美成人视屏| 亚洲高清在线观看一区| 久久精品国产一区二区三区| 亚洲专区一二三| 欧美日韩一区二区三区在线观看免| 欧美成人一区二区三区| 在线视频观看日韩| 久久青草欧美一区二区三区| 久久精品麻豆| 国内精品久久久久久| 欧美专区亚洲专区| 久久国产欧美| 黄色成人av| 久久婷婷蜜乳一本欲蜜臀| 久久亚洲私人国产精品va| 国产一区二区主播在线| 久久久久国产精品www| 久久午夜视频| 91久久线看在观草草青青| 麻豆成人精品| 亚洲激情中文1区| 美女91精品| 欧美国产视频在线| 午夜宅男欧美| 欧美一区二区| 国产亚洲一区二区精品| 新狼窝色av性久久久久久| 久久成人av少妇免费| 国产一区二区三区在线免费观看| 中文久久精品| 亚洲免费中文| 国产亚洲欧美一区二区三区| 久久成人在线| 亚洲第一区在线观看| 日韩视频在线一区二区三区| 欧美人与禽性xxxxx杂性| 在线亚洲一区| 久久夜色精品国产欧美乱极品| 永久免费毛片在线播放不卡| 麻豆成人av| 亚洲色图综合久久| 久久婷婷久久| av不卡在线观看| 国产欧美日韩精品专区| 噜噜噜噜噜久久久久久91| 亚洲免费精彩视频| 久久久一本精品99久久精品66| 亚洲国产精品一区二区三区| 欧美日韩一区自拍| 久久精品观看| 一区二区三区久久久| 麻豆精品一区二区综合av | 亚洲国产精品一区二区第一页| 欧美激情中文字幕乱码免费| 亚洲图片在线| 免费久久99精品国产| 亚洲一区在线播放| 亚洲黄色av| 国产日产高清欧美一区二区三区| 欧美电影打屁股sp| 欧美中文在线观看| 在线视频日韩精品| 欧美国产日韩精品| 久久久久成人精品免费播放动漫| 日韩亚洲视频在线| 伊人久久大香线| 国产精品稀缺呦系列在线| 免费亚洲电影| 久久精品在线视频| 午夜在线播放视频欧美| 一本色道久久综合精品竹菊| 欧美刺激性大交免费视频| 欧美在线电影| 亚洲男女毛片无遮挡| 99视频一区|