如果想基于对话框的MFC程序在启动时就完全隐藏,只在托盘显示一个图标,有很多方法可实现,但效果都不理想,总是可以看到对话框一闪而过的痕迹。有没有一个方法彻底的将其隐藏呢,答案是肯定的。这儿有一个简单的方法实现,效果非常理想,并且只需两步即可实现。
1.首先要用到的是ModifyStyleEx函数,用于修改窗口的扩展属性,该函数的原型是:
BOOL ModifyStyleEx(
DWORD dwRemove,//要移出的属性
DWORD dwAdd,//要添加的属性
UINT nFlags = 0
);
在对话框的初始函数OnInitDialog中添加代码:
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
其中:
WS_EX_APPWINDOW属性的作用是当一个顶层窗口可见时,强制其出现在任务栏上。将其移出。
WS_EX_TOOLWINDOW属性的作用是创建一个象浮动工具栏一样的窗口,该窗口不会出现在任务栏上,并且按 "ALT+TAB" 时也不会出现。将其增加。
2.在对话框的默认处理函数DefWindowProc中添加代码:
if(mess