fou*_*fou 1 c windows winapi trayicon system-tray
我的目标是为我的应用程序的所有窗口设置一个图标.
经过一些阅读,我的理解是通过创建托盘图标Shell_NotifyIcon()
.此函数获取NOTIFYICONDATA
包含hWnd
字段的结构.这HWND
是由系统使用以通知托盘图标事件相应的窗口.这些事件由WindowProc
在窗口上设置的回调处理SetWindowLongPtr()
.
因此我的问题:
Shell_NotifyIcon()
多次使用不同的NOTIFYICONDATA
结构,每个结构都有不同的结构hWnd
,但图标相同吗?创建隐藏代理窗口是否适合作为解决方案?
一些背景:我的应用程序使用C调用WinAPI(使用js-ctypes),理想情况下应该适用于XP上的所有Windows版本.
你几乎在问题本身回答了你自己的问题.最好的办法是创建一个隐藏的窗口,只要您需要托盘图标存在,该窗口就能存活下来.
您Shell_NotifyIcon()
只需要在hWnd
引用此隐藏窗口时调用一次,并使此窗口将消息发布到需要接收它们的各个窗口.
这也使您能够灵活地决定跳过向特定窗口发送消息,或者能够向每个窗口发送不同的消息,具体取决于您的特定应用程序的要求.
归档时间: |
|
查看次数: |
173 次 |
最近记录: |