SimpleWindow
载入中...
搜索中...
未找到
DockSplitter.h
1#pragma once
2
3#include "DockLayout.h"
4#include "Splitter.h"
5
6namespace sw
7{
11 class DockSplitter : public Splitter
12 {
13 private:
17 using TBase = Splitter;
18
22 HCURSOR _hCurHorz = NULL;
23
27 HCURSOR _hCurVert = NULL;
28
32 UIElement *_relatedElement = nullptr;
33
37 sw::Point _initialMousePos{};
38
42 sw::Size _initialRelatedElementSize{};
43
44 public:
49
54 void CancelDrag(bool restoreSize = false);
55
56 protected:
63 virtual bool OnMouseLeftButtonDown(const Point &mousePosition, MouseKey keyState) override;
64
71 virtual bool OnMouseLeftButtonUp(const Point &mousePosition, MouseKey keyState) override;
72
79 virtual bool OnMouseMove(const Point &mousePosition, MouseKey keyState) override;
80
86 virtual bool OnKillFocus(HWND hNextFocus) override;
87
94 virtual bool OnKeyDown(VirtualKey key, const KeyFlags &flags) override;
95
104 virtual bool OnSetCursor(HWND hwnd, HitTestResult hitTest, int message, bool &result) override;
105
106 private:
110 void _OnStartDrag();
111
115 void _OnEndDrag(bool restoreSize);
116
120 void _OnDragMove();
121
125 void _UpdateRelatedElement();
126
130 UIElement *_FindPreviousElement(UIElement *parent, int startIndex, sw::DockLayoutTag tag);
131 };
132}
停靠布局标记
Definition DockLayout.h:12
用于在DockLayout布局中调整停靠元素大小的分隔条
Definition DockSplitter.h:12
DockSplitter()
初始化DockSplitter
virtual bool OnKeyDown(VirtualKey key, const KeyFlags &flags) override
接收到WM_KEYDOWN时调用该函数
void CancelDrag(bool restoreSize=false)
取消拖动分隔条
virtual bool OnMouseLeftButtonDown(const Point &mousePosition, MouseKey keyState) override
接收到WM_LBUTTONDOWN时调用该函数
virtual bool OnKillFocus(HWND hNextFocus) override
接收到WM_KILLFOCUS时调用该函数
virtual bool OnSetCursor(HWND hwnd, HitTestResult hitTest, int message, bool &result) override
接收到WM_SETCURSOR消息时调用该函数
virtual bool OnMouseMove(const Point &mousePosition, MouseKey keyState) override
接收到WM_MOUSEMOVE时调用该函数
virtual bool OnMouseLeftButtonUp(const Point &mousePosition, MouseKey keyState) override
接收到WM_LBUTTONUP时调用该函数
分隔条
Definition Splitter.h:11
Splitter()
初始化分隔条
表示界面中的元素
Definition UIElement.h:90
https://learn.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#keystroke-message-flags
Definition Keys.h:12
表示相对于左上角的点坐标
Definition Point.h:15
尺寸
Definition Size.h:15