孙鑫vc++ 第十一课 笔记 如何让CDC上输出的文字、图形具有保持功能
2007-06-12 21:25
417 查看
这堂课听得比较散,以后再补吧
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);
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);
相关文章推荐
- 让CDC输出的图形具有保持功能的三种方法-3
- 让CDC输出的图形具有保持功能的三种方法-1
- 让CDC输出的图形具有保持功能的三种方法-2
- 孙鑫VC学习笔记:第十一讲 (五) 如何使窗口具有滚动条
- 孙鑫vc++ 第五课 笔记 CDC的文字处理
- 孙鑫VC学习笔记:第十一讲 图形重绘方法二 利用元文件
- 孙鑫VC学习笔记:第十三讲 保存可串行化的类对象 如何获取文档与视类指针
- 孙鑫vc++视频教程笔记之mfc输出卡拉ok变色字幕
- 孙鑫VC学习笔记:第十讲画图 改变对话框及控件的文字/背景颜色
- vc++如何将客户区存为bmp和VC实现自绘图形输出到bmp文件
- GDI学习笔记 输出文字与图形
- 孙鑫vc++ 第十课 笔记 图形的绘制
- 孙鑫VC学习笔记:第十一讲 图形的保存与重绘方法一
- 孙鑫VC学习笔记:第十三讲 (五) 保存可串行化的类对象 如何获取文档与视类指针
- 孙鑫VC学习笔记:第十一讲 (二) 图形的保存与重绘方法一
- 孙鑫VC学习笔记:第十一讲 如何把元文件保存到文件当中
- 孙鑫VC++视频学习笔记之11:图形保存和重绘
- 孙鑫vc++ 第四课 笔记 MFC消息映射机制及CDC的使用
- 孙鑫VC学习笔记 (图形的保存和重绘)
- 孙鑫VC学习笔记:第十一讲 (二) 图形的保存与重绘方法