VC6.0 如何实现按钮响应鼠标MoveOn消息
类似VS2005中的按钮,就是鼠标移动到按钮上后,按钮有所反应,大家来讨论一下,踊跃发言,重在参与
已经解决了,我的方法是这样了,有哪位高手有更好的可以拿来交流
首先为主对话框增加一个WM_MOUSEMOVE消息响应函数
其中增加代码如下:
this->GetWindowRect(rect_win); //rect_win为Dlg类的全局对象 CRect类
CWnd * pwnd=GetDlgItem(IDOK); //对OK按钮进行操作
if(!changedok) //changedok为Dlg类的全局对象 bool型
{
pwnd->GetWindowRect(rect_ok);//获取 OK按钮所占区域
ScreenToClient(rect_ok);
oldrect=rect_ok;
rect_ok.top-=5; //调整区域大小,以便捕捉到鼠标移动到按钮区域的消息
rect_ok.left-=5;
rect_ok.bottom+=5;
rect_ok.right+=5;
}
if(rect_ok.PtInRect(point)) //检查鼠标是否移动到按钮上
{
pwnd->MoveWindow(rect_ok); //放大按钮
rect_ok=oldrect;
changedok=true;
}
else
{
if(changedok)
{
pwnd->MoveWindow(rect_ok); //鼠标移出按钮,回复按钮大小
changedok=false;
}
}