基本事件处理,映射模式和滚动视图
一,获得用户的输入-----消息映射函数
1,消息映射
2,保存视图的状态----类数据成员
3,无效矩形的理论
首先,必须清楚windows只更新那些在无效矩形区内的像素。因此,使无效矩形变得越小,重绘就越快。在调用OnDraw之前,会先调用InvalidateRect。其次,在无效矩形外执行绘图指令是浪费时间。OnDraw函数可以通过调用CDC成员函数GetClipBox来确定无效矩形。
4,窗口的客户区
CWnd成员函数GetClientRect提供客户区的尺寸。
二,CRect,CPoint,CSize
CRect: 左,上,右,底
CPoint:x,y
CSize:cx,cy
这三个类有大量的重载运算符
1,判断一个点是否在矩形的内部
CRect成员函数PtInRect
2,CRect LPCRECT运算符
CRect rectClient;
GetClientRect.GetClientRect(rectClient);
//获取客户矩形区域坐标,存在rectClient
3,判断一个点是否在椭圆内部
先构造一个椭圆类的对象,然后使用椭圆类的成员函数PtInRegion
CRgn rgn;
rgn.CreateEllipticRgnIndirect(m_rect);
if(rgn.PtInRegion(point))
{//...}
三,CScrollView
一个重要的成员函数SetScrollSizes