方法一:在OnMouseMove方法最前面加上局部刷新的代码:
RECT rect; //刷新区域
rectleft=800; //区域最左端
recttop=300;//区域最顶端
rectright=rectleft+100;//宽
rectbottom=recttop+30;//高
InvalidateRect(&rect);
UpdateWindow();
方法二:在文字输出(TextOut一句)前先把该区域用背景色刷一遍,用FillRect函数,即类似于dcFillRect(rect,brush);
控件不会默认捕获鼠标消息,因此处理代码放在对话框的OnLButtonDown这样的鼠标消息中即可。
鼠标消息函数会默认带入鼠标位置,而框的位置可以通过控件变量或指针的GetWindowRect获取。
之后通过rectPtInRect(point)函数即可判断鼠标是否在上,至于上的具体位置,就需要你通过CRect或者CRgn来一一记录了(这并不太容易),之后依然是通过PtInRect和CRgn的PtInRegion来判断是否在区域(这需要一个循环语句)。
至于显示另一个,通过CBitmap导入资源后,就是控件的SetBitmap就可以了。
以上就是关于如何在MFC的OnMouseMove消息处理函数中得到鼠标的坐标全部的内容,包括:如何在MFC的OnMouseMove消息处理函数中得到鼠标的坐标、mfc中如何通过点击图片控件上的某个点获取鼠标位置来判断属于哪个区域然后让图片控件显示另一张图片,、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)