Panel双缓存virtual System::Windows::Forms::CreateParams^ CreateParams() override 不存在get_CreateParams() 在C++/CLR中不存在 用什么代替
时间: 2024-03-02 18:53:50 浏览: 101
如果您想要在C++/CLR中为Panel控件实现双缓冲,请使用以下代码:
```cpp
virtual System::Windows::Forms::CreateParams^ get_CreateParams() override
{
System::Windows::Forms::CreateParams^ cp = __super::get_CreateParams();
cp->Style |= 0x04000000; // WS_CLIPCHILDREN
cp->ExStyle |= 0x02000000; // WS_EX_COMPOSITED
return cp;
}
```
这将启用WS_CLIPCHILDREN和WS_EX_COMPOSITED样式,这是实现双缓冲的关键。请注意,如果您使用的是较旧的Visual Studio版本,可能需要将“__super”替换为“Control”。另外,请确保在程序集中添加了System.Windows.Forms的引用。
相关问题
双缓存virtual System::Windows::Forms::CreateParams^ CreateParams() override 不存在get_CreateParams() 在C++/CLR中不存在 用什么代替
如果您想要在C++/CLR中实现双缓冲,请使用以下代码:
```cpp
virtual System::Windows::Forms::CreateParams^ get_CreateParams() override
{
System::Windows::Forms::CreateParams^ cp = __super::get_CreateParams();
cp->ExStyle |= 0x02000000; // WS_EX_COMPOSITED
return cp;
}
```
这将启用WS_EX_COMPOSITED样式,这是实现双缓冲的关键。请注意,如果您使用的是较旧的Visual Studio版本,可能需要将“__super”替换为“Control”。另外,请确保在程序集中添加了System.Windows.Forms的引用。
virtual System::Windows::Forms::CreateParams^ get_CreateParams() 在C++/CLR中不存在 用什么代替
在C++/CLR中,可以使用以下方式获取创建控件时的参数:
```cpp
[System::Security::Permissions::SecurityPermission(
System::Security::Permissions::SecurityAction::Demand,
Flags = System::Security::Permissions::SecurityPermissionFlag::UnmanagedCode)]
virtual System::IntPtr get_Handle() override
{
return Control::Handle;
}
```
这将返回控件的句柄,可以使用它来获取创建控件时的参数。请注意,为了使用此代码,您需要在程序集中添加对System.Security.Permissions的引用。
阅读全文