Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can you have a win32 program that consists solely of a tray (notification) icon?

I have a program that literally consists of a tray icon. No GUI is needed. However, when writing the win32 code, is it necessary to still initialize a hWnd object to be associated with the tray icon?

For instance, it is normal to have a the NOTIFYICONDATA hWnd field point to the window's handle. Like

nid.hWnd = hwnd;

Essentially, will my icon be able to still receive messages if i set

nid.hwnd = NULL;
like image 456
Steve Barna Avatar asked Jan 18 '23 15:01

Steve Barna


2 Answers

How would you receive messages without a window?

Yes you need a window associated with the tray icon.

like image 93
tenfour Avatar answered May 13 '23 10:05

tenfour


You could create a message-only window by specifying HWND_MESSAGE creating the window. However, message-only windows do not receive broadcast messages and you would miss out on the TaskbarCreated message. This message tells your application that explorer.exe has restarted and that your application needs to re-add its notification icons. Rather important. So create a window that never becomes visible: never call ShowWindow().

like image 26
Kay Zed Avatar answered May 13 '23 10:05

Kay Zed