双缓存 protected override CreateParams CreateParams 在C++\CLR的写法
时间: 2023-12-09 14:05:20 浏览: 132
在C++/CLR中实现双缓存的方法与C#类似,也是通过重写CreateParams属性来实现。下面是一个示例代码:
```cpp
using namespace System::Windows::Forms;
public ref class DoubleBufferedPanel : public Panel
{
public:
DoubleBufferedPanel()
{
DoubleBuffered = true;
}
protected:
virtual System::Windows::Forms::CreateParams^ get_CreateParams() override
{
CreateParams^ cp = Panel::CreateParams;
cp->ExStyle |= 0x02000000; // 添加双缓存样式
return cp;
}
virtual void OnPaintBackground(PaintEventArgs^ e) override
{
// 不绘制背景
}
virtual void OnPaint(PaintEventArgs^ e) override
{
// 绘制前景
Panel::OnPaint(e);
}
};
```
使用这个新的类来替代原来的Panel控件,也可以实现双缓存。需要注意的是,在C++/CLR中需要使用^符号来定义引用类型。
阅读全文