由于基于dialog的mfc程序在启动时要比sdi/mdi的诡异一点。。所以在On
1. 在On SetTimer(1 , 55 , NULL); // 第一个参数是id..等下on // 第二个参数是间隔时间,单位毫秒。。; 2. 添加WM_TIMER消息宏; BEGIN_MESSAGE_MAP(CDesktopDlg, CDialog) ........ ON_WM_TIMER() // 其他的我拿掉了。。这个添加到这个位置。。 END_MESSAGE_MAP() 3. 添加响应事件; // .h
1protected:
2 . 3 afx_msg void On // .cpp 1void CDesktopDlg::On
3 if (nIDEvent == 1) 4 { 5 KillTimer(1); // 这个貌似应该有DeleteTimer之类的。。不过我没找到。。 6 ShowWindow(SW_HIDE); // 隐掉它。。 7 } 8} 这里对话框还是会闪一下,然后就隐藏了。
第二种方法:
第一步,声明一个响应函数afx_msg void On 第二步,注册消息WM_NCPAINT(),也就是在BEGIN_MESSAGE_MAP(Dlg,CDialog)和END_MESSAGE_MAP()之间添加ON_WM_NCPAINT()。 第三步,On i --; 有了以上三步就可以实现对话框隐藏,但在程序启动的时候,系统状态栏里会有程序的图标闪一下,这就需要再做一些工作: 第一,在On 第二,在需要对话框显示的程序中添加ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW);使对话框显示在系统任务栏中。 |
|