MFC绘图1--使用不同DC

//使用HDC绘图
/*
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
::ReleaseDC(m_hWnd,hdc);
*/
//所有跟窗口相关的操作都被封装在CWnd类中
//所有跟绘图相关的操作都被封装在CDC类中
//使用CDC绘图
/*
CDC *pDC=CWnd::GetDC();
//此处直接使用CWnd类的GetDC,其返回值为CDC*
//SDK中的同名函数使用返回的是HDC
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
CWnd::ReleaseDC(pDC);
*/
//使用CClientDC绘图
/*
CClientDC派生自CDC,在构造的时候调用GetDC,
在析构的时候调用ReleaseDC。使得我们不必
显示调用GetDC与ReleaseDC。
*/
/*
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
*/
//使用CWindowDC绘图
/*
同样派生自CDC,构造调用GetWindowDC,
析构时调用ReleaseDC()。
可以访问整个屏幕区域,包括客户区和非
客户区。
*/
/*
CWindowDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
*/
//通过GetDesktopWindow获得桌面DC
/*
注意:用平台SDK同名函数获得的是句柄,CWnd中
的同名函数获得的是CWnd指针。可以通过该函数获得
桌面窗口的CWnd指针,使得我们可以对桌面进行操作。
*/
/*
CWindowDC dc(GetDesktopWindow());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
*/

时间: 2024-11-03 17:52:03

MFC绘图1--使用不同DC的相关文章

C++MFC编程笔记day06 MFC向导、MFC绘图类使用

 MFC绘图    MFC绘图类包括绘图设备类和绘图对象类    1 绘图设备类      CDC类-父类是CObject,封装的是一般的绘图设备,例如:显示器,            打印机等.      CWindowDC类-父类是CDC类,封装的是窗口对象,包括客户区和非            客户区.      CClientDC类-父类是CDC类,封装的仍然是窗口,但是只包括客户区.      CPaintDC类-父类是CDC类,封装的是窗口的客户区.但是,它只用           

MFC绘图基础 .

from:http://blog.csdn.net/leolee82/article/details/6992590 先认识一下MFC中的一些和绘图有关的结构体和类 1.点 (1)点结构POINT点数据结构POINT用来表示一点的x.y坐标: typedef struct tagPOINT { LONG x; LONG y; } POINT; (2)点类CPoint 点类CPoint为一个没有基类的独立类,封装了POINT结构,有成员变量x和y 其构造函数有5种: CPoint( ); CPoi

MFC绘图7--显示位图

1.将位图加载到内存DC中 2.将内存DC中的内容绘制到要显示位图的DC中 *MFC中没有直接用来加载位图的函数,可以使用WindowsAPI中的 LoadImage函数来加载位图,其原型如下: HANDLE LoadImage( HINSTANCE hinst, //位图实体句柄,若位图在硬盘或者资源文件 //中,则将该参数设为NULL LPCTSTR lpszName, //位图所在路径及文件名,或者资源名称 UINT uType, //加载位图的类型: //1.IMAGE_BITMAP /

MFC绘图2--画出其他颜色线条

CClientDC dc(this);//创建DC //1.创建画笔 CPen pen(PS_SOLID,1,RGB(255,0,0)); //2.将画笔选到设备描述表中并返回被替换的画笔指针 CPen *pOldPen=dc.SelectObject(&pen); //3.绘图 dc.MoveTo(m_ptOrigin); dc.LineTo(point); //4.将先前被替换的画笔重新选到设备描述表 dc.SelectObject(pOldPen);

mfc绘图-mfc实现绘图,移动,删除放缩

问题描述 mfc实现绘图,移动,删除放缩 本人初学mfc,做一个绘图工具,实现绘图,以及图形的移动,删除,放缩 解决方案 http://download.csdn.net/detail/chuanxin8989/4674250 解决方案二: mfc依旧是经久不衰啊,每天都有人在学习 这个帖子不知道能帮到你不:mfc绘制 解决方案三: mfc依旧是经久不衰啊,每天都有人在学习 这个帖子不知道能帮到你不:mfc绘制

MFC绘图8--生成镂空图

1.利用BitBlt函数将蒙版与背景图做AND运算,并贴图到目的DC 2.将要镂空的图与背景图做OR运算,贴图到目的DC 部分代码: //取得客户取大小 GetClientRect(&rect); //建立内存DC mdc->CreateCompatibleDC(pDC); //加载背景位图 m_bgBmp.m_hObject=(HBITMAP)::LoadImage(NULL,"b1.bmp",IMAGE_BITMAP,rect.right,rect.bottom,LR

MFC绘图6--设置绘图模式

SetROP2 The SetROP2 function sets the current foreground mix mode. GDI uses the foreground mix mode to combine pens and interiors of filled objects with the colors already on the screen. The foreground mix mode defines how colors from the brush or pe

MFC绘图5--使用透明画刷

//创建透明画刷 CClientDC dc(this); //使用(HBRUSH)GetStockObject可以返回空画刷句柄,但CBrush //无法通过画刷句柄构造,可通过给其静态成员函数FromHandle传递HBRUSH //句柄获得CBrush指针 CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); CBrush *pOldBrush=dc.SelectObject(pBrush); dc.Re

MFC绘图4--使用位图画刷

CClientDC dc(this); //CBitmap对象必须在构造完成后,调用其成员函数 //进行初始化,例如:LoadBitmap() CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP1); CBrush brush(&bitmap); dc.FillRect(CRect(m_ptOrigin,point),&brush);