首页/技术开发/内容

基于 CDialog 的应用程序一开始便被隐藏的办法

技术开发2023-09-08 阅读()
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上的第一个作品,希望大家能多提宝贵意见。

第1页  第2页  第3页 

……

相关阅读