我在客户区实现了一个图像随鼠标移动变色的代码;
void Ctest1View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int i=point.x;
int j=point.y;
if((i> 100&&i <700)&&(j> 100&&j <400)){
//BYTE * p=(BYTE *)(m_image.GetBits());
for(int n=0;n <600*300;n++){
bp[n]=(BYTE)((i-100)*255/600);
}
}
else
return;
Invalidate(FALSE);
UpdateWindow();
CView::OnMouseMove(nFlags, point);
}
可是当有遮挡窗口时 窗口重绘不了 我已经调用UpdateWindow();了 怎么回事啊
技术说的在OnDraw里面画 可是怎么跟鼠标移动联系起来啊
------解决方案--------------------------------------------------------
你先在C**View类里面添加两变量x,y
用于记录变化着的鼠标的坐标值
在OnMouseMove函数里面不断把鼠标的坐标赋给x,y,即:
void Ctest1View::OnMouseMove(UINT nFlags, CPoint point)
{
if((nFlags & MK_LBUTTON))
{
x = point.x;
y = point.y;
Invalidate();
}
CView::OnMouseMove(nFlags, point);
}
然后把上面绘制的代码写在OnDraw()里面就行啦。。