这堂课听得比较散,以后再补吧
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);