#include "stdafx.h" #include "Panel.h" namespace Forms { Panel::Panel() : Control() { SetStyle(ControlStyles::Selectable | ControlStyles::AllPaintingInWmPaint, false); SetStyle(ControlStyles::SupportsTransparentBackColor | ControlStyles::ContainerControl, true); // Setup the container this->_Controls = std::make_unique(); // We are a panel control this->_RTTI = ControlTypes::Panel; } BorderStyle Panel::GetBorderStyle() { return this->_BorderStyle; } void Panel::SetBorderStyle(BorderStyle Value) { this->_BorderStyle = Value; UpdateStyles(); } void Panel::AddControl(Control* Ctrl) { Control::AddControl(Ctrl); } CreateParams Panel::GetCreateParams() { auto Cp = Control::GetCreateParams(); Cp.ClassName = "PANEL"; Cp.ExStyle |= WS_EX_CONTROLPARENT; Cp.ExStyle &= (~WS_EX_CLIENTEDGE); Cp.Style &= (~WS_BORDER); switch (_BorderStyle) { case BorderStyle::Fixed3D: Cp.ExStyle |= WS_EX_CLIENTEDGE; break; case BorderStyle::FixedSingle: Cp.Style |= WS_BORDER; break; } return Cp; } }