.NET:如何将我的窗口放置在通知区域(系统托盘)附近?
我想在通知区域旁边显示一个小弹出窗口。与 Outlook/Skype/Live 类似! Messenger/etc 在显示有关新消息的通知时会执行此操作。就我而言,它将有一些输入控件(文本框、日期时间选择器、按钮...),因此简单的气泡不起作用。
诀窍是当用户有多个显示器和/或任务栏不在屏幕底部时正确执行此操作。我找不到任何可以让我确定任务栏/通知区域的位置和方向的功能。
I'd like to display a little popup window next to the notification area. It's similar to what Outlook/Skype/Live! Messenger/etc does when it displays the notification about a new message. In my case it will have some input controls (textbox, datetimepicker, buttons...) so a simple bubble won't do.
The trick is doing this correctly when the user has multiple monitors and/or the taskbar is not located at the bottom of the screen. I could not find any functions that would let me determine the position and orientation of the taskbar/notification area.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 WinAPI 调用查找任务栏位置,并根据它定位窗口
C# 示例
Use WinAPI calls to find the TaskBar position, and position your window according to it
C# Example
您需要获取通知图标的实际位置,并将弹出窗口放置在该图标附近(或您喜欢的任何位置)。
您需要相对于桌面平移 XY 位置。 AFAIK,即使在Win32 API中也没有直接的函数可以直接给你答案。
这些网站将为您提供帮助-
1. http://forum.codecall.net/ Managed-c/262-dual-monitors-window-position.html
2. http://msdn.microsoft.com/en-us/magazine/ cc188759.aspx
You need to get the actual location of your notification icon, and place your pop-up window near that (or wherever you like).
You need to translate your XY locations relative to desktop(s). AFAIK, there are no direct function, even in Win32 API which can directly give you the answer.
These sites will help you-
1. http://forum.codecall.net/managed-c/262-dual-monitors-window-position.html
2. http://msdn.microsoft.com/en-us/magazine/cc188759.aspx