win32按钮持续闪烁

Mih*_*lcu 0 c++ winapi button visual-studio-2010

我在win32 c ++上做了一个小游戏,可以正常工作,但是我有些按钮闪烁的问题。我猜想这与我经常发送WN_PAINT的事实有关。

InvalidateRect(hwnd, NULL, false);
UpdateWindow(hwnd);
Run Code Online (Sandbox Code Playgroud)

我这样用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);
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*x F 5

WS_CLIPCHILDREN样式添加到父窗口。

WS_CLIPCHILDREN

在父窗口中进行绘制时,不包括子窗口占用的区域。创建父窗口时使用此样式。

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