我想问问MFC……

huasonl88 2009-04-17 11:21:22
我是初学者,学的过程中有很多的疑惑,在这希望能得到各位的指点,谢了!
在写消息的时候,什么时候要用到触发函数Invalidate()?而我有时候看到书上又有个InvalidateRect()函数来触发Ondraw()函数,这两个有什么区别?InvalidateRect()有时又有两个参数,不知道是表达什么意思?我搞不懂,我在用的时候到底要用到哪个函数来触发 ,还是两个都可以?还有,触发函数就只有这两种吗?一定要写吗?
顺便问问,在OnLButtonDown()函数里的两个参数表示什么意思?有什么用途?可以不写吗?在写OnLButtonDown()函数时,有这么一句CView::OnLButtonDown(nFlags,point);不知道这句有什么用?因为我把它删了一样可以运行!
...全文
98 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
IONPhantom 2009-04-18
  • 打赏
  • 举报
回复
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.

第一个参数是在鼠标单击的时候是否有上面列出的几个键被按下
第二个参数是党鼠标单击的时候鼠标的位置

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧