You could always use an off-screen buffer with BitBlt. That would probably stop the flickering...