Win32按钮一直闪烁

win32 buttons keep flashing

本文关键字:闪烁 一直 按钮 Win32      更新时间:2023-10-16

我在win32c++中做了一个小游戏,工作得很好,但我有一个小问题,一些按钮闪烁。我猜这与我经常发送WN_PAINT有关。

InvalidateRect(hwnd, NULL, false);
UpdateWindow(hwnd);

我用CreateWindow()创建按钮,像这样

CreateWindow(TEXT("button"),  TEXT(BTN_SAVE), WS_VISIBLE | WS_CHILD, 
            client.right - offset[1] - 170, client.bottom - offset[3], 
            80, 25, hwnd, (HMENU)ID_BTN_SAVE, NULL, NULL);

有人遇到这个问题吗?有什么办法可以解决吗?

为父窗口添加WS_CLIPCHILDREN样式。

WS_CLIPCHILDREN

在父窗口内绘图时,排除子窗口占用的区域。这个样式在创建父窗口时使用。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600%28v=vs.85%29.aspx