initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
#include "Control.h"
|
||||
// 画布容器控件,可以作为其他控件的父容器
|
||||
// 功能:
|
||||
// - 包含和管理子控件
|
||||
// - 将事件传递给子控件
|
||||
// - 提供统一的背景和边框
|
||||
// 使用场景: 用于分组相关控件或实现复杂布局
|
||||
class Canvas : public Control
|
||||
{
|
||||
private:
|
||||
std::vector<std::unique_ptr<Control>> controls;
|
||||
|
||||
StellarX::controlShape shape = StellarX::controlShape::RECTANGLE; //容器形状
|
||||
|
||||
StellarX::fillMode canvasFillMode = StellarX::fillMode::Solid; //容器填充模式
|
||||
StellarX::lineStyle canvasLineStyle = StellarX::lineStyle::Solid; //线型
|
||||
int canvaslinewidth = 1; //线宽
|
||||
|
||||
COLORREF canvasBorderClor = RGB(0, 0, 0);//边框颜色
|
||||
COLORREF canvasBkClor = RGB(255,255,255); //背景颜色
|
||||
|
||||
public:
|
||||
Canvas(int x, int y, int width, int height);
|
||||
~Canvas() {}
|
||||
//绘制容器及其子控件
|
||||
void draw() override;
|
||||
void handleEvent(const ExMessage& msg) override;
|
||||
//添加控件
|
||||
void addControl(std::unique_ptr<Control> control);
|
||||
|
||||
//设置容器样式
|
||||
void setShape(StellarX::controlShape shape);
|
||||
//设置容器填充模式
|
||||
void setcanvasfillMode(StellarX::fillMode mode);
|
||||
//设置容器边框颜色
|
||||
void setBorderColor(COLORREF color);
|
||||
//设置填充颜色
|
||||
void setCanvasBkColor(COLORREF color);
|
||||
//设置线形
|
||||
void setcanvasLineStyle(StellarX::lineStyle style);
|
||||
//设置线段宽度
|
||||
void setlinewidth(int width);
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user