MFC顶用 OnMouseHover实现鼠标在按钮上时对其他控件的操作
MFC中用 OnMouseHover实现鼠标在按钮上时对其他控件的操作
前提:我在界面中做了一个按钮,一个GIF图片;GIF图片在按钮的正上方,且GIF设置了visable=false
我是想用 OnMouseHover消息在MFC中实现鼠标放在按钮上时,按钮隐藏,GIF图片显示出来
在实际使用中, OnMouseHover在MyButton类中实现,在鼠标移动在上面是后台可以相应 OnMouseHover函数,但是因为不是在对话框类中,所以不能对GIF图片控件进行操作,显示未识别的标识符。。。请问怎么解决?
------解决思路----------------------
你都创建了控件了,怎么可能无法获取指针
------解决思路----------------------
用 一个 GIF图片控件 (CStatic) 就可以 不要 多 一层 按钮
------解决思路----------------------
你的Dlg响应button的mouseHover去更改dlg里的东西才是正确的做法,不然你的代码没有复用性,你可以在button的mousehover执行的时候向dlg发送命令消息表示hover发生了
dlg通过重写OnCommand来拦截
------解决思路----------------------
重载CWinApp的PreTranslateMessage, 把 WM_MOUSEFIRST 到 WM_MOUSELAST 之间的消息派发到主显示界面窗口,这样就可以在主显示界面的 PreTranslateMessage 中根据鼠标位置来处理了
------解决思路----------------------
不要那个 按钮,
就是一个 Pic
在 对话框 mousemove 中 HitTest 鼠标 是不是 在 pic 内(pic 隐藏, 但 那个 矩形 还在), 如果 是 pic 显示,否则隐藏
------解决思路----------------------
button中可以得到父对话框的指针,GetParent.....什么的,可以查一下。
然后将自己隐藏。可以用SetWindowPos.
最后将父对话框中静态控件显示出来,用消息用ID都可以。
前提:我在界面中做了一个按钮,一个GIF图片;GIF图片在按钮的正上方,且GIF设置了visable=false
我是想用 OnMouseHover消息在MFC中实现鼠标放在按钮上时,按钮隐藏,GIF图片显示出来
在实际使用中, OnMouseHover在MyButton类中实现,在鼠标移动在上面是后台可以相应 OnMouseHover函数,但是因为不是在对话框类中,所以不能对GIF图片控件进行操作,显示未识别的标识符。。。请问怎么解决?
------解决思路----------------------
你都创建了控件了,怎么可能无法获取指针
------解决思路----------------------
用 一个 GIF图片控件 (CStatic) 就可以 不要 多 一层 按钮
------解决思路----------------------
你的Dlg响应button的mouseHover去更改dlg里的东西才是正确的做法,不然你的代码没有复用性,你可以在button的mousehover执行的时候向dlg发送命令消息表示hover发生了
#define BUTTON_HOVER_MESSAGE 1
button.SendMessage(WM_COMMAD, MAKEWPARAM(button-id, BUTTON_HOVER_MESSAGE))
dlg通过重写OnCommand来拦截
------解决思路----------------------
重载CWinApp的PreTranslateMessage, 把 WM_MOUSEFIRST 到 WM_MOUSELAST 之间的消息派发到主显示界面窗口,这样就可以在主显示界面的 PreTranslateMessage 中根据鼠标位置来处理了
------解决思路----------------------
不要那个 按钮,
就是一个 Pic
在 对话框 mousemove 中 HitTest 鼠标 是不是 在 pic 内(pic 隐藏, 但 那个 矩形 还在), 如果 是 pic 显示,否则隐藏
------解决思路----------------------
button中可以得到父对话框的指针,GetParent.....什么的,可以查一下。
然后将自己隐藏。可以用SetWindowPos.
最后将父对话框中静态控件显示出来,用消息用ID都可以。