我的系统托盘中有一个带图标的应用程序
当您右键单击托盘图标时,它会显示一个菜单,用户可以在其中选择操作
我发现如果我有一个全屏应用程序运行,然后使用alt + esc来到托盘图标。然后当我右键单击图标时,菜单将显示在Windows任务栏的后面(下)
在某些情况下,菜单太低,无法在上下文菜单中选择最低的菜单项
当它不是前面的全屏应用程序时,菜单正确显示在任务栏的顶部。我还在Windows 7上测试了它可以在全屏应用下正常工作
我试过不同的全屏应用程序,如Internet Explorer,Notepad ++,但同样的事情发生
我还可以看到,还有很多其他的应用程序,如“Skype for business”和“Radeon Settings”也可以做同样的事情。
用于任务栏后面的菜单的Skype for business:
对于内置的Windows 10应用程序,这可以更好地工作
系统托盘的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 );
}
谢谢你的帮助
答案 0 :(得分:1)
这是一个Windows 10错误,我注意到许多应用程序。就像MS没有正确定义任务栏一样。差不多2年没有修复......可能在另一对夫妇。
答案 1 :(得分:0)
当遇到与催化剂控制中心托盘菜单相同的问题时,这个在W10中为我做了诀窍:
可能是客户端问题,根本与您的代码无关。
来源:http://www.thewindowsclub.com/fix-windows-7-start-menu-hides-behind-the-taskbar
答案 2 :(得分:0)
我可以确认,这似乎是Windows错误,在Windows 10实例上随机发生。当我从扩展坞对接或取消对接笔记本时,从睡眠中唤醒窗户时,似乎会发生这种情况,在此我使用了其他显示器设置。但是很难确定这是否是原因。
如果发生这种情况,我将运行具有以下内容的批处理脚本:
taskkill /F /IM explorer.exe
# Wait a few seconds
ping -n 3 127.0.0.1 > NUL 2>&1
start explorer.exe
这将重新启动Windows资源管理器,并且所有任务栏菜单再次开始出现在任务栏的前面。