读书人

鼠标滚轮事件解决办法

发布时间: 2012-04-13 13:50:24 作者: rapoo

鼠标滚轮事件
dialog窗口中触发鼠标滚轮事件,窗口大小不变,内容缩放,代码如下:
if (zDelta>0)
{
rect.top-=0.5;
rect.left-=0.5;
rect.bottom+=0.5;
rect.right+=0.5;
}
else
{
rect.top+=0.5;
rect.left+=0.5;
rect.bottom-=0.5;
rect.right-=0.5;
}
pDC = GetDC();
pDC->Rectangle(&rect);
ReleaseDC(pDC);


怎么不可以,请高手指点

[解决办法]
我觉得是你没有redrawwindows,或者invaliderect,就是说重新画了界面之后,没有刷新。
[解决办法]
1:设置个断点,确定接收到并正确响应了WM_MOUSEWHEEL消息
2:The Rectangle function draws a rectangle. The rectangle is outlined by using the current pen and filled by using the current brush.
3:最好把绘制部分放到OnPaint中




[解决办法]
你的rect是否是在OnInitialUpdate中获取的 另外变换的步长取整数
[解决办法]
你把绘制相关的代码都整理到OnPaint里
在这个位置调用Invalidate
[解决办法]

探讨

绘制代码都在OnPaint事件里了,在鼠标滚轮事件也Invalidate
刷新了 还是不行引用:
你把绘制相关的代码都整理到OnPaint里
在这个位置调用Invalidate

[解决办法]
你这个rect是谁的啊,如果它是视图的就更新视图,如果它是框架的就更新框架

读书人网 >VC/MFC

热点推荐