wxWidgets 中的控件通常可以使用 SetBackgroundStyle(wxBG_STYLE_CUSTOM) 或处理 EVT_ERASE 事件来避免由刷新背影而引起的闪烁。普通 Windows 或 MFC 程序则要处理 WM_ERASEBKGND 事件。
当在 wxWidgets 中使用 Windows 控件时,如果有绘制 DC 的操作,在绘制 DC 后,显示 Windows 控件也可避免闪烁。
MyDialog:: MyDialog()
{
m_panel_anime->SetBackgroundStyle(wxBG_STYLE_CUSTOM);
}
void MyDialog::ShowAnime()
{
m_panel_anime->Show();
// ...
// 绘制 DC
// ...
ShowWindow(m_hwnd_anime, SW_SHOWNA);
}