SimpleWindow
载入中...
搜索中...
未找到
RoutedEvent.h
1#pragma once
2
3#include "Delegate.h"
4#include <cstdint>
5
6namespace sw
7{
11 enum RoutedEventType : uint32_t {
12 // 从该值开始到RoutedEventType_UserEnd结束表示用户可以自定义路由事件的值范围
13 RoutedEventType_User = 0,
14
15 // 用户自定义路由事件的值的最大值
16 RoutedEventType_UserEnd = 0x80000000,
17
18 // 尺寸改变,参数类型为sw::SizeChangedEventArgs
19 UIElement_SizeChanged,
20
21 // 位置改变,参数类型为sw::PositionChangedEventArgs
22 UIElement_PositionChanged,
23
24 // Text属性发生变化,参数类型为sw::RoutedEventArgs
25 UIElement_TextChanged,
26
27 // 获取到焦点,参数类型为sw::RoutedEventArgs
28 UIElement_GotFocus,
29
30 // 失去焦点,参数类型为sw::RoutedEventArgs
31 UIElement_LostFocus,
32
33 // 输入字符,参数类型为sw::GotCharEventArgs
34 UIElement_GotChar,
35
36 // 键盘按键按下,参数类型为sw::KeyDownEventArgs
37 UIElement_KeyDown,
38
39 // 键盘按键抬起,参数类型为sw::KeyUpEventArgs
40 UIElement_KeyUp,
41
42 // 鼠标移动,参数类型为sw::MouseMoveEventArgs
43 UIElement_MouseMove,
44
45 // 鼠标离开,参数类型为sw::RoutedEventArgs
46 UIElement_MouseLeave,
47
48 // 鼠标滚轮滚动,参数类型为sw::MouseWheelEventArgs
49 UIElement_MouseWheel,
50
51 // 鼠标按键按下,参数类型为sw::MouseButtonDownEventArgs
52 UIElement_MouseButtonDown,
53
54 // 鼠标按键抬起,参数类型为sw::MouseButtonUpEventArgs
55 UIElement_MouseButtonUp,
56
57 // 要显示用户自定义的上下文菜单前触发该事件,参数类型为sw::ShowContextMenuEventArgs
58 UIElement_ShowContextMenu,
59
60 // 接收到文件拖放,参数类型为sw::DropFilesEventArgs
61 UIElement_DropFiles,
62
63 // 窗口正在关闭,参数类型为sw::WindowClosingEventArgs
64 Window_Closing,
65
66 // 窗口已关闭,参数类型为sw::RoutedEventArgs
67 Window_Closed,
68
69 // 窗口成为前台窗口,参数类型为sw::RoutedEventArgs
70 Window_Actived,
71
72 // 窗口成为后台窗口,参数类型为sw::RoutedEventArgs
73 Window_Inactived,
74
75 // 按钮被单击,参数类型为sw::RoutedEventArgs
76 ButtonBase_Clicked,
77
78 // 按钮被双击,参数类型为sw::RoutedEventArgs
79 ButtonBase_DoubleClicked,
80
81 // 分割按钮的下拉箭头被单击,参数类型为sw::SplitButtonDropDownEventArgs
82 SplitButton_DropDown,
83
84 // 列表视图/列表框/组合框的选中项改变,参数类型为sw::RoutedEventArgs
85 ItemsControl_SelectionChanged,
86
87 // 列表视图某个复选框的选中状态改变,参数类型为sw::ListViewCheckStateChangedEventArgs
88 ListView_CheckStateChanged,
89
90 // 鼠标左键单击列表视图的列标题,参数类型为sw::ListViewHeaderClickedEventArgs
91 ListView_HeaderClicked,
92
93 // 鼠标左键双击列表视图的列标题,参数类型为sw::ListViewHeaderDoubleClickedEventArgs
94 ListView_HeaderDoubleClicked,
95
96 // 鼠标左键单击列表视图某个项,参数类型为sw::ListViewItemClickedEventArgs
97 ListView_ItemClicked,
98
99 // 鼠标左键单击列表视图某个项,参数类型为sw::ListViewItemDoubleClickedEventArgs
100 ListView_ItemDoubleClicked,
101
102 // 编辑状态结束,参数类型为sw::ListViewEndEditEventArgs
103 ListView_EndEdit,
104
105 // 滑块的值被改变,参数类型为sw::RoutedEventArgs
106 Slider_ValueChanged,
107
108 // 滑块被释放,参数类型为sw::RoutedEventArgs
109 Slider_EndTrack,
110
111 // 窗口/面板滚动条滚动,参数类型为sw::ScrollingEventArgs
112 Layer_Scrolling,
113
114 // SelectedIndex属性被改变,参数类型为sw::RoutedEventArgs
115 TabControl_SelectedIndexChanged,
116
117 // DateTimePicker控件的时间改变,参数类型为sw::DateTimePickerTimeChangedEventArgs
118 DateTimePicker_TimeChanged,
119
120 // 月历控件的时间改变,参数类型为sw::MonthCalendarTimeChangedEventArgs
121 MonthCalendar_TimeChanged,
122
123 // IP地址框地址被改变,参数类型为sw::RoutedEventArgs
124 IPAddressControl_AddressChanged,
125
126 // SysLink控件链接被单击,参数类型为sw::SysLinkClickedEventArgs
127 SysLink_Clicked,
128
129 // 热键框的值被改变,参数类型为sw::HotKeyValueChangedEventArgs
130 HotKeyControl_ValueChanged,
131
132 // 树视图节点正在展开或折叠,参数类型为sw::TreeViewItemExpandingEventArgs
133 TreeView_ItemExpanding,
134
135 // 树视图节点已展开或折叠,参数类型为sw::TreeViewItemExpandedEventArgs
136 TreeView_ItemExpanded,
137
138 // 树视图节点的复选框选中状态被改变,参数类型为sw::TreeViewCheckStateChangedEventArgs
139 TreeView_CheckStateChanged,
140 };
141
142 /*================================================================================*/
143
144 class UIElement; // UIElement.h
145
153 RoutedEventType eventType;
154
158 bool handled = false;
159
163 bool handledMsg = false;
164
168 UIElement *source = nullptr;
169
174
178 RoutedEventArgs(RoutedEventType eventType);
179 };
180
186}
Definition Delegate.h:21
表示界面中的元素
Definition UIElement.h:90
路由事件的参数
Definition RoutedEvent.h:149
RoutedEventType eventType
事件类型
Definition RoutedEvent.h:153
UIElement * originalSource
原始事件源,指向最初触发事件的UIElement
Definition RoutedEvent.h:173
bool handled
事件是否已被处理,若将此字段设为true,则事件不会继续往上传递
Definition RoutedEvent.h:158
UIElement * source
事件源,指向触发当前事件的UIElement
Definition RoutedEvent.h:168
bool handledMsg
表示是否已处理事件所对应的Windows消息,对于部分消息将字段设为true可取消对DefaultWndProc的调用,若当前事件无对应消息则该字段无意义
Definition RoutedEvent.h:163
RoutedEventArgs(RoutedEventType eventType)
RoutedEventArgs构造函数