我是初学者,学的过程中有很多的疑惑,在这希望能得到各位的指点,谢了!
在写消息的时候,什么时候要用到触发函数Invalidate()?而我有时候看到书上又有个InvalidateRect()函数来触发Ondraw()函数,这两个有什么区别?InvalidateRect()有时又有两个参数,不知道是表达什么意思?我搞不懂,我在用的时候到底要用到哪个函数来触发 ,还是两个都可以?还有,触发函数就只有这两种吗?一定要写吗?
顺便问问,在OnLButtonDown()函数里的两个参数表示什么意思?有什么用途?可以不写吗?在写OnLButtonDown()函数时,有这么一句CView::OnLButtonDown(nFlags,point);不知道这句有什么用?因为我把它删了一样可以运行!

解决方案 »

  1.   

    1.两个方法都能触发重绘,Invalidate 是把整个窗口全部进行重绘, InvalidateRect是只重绘窗口的一部分,第一个参数就是指明需要重绘部分的坐标,第二个参数表明是否背景跟着一起重绘.2.OnLButtonDown实质上是一个消息的回调函数,是系统告诉你有鼠标单击操作了,你可以理它也可以不理它.关于参数MSDN说的很明白
    afx_msg void OnLButtonDown(
       UINT nFlags,
       CPoint point 
    );
    nFlags
    Indicates whether various virtual keys are down. This parameter can be any combination of the following values:MK_CONTROL   Set if the CTRL key is down.MK_LBUTTON   Set if the left mouse button is down.MK_MBUTTON   Set if the middle mouse button is down.MK_RBUTTON   Set if the right mouse button is down.MK_SHIFT   Set if the SHIFT key is down.point
    Specifies the x- and y-coordinate of the cursor. These coordinates are always relative to the upper-left corner of the window.第一个参数是在鼠标单击的时候是否有上面列出的几个键被按下
    第二个参数是党鼠标单击的时候鼠标的位置