孙鑫vc++ 第十一课 笔记 如何让CDC上输出的文字、图形具有保持功能

这堂课听得比较散,以后再补吧


1、另一个集合类
   CPtrArray : CObject
   该集合类的使用方法与CObArray几乎一模一样,记录指针集合

   增加元素
   CObArray::Add
   int Add(CObject* newElement);  //增加一个CObject指针
  
2、CPaintDC : CDC : CObject
   CPaintDC 在对象构造时执行了CWnd::BeginPaint,在析构的时候执行了CWnd::EndPaint  

3、void CView::OnPaint()
   {
     CPaintDC dc(this);  //构造一个CPaintDC dc
     OnPrepareDC(&dc);   //
     OnDraw(&dc);
   }
 
   CView::OnPrepareDC
   virtual void OnPrepareDC(CDC* pDC,CPrintInfo* pInfo=NULL);
   为屏幕输出调用OnDraw()之前,为打印或者打印预览为每一页调用OnPrint()之前,被框架调用
   为屏幕输出而调用,该函数缺省的是什么也不做
   在派生类当中该函数调整了设备上下文的属性

4、添加滚动条
   1 c***view.h  c***view.cpp 中 ,把cview全改为cscrollview

   2 在init****updata()中添加对滚动条的设置
     CScrollView::SetScrollSizes
     void SetScrollSizes(int nMacMode, SIZE sizeTotal, const SIZE& sizePage=sizeDefault, const SIZE& sizeLine=sizeDefault);
                         映射方式

   CDC::DPtoLP //设备坐标转换为逻辑坐标
   void DPtoLP(LPPOI/T lpPoints,int nCount=1)const;
   void DPtoLP(LPRECT lpRect)const;
   void DPtoLP(LPSIZE lpSize)const;

   CDC::LPtoDP //逻辑坐标转换为设备坐标
   void LPtoDP(LPPOI/T lpPoints,int nCount=1)const;
   void LPtoDP(LPRECT lpRect)const;
   void LPtoDP(LPSIZE lpSize)const;

   OnPrepareDC(&dc); //随时根据滚动窗口的位置来调整视口的原点

5、保存原文件
   CMetaFileDC :: CDC :: CObject
  
   CMetaFileDC :: Create
   BOOL Create(LPCTSTR lpszFilename=NULL); //文件名,NULL则创建内存原文件

   CMetaFileDC :: Close
   HMETAFILE Close();  //关闭一个原文件,返回该文件的句柄

   BOOL DeleteMetaFile(HMETAFILE hmt); //删除原文件句柄

   CopyMetaFile   //保存原文件
   HMETAFIlE CopyMetaFile(HMETAFIlE hmaScr, LPCTSTR lpesFile);  //原文件句柄,文件名

   GetEnhMetaFile  //打开原文件
   HMETAFILE GetEnhMetaFile(LPCTSTR lpesFile);

6、创建兼容位图
   CBitmap::CreateCompatibleBitmap
   BOOL CreateCompatibleBitmap(CDC* pDC,int nWidth,int nHeight);

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值