文档详情

Visual C++ 6.0实例教程 第2章新.ppt

发布:2015-12-13约5.85千字共19页下载文档
文本预览下载声明
第2章 文档和视 2.1 通过视类与用户交互 学习目标 1. 在程序中响应鼠标消息 在程序中响应键盘消息 程序的实现步骤 利用AppWizard生成单文档程序框架(DocView ) 为视类添加数据成员 4.为视类添加鼠标动作响应函数 4.为视类添加鼠标动作响应函数 程序的实现步骤_2 1.为视类添加数据成员为视类添加数据成员 3.为视类添加键盘消息响应函数 基本知识 AfxGetApp() LoadStandardCursor(IDC_CROSS); 2.GetClientRect(rect); // 得到客户窗口的大小 3.ClientToScreen(rect); // 将当前窗口坐标转换成屏幕坐标 4.ClipCursor(rect); // 把鼠标限定在其参数指定的矩形区域内 5.SetCursor(m_hCross); // 设置鼠标形状为十字形 2.2 利用文档类处理数据 学习目标 1. 在文档类中保存数据 程序的实现步骤 添加类CLine 程序的实现步骤 2.在文档类中添加保存数据的变量 程序的实现步骤 程序的实现步骤 程序的实现步骤 程序的实现步骤 程序的实现步骤 * 内容摘要: 通过视类与用户交互 通过视类与用户交互 返回目录 2.1 返回第2章 2.1 BOOL m_bMouseDown; //标识鼠标左键是否按下 HCURSOR m_hCross; //十字型鼠标句柄 HCURSOR m_hArrow; //标准型鼠标句柄 CPoint m_ptOld; //临时点 CPoint m_ptStart; //画线的起始点 3. 在构造函数中初始化成员变量 CDocViewView::CDocViewView() { m_bMouseDown = false; m_hCross = AfxGetApp()-LoadStandardCursor(IDC_CROSS); m_hArrow = AfxGetApp()-LoadStandardCursor(IDC_ARROW); } 2.1 void CDocViewView:: OnLButtonDown (UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_bMouseDown = true; // 鼠标左键按下 m_ptStart = point; // 画线的起点 m_ptOld = point; // 临时点 SetCapture(); // 将鼠标消息发送到视窗口 CRect rect; GetClientRect(rect); // 得到客户窗口的大小 ClientToScreen(rect); // 将当前窗口坐标转换成屏幕坐标 ClipCursor(rect); // 把鼠标限定在其参数指定的矩形区域内 SetCursor(m_hCross); // 设置鼠标形状为十字形 CView::OnLButtonDown(nFlags, point); } 2.1 void CMyDrawView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if( m_bMouseDown ) { CClientDC dc(this); dc.SetROP2( R2_NOT ); dc.MoveTo( m_ptStart ); //这两行代码擦除从起点(鼠标按下点)到 dc.LineTo( m_ptOld ); //上次鼠标移动到的位置之间的临时线 dc.MoveTo( m_ptStart ); //这两行代码从起点到鼠标当前位置画线 dc.LineTo( point ); // m_ptOld = point; //鼠标当前位置在下一次鼠标移动事件看来就是旧位置 } CView::OnMouseMove(nFlags, point); } void CMyDrawView::OnLButtonUp(UINT nFlags, CPo
显示全部
相似文档