void CMy DrawView OnLButtonUp(UINT nFlags, CPoint point) if( m bLouse Down m bouse down false Release Captured ClipCursor( NULL) CClientDC dc(this) dc. SetROP2( R2 NOT) dc. Move To(m_ pt Start);∥这两行代码擦除从起点(鼠标按下点)到 dc Line to( m told);∥上次鼠标移动到的位置之间的临时线 dc. SetROP2( R2 COPYPEN dc. Move to( m pt start);∥这两行代码从起点到鼠标当前位置画线 dc Line To( point ) ∥ Set Cursor(m hArrow) ∥设置鼠标形状为标准箭头形 CView: OnLButtonUpnF lags, point)
void CMyDrawView::OnLButtonUp(UINT nFlags, CPoint point) { if( m_bMouseDown ) { m_bMouseDown = false; ReleaseCapture(); ClipCursor( NULL ); CClientDC dc(this); dc.SetROP2( R2_NOT ); dc.MoveTo( m_ptStart ); //这两行代码擦除从起点(鼠标按下点)到 dc.LineTo( m_ptOld ); //上次鼠标移动到的位置之间的临时线 dc.SetROP2( R2_COPYPEN ); dc.MoveTo( m_ptStart ); //这两行代码从起点到鼠标当前位置画线 dc.LineTo( point ); // SetCursor(m_hArrow); //设置鼠标形状为标准箭头形 } CView::OnLButtonUp(nFlags, point); } 2.1
程序的实现步骤2 2.1 为视类添加数据成员为视类添加数据成员 int m nline ∥记录已输入字符行数 CString m strDisplay: ∥.存当前字符串的变量 2.在构造函数中初始化成员变量 CDocViewView: CDocViewViewO M/ TODO: add construction code here m nLine =0 m bOuse Down false m cRoss= Afx GetAppo->LoadStandardCursor(IDC CROSS) m hArrow AfX GetAppo->LoadStandardCursor(IDC ARROW
程序的实现步骤_2 1.为视类添加数据成员为视类添加数据成员 2.1 int m_nLine; //记录已输入字符行数 CString m_strDisplay; //保存当前字符串的变量 2. 在构造函数中初始化成员变量 CDocViewView::CDocViewView() { // TODO: add construction code here m_nLine = 0; m_bMouseDown = false; m_hCross = AfxGetApp()->LoadStandardCursor(IDC_CROSS); m_hArrow = AfxGetApp()->LoadStandardCursor(IDC_ARROW); }