MFC中的绘图

来源:互联网 发布:野荸荠淘宝 编辑:程序博客网 时间:2024/06/04 01:07
MFC的绘图
  1 相关类
      1,1 绘图设备类
      CDC类 - 提供了绘图设备的基本功能
           CWindowDC类 - 父类是CDC类,主要表示指定的窗口,包括客户区和非客户区
CClientDC
CPaintDC
CMetaFileDC.保存图形的绘制的代码,以便将来多次使用




CDC类的使用
   创建DC
    virtual BOOL CreateDC
(


    LPCTSTR lpszDriveName,
LPCTSTR lpszDeviceName,
LPCTSTR lpszOutput, //设备的接口
const void* lpInitData // 初始化数据
) ;


如果表示显示器
     CreateDC("DISPLAY",NULL,NULL,NULL)
使用
   在设备绘图,输出字符等操作
   MoveTo/LineTo/TextOut
   删除DC
   CDC:DeleteDC,
   
   
   绘图对象类的使用
       3.1 画笔,画刷和字体的使用步骤
      3.1.1 创建绘图对象
  3.1.2 将绘图对象选入到当前的绘图设备中
  3.1.3 使用绘图对象
  3.1.4 将绘图对象从当前的绘图设备中选出
  
  // 画笔的使用
  CPen pen(PS_SOLID,10,RGB(255,0,0));
  // 选入到绘图设备
  CClientDC dc(this);
  dc.SelectObject(&pen);
  CPen* pOldPen = dc.SelectObject(&pen);
  dc.Rectangle(100,100,300,300)
  
  ... 画刷的使用
  CBitmap bmp;
  bmp.LoadBitmap(..);
  CBrush brush(&bmp);
  
  // 字体的使用
  CFont font;
  font.CreatePointFont(1000,"黑体");
  CClientDC dc(this);
  CFont* pOldFont = dc.SelectObject(&font);
  dc.TextOut()
  dc.SelectObject(pOldFont);
  font.DeleteObject();
  
  
  位图.............
  
  CBitmap bmp;
  bmp.LoadBitmap(ID);
  CClientDC dc(this);
  CDC dcBmp;
  dcBmp.CreateCompatibleDC(&dc);
  dcBmp.SelectObject(&bmp);
  dcBmp.BitBlt(0,0,800,600,&dcBmp,0,0,SRCCOPY);
  // dcBmp.StretchBlt(0,0,800,600,&dcBmp,0,0,cx,cy,SRCCOPY);
  
  dcBmp.DeleteDC();
  bmp.DeleteObject();
  
  
 3.3 区域的使用步骤
      3.3.1 创建区域
     CRgn::CreateXXX
  3.3.2 CombineRgn
       CRgn rgn1,rgn2;
rgn1.CreateEllipticRgn(100,100,300,300);
rgn2.CreateEllipticRgn(200,100,400,300);




           
          1000 0000
                
   




   
0 0
原创粉丝点击