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
17 using NotifyIconMouseEventHandler = Delegate<bool(NotifyIcon &, const Point &)>;
18
22 class NotifyIcon : public WndBase
23 {
24 private:
28 using TBase = WndBase;
29
33 NOTIFYICONDATAW _nid{};
34
38 sw::ContextMenu *_contextMenu = nullptr;
39
40 public:
45
50
55
60
65
70
75
80
81 public:
86
91
92 protected:
96 virtual LRESULT WndProc(ProcMsg &refMsg) override;
97
102 virtual void OnMenuCommand(int id) override;
103
107 virtual void OnNotyfyIconMessage(WPARAM wParam, LPARAM lParam);
108
113 virtual void OnClicked(const Point &mousePos);
114
119 virtual void OnDoubleClicked(const Point &mousePos);
120
125 virtual void OnContextMenuOpening(const Point &mousePos);
126
130 NOTIFYICONDATAW &GetNotifyIconData();
131
132 public:
136 bool Show();
137
141 bool Hide();
142
147 void Destroy();
148
157 const Point &point,
158 sw::HorizontalAlignment horz = sw::HorizontalAlignment::Left,
159 sw::VerticalAlignment vert = sw::VerticalAlignment::Bottom);
160
161 private:
165 bool _ShellNotifyIcon(DWORD dwMessage);
166
170 bool _AddIcon();
171
175 bool _DeleteIcon();
176
180 bool _ModifyIcon();
181
185 bool _ModifyState(DWORD dwState, DWORD dwStateMask);
186
190 HICON _GetDefaultIcon();
191 };
192}
上下文菜单
Definition ContextMenu.h:11
系统托盘通知图标
Definition NotifyIcon.h:23
virtual void OnContextMenuOpening(const Point &mousePos)
打开上下文菜单前调用该函数
NotifyIconMouseEventHandler Clicked
当图标被单击时触发该事件
Definition NotifyIcon.h:69
const Property< bool > Visible
图标是否可见
Definition NotifyIcon.h:54
virtual void OnMenuCommand(int id) override
当WM_COMMAND接收到菜单命令时调用该函数
~NotifyIcon()
析构函数
void Destroy()
销毁通知图标
NOTIFYICONDATAW & GetNotifyIconData()
获取通知图标数据
const Property< HICON > Icon
图标
Definition NotifyIcon.h:44
NotifyIconMouseEventHandler DoubleClicked
当图标被双击时触发该事件
Definition NotifyIcon.h:74
const ReadOnlyProperty< sw::Rect > Rect
图标在屏幕上的位置和尺寸
Definition NotifyIcon.h:64
const Property< std::wstring > ToolTip
图标的提示文本
Definition NotifyIcon.h:49
bool Hide()
隐藏通知图标
const Property< sw::ContextMenu * > ContextMenu
右键菜单
Definition NotifyIcon.h:59
bool Show()
显示通知图标
NotifyIconMouseEventHandler ContextMenuOpening
打开上下文菜单前触发该事件
Definition NotifyIcon.h:79
virtual void OnNotyfyIconMessage(WPARAM wParam, LPARAM lParam)
处理通知图标消息
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)
弹出上下文菜单
属性
Definition Property.h:1743
只读属性
Definition Property.h:1828
表示一个Windows窗口,是所有窗口和控件的基类
Definition WndBase.h:41
WndBase()
初始化WndBase
表示相对于左上角的点坐标
Definition Point.h:15
对Windows窗口消息的封装
Definition ProcMsg.h:10