我的 mdi 表单需要很长时间才能加载,因此会给屏幕带来很多闪烁。为了防止闪烁,我使用了此处所述的 sendmessage API如何暂停控件及其子控件的绘制?. 我们暂停应用主窗体的绘制。
这样做很好,除了我们遇到了各种奇怪的行为:
- 如果用户有一个 windows explorer 实例,并且在冻结期间移动鼠标,windows explorer 左侧窗口的某些部分开始显示在屏幕上。
- 有时,如果用户在绘画冻结期间单击鼠标,我们的应用程序就会失去焦点。
是因为我们冻结了主窗体吗?
我们如何在加载我们的 mdi 表单时防止任何绘图而没有任何副作用?