MFC学习笔记

来源:互联网 发布:建筑电气常用数据手册 编辑:程序博客网 时间:2024/06/06 09:19

创建画笔使用CPen类:

  CPen有三个构造函数: 

CPen( );CPen(   int nPenStyle,   int nWidth,   COLORREF crColor );CPen(   int nPenStyle,   int nWidth,   const LOGBRUSH* pLogBrush,   int nStyleCount = 0,   const DWORD* lpStyle = NULL );

CPen pen(PS_SOLID, 1, RGB( 255, 0, 0));

CDC *pDC = GetDC(); //创建设备上下文
CPen *pOldPen = pDC->SelectObject(&pen);//选择创建的画笔之前应该先把原始的画笔保存,应用之后再恢复
..............
dc.SelectObject(pOldPen);

ReleaseDC(pDC);//记得销毁设备上下文

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

CClientDC 和CDC的区别和联系:

1、CClientDC从CDC派生

2、使用CDC时 GetDC()和RealeaseDC()必须成对出现

3、使用CClientDC时:CClientDC会自己在构成函数中调用GetDC(),并且在析构函数中自己调用ReleaseDC()

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

画刷的使用:

CBrush bsh(RGB(255, 0, 0));
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin, point), &bsh);
创建一个位图的画刷:

CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin, point), &brush);
CWnd::OnLButtonUp(nFlags, point);