C++;QT桌面工具栏 在Q+-/P>中,有没有一种方法能在C++中应用“NETOP VIEW”中的工具栏?

C++;QT桌面工具栏 在Q+-/P>中,有没有一种方法能在C++中应用“NETOP VIEW”中的工具栏?,c++,windows,qt,toolbar,C++,Windows,Qt,Toolbar,工具栏如下所示: 并由应用程序自动打开。它停靠在屏幕的上边框,当鼠标悬停时才显示出来。有没有可能重现这样的东西 提前谢谢 1.使其看起来像窗口构造函数中的面板过程Qt::FramelessWindowHint标志 2.要将其固定到显示器顶部,请使用QDesktopWidget().availableGeometry()获取显示器大小并将窗口移动到显示器顶部 3.清除窗口构造函数中的任务栏项passQt::Tool标志。所以它看起来是这样的: MyWindowWidget(QWidget* par

工具栏如下所示: 并由应用程序自动打开。它停靠在屏幕的上边框,当鼠标悬停时才显示出来。有没有可能重现这样的东西


提前谢谢

1.使其看起来像窗口构造函数中的面板过程
Qt::FramelessWindowHint
标志

2.要将其固定到显示器顶部,请使用
QDesktopWidget().availableGeometry()
获取显示器大小并将窗口移动到显示器顶部

3.清除窗口构造函数中的任务栏项pass
Qt::Tool
标志。所以它看起来是这样的:

MyWindowWidget(QWidget* parent)
    : QWidget(parent, Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint)
{

}
4.Qt不能处理全局鼠标事件。您应该使用WINAPI来安装全局钩子并处理所有鼠标事件

a) 安装:

HINSTANCE hInstance = GetModuleHandle(NULL);

HHOOK hMouseHook = SetWindowsHookEx( WH_MOUSE_LL, mouseProc, hInstance, NULL );
b) 过程:


您正在使用Qt Creator吗?
LRESULT CALLBACK mouseProc (int nCode, WPARAM wParam, LPARAM lParam)
{
  MOUSEHOOKSTRUCT * pMouseStruct = (MOUSEHOOKSTRUCT *)lParam;
  if (pMouseStruct != NULL)
  {
    if(wParam == WM_MOUSEMOVE)
    {
      int x = pMouseStruct->pt.x;
      int y = pMouseStruct->pt.y;

      //g_myWindowWidget is a pointer to an instance of MyWindowWidget
      g_myWindowWidget->processMouseMove(x, y);
    }        
  }
  return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}

void MyWindowWidget::processMouseMove(int x, int y)
{
 const bool hasMouse = rect().contains(mapFromGlobal(QPoint(x, y)));
 if (hasMouse && !isVisible())
    show();
 else if (!hasMouse() && isVisible())
    hide();
}