我在系统任务栏中有一个带有图标的应用程序。
右键单击任务栏图标时,它将显示一个菜单,用户可以在其中选择一个 Action 。
我发现如果我正在运行全屏应用程序,然后使用alt + esc转到任务栏图标。然后,当我右键单击该图标时,菜单将显示在Windows任务栏的后面(下方)。
在某些情况下,菜单太低,以至于无法在上下文菜单中选择最低的菜单项。
如果它不是前面的全屏应用程序,则菜单会正确显示在任务栏的顶部。我在Windows 7上也有睾丸功能,可以在全屏应用程序中正常工作。
我曾尝试使用不同的全屏应用程序(例如Internet Explorer,Notepad++),但发生了同样的事情。
我还可以看到还有许多其他应用程序(例如“Skype for business”和“Radeon Settings”)可以完成相同的操作。
Skype for business,其任务栏后面带有菜单:c++ - 任务栏后面的Windows 10任务栏菜单-LMLPHP
对于内置的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 );
}

谢谢你的帮助

最佳答案

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

关于c++ - 任务栏后面的Windows 10任务栏菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38305382/

10-11 23:07