创建一个Windows系统托盘程序的步骤如下:
初始化
定义一个`NOTIFYICONDATA`结构体,并设置其`cbSize`成员为结构体的大小,通常为`sizeof(NOTIFYICONDATA)`。
设置`hWnd`成员为你的应用程序的主窗口句柄。
设置`uID`成员为一个唯一的标识符,用于识别托盘图标。
设置`uFlags`成员,通常使用`NIF_MESSAGE | NIF_ICON | NIF_TIP`来显示图标、提示文本和响应鼠标事件。
设置`uCallbackMessage`成员为一个自定义的消息,用于处理托盘图标的事件,例如`WM_USER + 10`。
设置`hIcon`成员为你的应用程序图标的句柄。
设置`szTip`成员为托盘图标的提示文本,长度最多为64个字符。
添加/修改/移除图标
使用`Shell_NotifyIcon`函数来添加、修改或移除托盘图标。
添加图标:`Shell_NotifyIcon(NIM_ADD, ¬ifyIconData);`
修改图标:`Shell_NotifyIcon(NIM_MODIFY, ¬ifyIconData);`
移除图标:`Shell_NotifyIcon(NIM_DELETE, ¬ifyIconData);`
添加托盘消息响应函数
在你的应用程序中处理`uCallbackMessage`指定的自定义消息。
在消息映射中添加一个条目,将自定义消息映射到相应的处理函数。
添加菜单消息处理函数
创建一个上下文菜单(`ContextMenuStrip`),并将其与托盘图标关联。
为上下文菜单中的每个菜单项添加命令消息处理函数。
处理托盘图标事件
例如,当用户双击托盘图标时,可以显示或隐藏应用程序窗口。
可以使用`Shell_NotifyIcon`函数的`uFlags`参数中的`NIF_MESSAGE`标志来指定`WM_LBUTTONUP`消息,并在处理函数中实现双击事件的逻辑。