Windows 10 任务栏后面的托盘菜单

Windows 10 tray menu behind taskbar

我在系统托盘中有一个带有图标的应用程序。
当您右键单击托盘图标时,它会显示一个菜单,用户可以在其中 select 执行操作。
我发现如果我有一个全屏应用程序 运行,然后使用 alt + esc 进入托盘图标。然后,当我右键单击该图标时,菜单将显示在 windows 任务栏的后面(下方)。
在某些情况下,菜单太低以至于无法 select 上下文菜单中的最低菜单项。
当它不是全屏应用程序时,菜单会正确显示在任务栏顶部。我也有 windows 7 的睾丸,它在全屏应用程序中工作正常。
我尝试过不同的全屏应用程序,如 Internet Explorer、Notepad++,但同样的事情发生了。
我还可以看到还有很多其他应用程序,如“Skype for business”和“Radeon Settings”,它们都在做同样的事情。
任务栏后面有菜单的 Skype for business:

对于内置 windows 10 个应用程序,这效果更好。
系统托盘的 Windows 时间和语言部分将使用新的 windows 10 布局(黑色)
在任务栏顶部显示菜单 Windows 声音和网络图标将隐藏任务栏,同时显示常规右键单击菜单,但保持开始菜单打开。 (不过这看起来有点奇怪)

我已尝试使用 windows SDK 中的 NotificationIcon 示例,但这也无法正常工作。

所以问题是为 windows 10 编程显示托盘上下文菜单的正确方法是什么?
我的代码看起来像这样。

case WM_RBUTTONDOWN:
{
    SetForegroundWindow();
    CMenu menu;
    menu.LoadMenu(ID_TRAY_MENU_SHOW_APP);
    CMenu* pPopup = menu.GetSubMenu ( 0 ) ;
    GetCursorPos ( &pt ) ;
    pPopup->TrackPopupMenu ( TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x, pt.y, this );
}

谢谢你的帮助

当我在 W10 中遇到与催化剂控制中心的托盘菜单相同的问题时,这个为我解决了这个问题:

  • 解锁任务栏
  • 将它移动到桌面的任何其他边
  • 锁定和解锁任务栏
  • 将任务栏放回您喜欢的位置并锁定

可能是客户端问题,与您的代码完全无关。

来源:http://www.thewindowsclub.com/fix-windows-7-start-menu-hides-behind-the-taskbar

这是一个 Windows 10 错误,我在许多应用程序中都注意到了。就好像 MS 没有正确定义任务栏一样。已经将近 2 年没有修复......也许在另一对夫妇中。

我可以确认,这似乎是一个 Windows 错误,它随机出现在我的 Windows 10 实例上。在我使用不同的显示器设置将我的笔记本电脑从扩展坞插接或拔出后,从睡眠中醒来 windows 时似乎会发生这种情况。但是很难说是不是这个原因。

如果发生这种情况,我 运行 一个包含以下内容的批处理脚本:

taskkill /F /IM explorer.exe
# Wait a few seconds
ping -n 3 127.0.0.1 > NUL 2>&1
start explorer.exe

这将重新启动 Windows 资源管理器,所有托盘菜单再次开始出现在任务栏前面。