您的位置:首页 > 编程语言 > C语言/C++

孙鑫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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: