有没有办法在昂贵的操作中暂停呈现CTreeCtrl
或其CTreeView
,例如扩展/折叠树中的所有节点?如果它没有像PauseRendering(TRUE)
或类似的东西那样的功能,那么如果没有调用我的ExpandAll方法,是否可以拦截绘制消息并仅将其转发到树上?
答案 0 :(得分:4)
您可以使用WM_SETREDRAW
消息:当wParam
与FALSE
一起发送时,它会阻止该窗口接收WM_PAINT
条消息;与wParam
一起发送到TRUE
时,它将设置为正常。
完成后不要忘记手动重新绘制窗口,因为它不会自动完成:
RedrawWindow(hWnd, NULL, NULL, RDW_ERASE|RDW_FRAME|RDW_INVALIDATE|RDW_ALLCHILDREN);