WS_VISIBLE);
CDialog::OnShowWindow(SW_HIDE, nStatus);
}
}
再运行一下,哈哈,对话框不见了,连闪都不闪一下。细心的读者也许会问为什么使用SetWindowLong,而不是 ModifyStyle, 其实是为了加快速度,因为 ModifyStyle 内部还要调用 GetWindowLong 和 SetWindowPos。到此为止,一个简单,完满的解决方法已经展现在大家面前了。
其实,本来 MS 可以做的更好,比如把 GetStyle() 声明为虚函数,使得我们能返回WS_VISIBLE 来控制 bShowIdle 成为 FALSE, 或者把
DWORD dwFlags = MLF_SHOWONIDLE;
改成
DWORD dwFlags = ShowOnIdle(); // 声明为虚函数
希望MS能在以后的版本中考虑这个问题。
这是本人在CSDN上的第一个作品,希望大家能多提宝贵意见。
……