我的应用程序是注入到第 3 方 GUI 应用程序中的 dll。dll 在应用程序的主窗口上创建包含少量控件的子窗口。问题是我的窗口及其控件在重绘主窗口时闪烁。我已经阅读了许多关于类似问题的文章,但无法解决它。这是一些代码
hwndContainer = CreateWindowEx( WS_EX_TOPMOST, PANEL_CLASS_NAME, "", WS_CHILD | WS_VISIBLE, 0, 0, width, height, hwnd, 0, g_hInstance, cd );
CreateWindowEx( WS_EX_TOPMOST, "button", "Click me", WS_CHILD | WS_VISIBLE | WS_TABSTOP, x, y, w, h, hwndContainer, 0, 0, 0 );
...
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc = BeginPaint( hwndPanel, &ps );
RECT r;
GetClientRect( hwndPanel, &r );
SelectObject( hdc, hpenBorder );
SelectObject( hdc, GetStockObject( NULL_BRUSH ) );
RoundRect( hdc, 0, 0, r.right, r.bottom, 5, 5 );
EndPaint( hwndPanel, &ps );
return 0;
我尝试将 WS_CLIPCHILDREN 添加到主窗口样式,处理主窗口的 WM_PAINT 等。有什么想法吗?