程序在启动时隐藏窗口
--作者:赖玉平(aulyp@163.com)
想让对话框程序启动时是隐藏的,也就是在后台启动,(最开始我是为了让3G应用程序在后台初始化)然后需要时又可以显示。刚开始我也想到在OnInitDialog()中加上ShowWindow(SW_HIDE),其实这样是不行的,我试过在OnInitDialog的最后加了一个while(1)拖住进程,结果什么都没有显示,也就是说,OnInitDialog完了之后,才去进行显示资料处理。
找了网上的方法,都没有满足我的要求,下面我给出一个自已辛苦总结出来的方式,完全满足要求。方便广大同行。
1、在OnInitDialog()中用MoveWindow 隐藏窗口
MoveWindow(0,0,0,0); //隐藏窗口
2、OnInitDialog最后,启用定时器,
SetTimer(12,1,NULL); //使用定时器12,
3、在定时器处理函数OnTimer()实现如下
4、当想让程序恢复显示,一般是响应快捷键,或是双击等操作,比如我现在写的3G应用程序,它初始化成功,会在任务栏显示一个信号强度图标,双击该图标,就是打开电话界面,实现代码如下:
大功造成!
下面是我在网上到到的一个比较可行的方法,但是屏还会闪一个框
============================================================
定义一个bool m_show;//决定是否隐藏
m_show=false;//默认隐藏
可以在对话框中重载虚函数DefWindowProc()。
程序中想还原显示的时候可以
m_show=true;
this->ShowWindow(SW_SHOW);