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

If mouse movement detected, show cursor in a dialog window C++ MFC

用C++ MFC写的程序有一个对话框Window播放全屏视频,光标隐藏

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

  2. 鼠标不活动3秒后光标消失(视频 还在玩)

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

我试过了

if(WM_MOUSEMOVE)
{ShowCursor(TRUE)}

BOOL CDialog1::OnInitDialog()

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

谢谢!

此代码:

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);
}