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

關于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>
            中国女人久久久| 亚洲电影免费| 亚洲夜晚福利在线观看| 亚洲精品欧美| 嫩草影视亚洲| 日韩亚洲欧美中文三级| 亚洲精品你懂的| 国产精品久久波多野结衣| 午夜精品一区二区三区电影天堂| 亚洲欧美日韩一区二区| 亚洲成人在线网| 亚洲九九九在线观看| 国产精品乱码人人做人人爱| 久久视频免费观看| 免费成人高清视频| 亚洲欧美春色| 久久午夜电影| 亚洲午夜未删减在线观看| 亚洲欧美日韩中文在线制服| 亚洲激情社区| 亚洲一级在线观看| 亚洲人成人77777线观看| 在线视频日韩| 亚洲第一页中文字幕| 亚洲少妇自拍| 在线观看免费视频综合| 一区二区三区视频观看| 在线日韩av| 中日韩高清电影网| 亚洲国产一区二区三区a毛片| 9久re热视频在线精品| 一区二区在线观看视频在线观看 | 国产精品嫩草影院av蜜臀| 老色批av在线精品| 国产精品伦理| 亚洲国产一区二区a毛片| 国产亚洲一区精品| 99国产精品久久久久久久久久| 精品999网站| 亚洲免费视频在线观看| 99综合电影在线视频| 久久久久国产成人精品亚洲午夜| 亚洲欧美日韩精品久久| 欧美日韩国产综合在线| 欧美顶级艳妇交换群宴| 国语对白精品一区二区| 亚洲欧美成人一区二区三区| 99精品视频一区| 女生裸体视频一区二区三区| 久久综合精品国产一区二区三区| 国产精品久久久久秋霞鲁丝| 日韩亚洲精品视频| 亚洲理论在线| 美女精品在线观看| 久久亚洲捆绑美女| 国内成+人亚洲| 欧美亚洲在线视频| 久久精品123| 国产欧美亚洲精品| 性欧美video另类hd性玩具| 亚洲欧美视频一区| 国产精品日韩专区| 亚洲午夜极品| 欧美在线视频导航| 国产三级精品三级| 性欧美xxxx视频在线观看| 香蕉免费一区二区三区在线观看| 欧美午夜精品理论片a级按摩 | 亚洲精选一区二区| 99精品福利视频| 欧美三区在线观看| 亚洲无线视频| 久久国产精品一区二区三区四区 | 激情一区二区三区| 久久这里有精品视频| 欧美国产日本在线| 亚洲精品一区中文| 国产精品护士白丝一区av| 亚洲欧美精品| 久久综合亚洲社区| 亚洲精品久久久一区二区三区| 欧美精品一区二| 亚洲先锋成人| 乱中年女人伦av一区二区| 亚洲人成在线观看网站高清| 欧美日韩一区二区欧美激情| 亚洲一区在线播放| 欧美 日韩 国产在线| 日韩一级不卡| 国产日韩欧美中文| 美国成人直播| 在线视频一区观看| 久久免费偷拍视频| 99精品国产热久久91蜜凸| 国产精品一区免费观看| 久久久久久久久岛国免费| 亚洲精品乱码久久久久久黑人 | 日韩天堂在线观看| 国产日韩一区在线| 欧美—级高清免费播放| 亚洲欧美中文日韩v在线观看| 男女精品视频| 亚洲欧美日韩国产成人| 1024成人网色www| 国产精品久久久久久五月尺| 久久资源av| 亚洲午夜一二三区视频| 亚洲第一毛片| 久久免费国产| 亚洲亚洲精品三区日韩精品在线视频| 激情综合在线| 国产精品免费观看视频| 欧美激情久久久| 久久9热精品视频| 一区二区三区视频在线| 亚洲国产婷婷香蕉久久久久久99| 久久精品国产99| 中国亚洲黄色| 亚洲免费av电影| 亚洲国产精品一区| 国产亚洲人成a一在线v站| 欧美午夜电影一区| 欧美精品久久久久久| 久热这里只精品99re8久| 欧美在线一二三区| 午夜精品一区二区三区在线视 | 欧美国产在线电影| 久久九九99视频| 亚洲欧美在线另类| 亚洲香蕉成视频在线观看| 亚洲精品乱码久久久久久蜜桃91 | 亚洲精品日韩在线观看| 欧美成人久久| 亚洲成人在线视频播放| 免费在线观看日韩欧美| 久久综合九色99| 久久中文在线| 久久综合狠狠综合久久激情| 久久综合给合久久狠狠色| 久久蜜臀精品av| 久久人人看视频| 久久影音先锋| 牛夜精品久久久久久久99黑人| 久久久青草婷婷精品综合日韩| 久久av一区二区三区漫画| 欧美自拍丝袜亚洲| 久久精品欧美| 久久青草欧美一区二区三区| 老司机一区二区三区| 免费欧美日韩国产三级电影| 欧美成人精品激情在线观看| 亚洲电影免费观看高清完整版| 亚洲欧洲精品一区二区三区波多野1战4 | 免费在线欧美视频| 葵司免费一区二区三区四区五区| 亚洲欧美在线aaa| 午夜精品久久久| 久久久久久久性| 欧美国产免费| 亚洲美女精品久久| 亚洲男人天堂2024| 久久gogo国模裸体人体| 欧美顶级艳妇交换群宴| 欧美日韩日本国产亚洲在线| 国产精品久久久久久一区二区三区 | 亚洲精品视频在线播放| 99国产一区| 午夜精品三级视频福利| 久久精品亚洲一区二区| 欧美成人综合网站| 欧美日韩系列| 国产婷婷97碰碰久久人人蜜臀| 在线精品观看| 亚洲午夜电影| 久久亚洲国产精品一区二区| 亚洲片国产一区一级在线观看| 亚洲一区二区三区精品视频| 久久久久久免费| 欧美三级欧美一级| 国内精品免费在线观看| 夜夜夜精品看看| 久久久久久久999| 日韩视频国产视频| 久久国产精品一区二区三区四区 | 黑人操亚洲美女惩罚| 99精品久久免费看蜜臀剧情介绍| 欧美亚洲三区| 亚洲国产综合在线看不卡| 欧美一区二区三区免费视| 欧美日韩精品二区| 亚洲第一精品在线| 午夜久久久久久久久久一区二区| 亚洲成人在线网| 久久都是精品| 国产精品私拍pans大尺度在线| 亚洲精品视频一区| 久热精品在线视频| 亚洲免费影院| 欧美日韩综合在线| 亚洲精品欧美激情|