SimpleWindow
载入中...
搜索中...
未找到
NotifyIcon.h
1#pragma once
2
3#include "Alignment.h"
4#include "ContextMenu.h"
5#include "WndBase.h"
6#include <shellapi.h>
7
8namespace sw
9{
10 class NotifyIcon; // 前向声明
11
26
32
36 class NotifyIcon : public WndBase
37 {
38 private:
42 using TBase = WndBase;
43
47 NOTIFYICONDATAW _nid{};
48
52 sw::ContextMenu *_contextMenu = nullptr;
53
58
62 NotifyIconMouseEventHandler _doubleClicked;
63
67 NotifyIconMouseEventHandler _contextMenuOpening;
68
69 public:
74
79
84
89
94
99
104
109
110 public:
115
120
121 protected:
125 virtual LRESULT WndProc(ProcMsg &refMsg) override;
126
131 virtual void OnMenuCommand(int id) override;
132
136 virtual void OnNotyfyIconMessage(WPARAM wParam, LPARAM lParam);
137
142 virtual void OnClicked(const Point &mousePos);
143
148 virtual void OnDoubleClicked(const Point &mousePos);
149
154 virtual void OnContextMenuOpening(const Point &mousePos);
155
160
161 public:
165 bool Show();
166
170 bool Hide();
171
176 void Destroy();
177
186 const Point &point,
189
190 private:
194 bool _ShellNotifyIcon(DWORD dwMessage);
195
199 bool _AddIcon();
200
204 bool _DeleteIcon();
205
209 bool _ModifyIcon();
210
214 bool _ModifyState(DWORD dwState, DWORD dwStateMask);
215
219 HICON _GetDefaultIcon();
220 };
221}
上下文菜单
Definition ContextMenu.h:11
值转换器接口
Definition IValueConverter.h:14
系统托盘通知图标
Definition NotifyIcon.h:37
virtual void OnContextMenuOpening(const Point &mousePos)
打开上下文菜单前调用该函数
const Property< bool > Visible
图标是否可见
Definition NotifyIcon.h:98
virtual void OnMenuCommand(int id) override
当WM_COMMAND接收到菜单命令时调用该函数
~NotifyIcon()
析构函数
void Destroy()
销毁通知图标
NOTIFYICONDATAW & GetNotifyIconData()
获取通知图标数据
const Property< HICON > Icon
图标
Definition NotifyIcon.h:88
const Event< NotifyIconMouseEventHandler > Clicked
当图标被单击时触发该事件
Definition NotifyIcon.h:73
const Event< NotifyIconMouseEventHandler > ContextMenuOpening
打开上下文菜单前触发该事件
Definition NotifyIcon.h:83
const ReadOnlyProperty< sw::Rect > Rect
图标在屏幕上的位置和尺寸
Definition NotifyIcon.h:108
const Property< std::wstring > ToolTip
图标的提示文本
Definition NotifyIcon.h:93
bool Hide()
隐藏通知图标
const Property< sw::ContextMenu * > ContextMenu
右键菜单
Definition NotifyIcon.h:103
bool Show()
显示通知图标
virtual void OnNotyfyIconMessage(WPARAM wParam, LPARAM lParam)
处理通知图标消息
const Event< NotifyIconMouseEventHandler > DoubleClicked
当图标被双击时触发该事件
Definition NotifyIcon.h:78
virtual void OnDoubleClicked(const Point &mousePos)
鼠标双击图标时调用该函数
virtual LRESULT WndProc(ProcMsg &refMsg) override
对WndProc的封装
NotifyIcon()
初始化通知图标
virtual void OnClicked(const Point &mousePos)
鼠标单击图标时调用该函数
bool ShowContextMenu(const Point &point, sw::HorizontalAlignment horz=sw::HorizontalAlignment::Left, sw::VerticalAlignment vert=sw::VerticalAlignment::Bottom)
弹出上下文菜单
表示一个Windows窗口,是所有窗口和控件的基类
Definition WndBase.h:29
WndBase()
初始化WndBase
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
VerticalAlignment
垂直对齐方式
Definition Alignment.h:18
@ Bottom
底部对齐
HorizontalAlignment
水平对齐方式
Definition Alignment.h:8
事件参数结构体
Definition Event.h:286
通知图标鼠标事件参数
Definition NotifyIcon.h:15
Point mousePosition
鼠标位置
Definition NotifyIcon.h:19
bool handled
是否已处理该事件,默认为false
Definition NotifyIcon.h:24
表示相对于左上角的点坐标
Definition Point.h:15
对Windows窗口消息的封装
Definition ProcMsg.h:10