SimpleWindow
载入中...
搜索中...
未找到
BmpBox.h
1#pragma once
2
3#include "StaticControl.h"
4
5namespace sw
6{
10 enum class BmpBoxSizeMode {
11 Normal, // 位图置于BmpBox左上角
12 StretchImage, // 拉伸位图填充BmpBox
13 AutoSize, // 调整BmpBox大小,使其等于所包含位图的大小
14 CenterImage, // 将位图居中显示
15 Zoom, // 图像按照原来的比例缩放
16 };
17
21 class BmpBox : public StaticControl
22 {
23 private:
27 HBITMAP _hBitmap{NULL};
28
32 SIZE _bmpSize{0, 0};
33
37 BmpBoxSizeMode _sizeMode{BmpBoxSizeMode::Normal};
38
39 public:
44
49
50 public:
55
60
66 HBITMAP Load(HBITMAP hBitmap);
67
74 HBITMAP Load(HINSTANCE hInstance, int resourceId);
75
81 HBITMAP Load(const std::wstring &fileName);
82
86 void Clear();
87
92
93 protected:
98 virtual bool OnDestroy() override;
99
104 virtual bool OnPaint() override;
105
111 virtual bool OnSize(const Size &newClientSize) override;
112
119 virtual bool OnEraseBackground(HDC hdc, LRESULT &result) override;
120
126 virtual Size MeasureOverride(const Size &availableSize) override;
127
128 private:
132 void _UpdateBmpSize();
133
138 void _SetBmp(HBITMAP hBitmap);
139
145 HBITMAP _SetBmpIfNotNull(HBITMAP hBitmap);
146 };
147}
用于显示一个位图的控件
Definition BmpBox.h:22
BmpBox()
初始化BmpBox
virtual Size MeasureOverride(const Size &availableSize) override
测量元素所需尺寸,无需考虑边框和边距
void SizeToImage()
调整控件尺寸为位图尺寸,未加载位图时该函数不生效
virtual bool OnDestroy() override
接收到WM_DESTROY时调用该函数
HBITMAP Load(HINSTANCE hInstance, int resourceId)
从指定模块中加载位图
HBITMAP Load(const std::wstring &fileName)
从文件加载位图
virtual bool OnEraseBackground(HDC hdc, LRESULT &result) override
接收到WM_ERASEBKGND时调用该函数
HBITMAP Load(HBITMAP hBitmap)
加载位图,该函数会复制一个位图句柄作为显示的位图
~BmpBox()
析构函数
const Property< BmpBoxSizeMode > SizeMode
位图在BmpBox中的定位方式
Definition BmpBox.h:48
virtual bool OnPaint() override
接收到WM_PAINT时调用该函数
void Clear()
清除加载的位图
virtual bool OnSize(const Size &newClientSize) override
接收到WM_SIZE时调用该函数
const ReadOnlyProperty< HBITMAP > BmpHandle
当前控件显示的位图句柄,使用Load函数可以加载位图
Definition BmpBox.h:43
属性
Definition Property.h:1743
只读属性
Definition Property.h:1828
静态控件
Definition StaticControl.h:11
尺寸
Definition Size.h:15