如果检测到鼠标移动,则在对话框窗口C ++ MFC中显示光标

时间:2016-03-01 17:23:22

标签: c++ mfc cursor detect mousemove

用C ++编写的程序MFC有一个对话窗口,可播放全屏视频并隐​​藏光标。

  1. 我想在鼠标移动时显示光标 (视频在后台播放)

  2. 当鼠标处于非活动状态3秒时,光标消失(视频 还在玩)

  3. 示例:它就像全屏模式下的任何视频播放器一样,如果鼠标处于非活动状态并且鼠标移动使控件返回,则隐藏控件。

    我试过了

    if(WM_MOUSEMOVE)
    {ShowCursor(TRUE)}
    
    BOOL CDialog1::OnInitDialog()

    中的

    但即使没有鼠标移动,它也会显示(TRUE)。

    谢谢!

1 个答案:

答案 0 :(得分:3)

此代码:

I have tried if(WM_MOUSEMOVE) {ShowCursor(TRUE)

} in the BOOL CDialog1::OnInitDialog()

如果它是伪代码,if(WM_MOUSEMOVE)等同于if(true)

你应该做的是捕捉WM_MOUSEMOVE消息,然后显示你的光标,仍然在这个消息处理程序中设置一个时间计时器,例如3秒,在计时器处理程序中隐藏你的光标。请记住每次收到WM_MOUSEMOVE时重新创建计时器,这样它就会重置它,从开始时再次开始计数。

我没有详细介绍,因为这个问题不是关于如何使用MFC接收消息,对吧?你不会在OnInitDialog内收到消息。

BOOL CDlg::PreTranslateMessage(MSG* pMsg)
{
  if (pMsg->message == WM_MOUSEMOVE)
  {}
  return CDialogEx::PreTranslateMessage(pMsg);
}