鼠标移到CBitmanpButton按钮上时,按钮图片就变为另一幅图片,怎么实现?

xiaciping 2006-07-14 12:02:27
对话框上有多个CBtimapButton类的按钮,怎么样才能扑获到鼠标是在某个按钮上面,这时就改变此按钮上的图片。
void CTstBmpDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CDialog::OnMouseMove(nFlags, point);
}
...全文
228 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzjking 2006-07-18
  • 打赏
  • 举报
回复
PostMessage(WM_PAINT);
richmain 2006-07-18
  • 打赏
  • 举报
回复
afx_msg BOOL CWnd::OnSetCursor(
CWnd* pWnd,
UINT nHitTest,
UINT message
)
{
...
}
PackChen 2006-07-15
  • 打赏
  • 举报
回复
使用TrackMouse监听CM_MOUSELEAVE事件就可以了
pp7765 2006-07-15
  • 打赏
  • 举报
回复
楼上说的不错
healer_kx 2006-07-14
  • 打赏
  • 举报
回复
LoadBitamp换成别的图片呗。

通常我把这些事情放到自绘里面做。
xiaciping 2006-07-14
  • 打赏
  • 举报
回复
CBitmapButton按钮只实现了鼠标的DOWN,UP,FOCUS,DISABLED,但没有鼠标的OVER消息,所以要在OnMouseOver中实现图片改变,应该怎么判断鼠标是在哪个按钮上?
zengwenfu 2006-07-14
  • 打赏
  • 举报
回复
响应PreTranslateMessage消息。
判断pMsg是否是WM_MOUSEMOVE消息。
获得当前鼠标在屏幕的坐标 ::GetCursorPos(&point);
转为客户区坐标 ::ScreenToClient(this->m_hWnd,&point);
判断当前坐标上的控件 hwnd=::ChildWindowFromPoint(this->m_hWnd,point);
如果是你想要显示其他图片的控件那么就执行转化成另外一张图片的操作
chib 2006-07-14
  • 打赏
  • 举报
回复
www.codeproject.com上面有现成的

15,979

社区成员

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

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