SimpleWindow
载入中...
搜索中...
未找到
PanelBase.h
1#pragma once
2
3#include "Control.h"
4#include "Layer.h"
5
6namespace sw
7{
11 class PanelBase : public Control, public Layer
12 {
13 public:
18
22 virtual ~PanelBase() = 0;
23
24 protected:
29 virtual void Arrange(const sw::Rect &finalPosition) override;
30
36 virtual Size MeasureOverride(const Size &availableSize) override;
37
42 virtual void ArrangeOverride(const Size &finalSize) override;
43
50 virtual bool OnVerticalScroll(int event, int pos) override;
51
58 virtual bool OnHorizontalScroll(int event, int pos) override;
59
66 virtual bool OnNotified(NMHDR *pNMHDR, LRESULT &result) override;
67
73 virtual bool RequestBringIntoView(const sw::Rect &screenRect) override;
74
80 virtual void OnRoutedEvent(RoutedEventArgs &eventArgs, const RoutedEventHandler &handler) override;
81
82 public:
87 virtual Control *ToControl() override;
88 };
89}
控件
Definition Control.h:12
Definition Delegate.h:21
表示可以设置布局方式的元素类型,如窗口、面板等
Definition Layer.h:13
面板类型的基类
Definition PanelBase.h:12
virtual bool RequestBringIntoView(const sw::Rect &screenRect) override
尝试将指定的矩形区域移动到可视区域内
virtual void ArrangeOverride(const Size &finalSize) override
安排子元素的位置,可重写该函数以实现自定义布局
virtual bool OnNotified(NMHDR *pNMHDR, LRESULT &result) override
父窗口接收到WM_NOTIFY后且父窗口OnNotify函数返回false时调用发出通知控件的该函数
virtual Size MeasureOverride(const Size &availableSize) override
测量元素所需尺寸,无需考虑边框和边距
virtual ~PanelBase()=0
析构函数,这里用纯虚函数使该类成为抽象类
virtual void OnRoutedEvent(RoutedEventArgs &eventArgs, const RoutedEventHandler &handler) override
路由事件经过当前元素时调用该函数
virtual bool OnHorizontalScroll(int event, int pos) override
接收到WM_HSCROLL时调用目标控件的该函数
virtual Control * ToControl() override
尝试将对象转换成Control
virtual void Arrange(const sw::Rect &finalPosition) override
安排元素位置
PanelBase()
初始化PanelBase
virtual bool OnVerticalScroll(int event, int pos) override
接收到WM_VSCROLL时调用目标控件的该函数
表示一个矩形区域
Definition Rect.h:17
路由事件的参数
Definition RoutedEvent.h:149
尺寸
Definition Size.h:15