我是这样处理的 BOOL CRRRDlg::OnInitDialog()
{
// TODO: Add extra initialization here CenterWindow();//让窗口在正中显示 m_wp.length=sizeof(WINDOWPLACEMENT);
GetWindowPlacement(&m_wp); //成员变量,恢复时用

//从任务栏中去掉.
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(&wp); SetTimer(0,2000,NULL); //两秒后再显示
}
void CRRRDlg::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default //改回原来的样式
ModifyStyleEx(WS_EX_TOOLWINDOW,WS_EX_APPWINDOW);
SetWindowPlacement(&m_wp);// BringWindowToTop();

KillTimer(0);

CDialog::OnTimer(nIDEvent);
}
通过以上代码,对隐藏已经可以做到,但现在的问题是显示时,程序窗口是显示了但windows的任务栏并没有这个程序的按钮,我需要的效果是全部显示出来,就和原来一样,发现在点击其他任务栏按钮是另外一个程序,比如 IE显示后在最小化到任务栏,我自己的程序才会在任务栏上显示按钮,有谁知道这是怎么回事,应该怎样才能达到我要的效果?
在程序窗口显示后

解决方案 »

  1.   

    隐藏和显示直接用ShowWindow函数不就行了吗?
      

  2.   

    //隐藏
    this->ShowWindow(FALSE);//显示
    this->ShowWindow(TRUE);
    SetForegroundWindow();
      

  3.   

    我指CDialog的,而且是在启动时就隐藏的,现在只是想要他再显示时有问题,请你们程序测过后再贴代码,
      

  4.   

    //从任务栏中去掉. 
    ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); 
    你都这样做了当然不会在任务栏显示了。
      

  5.   

    楼上的没看见我后来又用了
    //改回原来的样式 
    ModifyStyleEx(WS_EX_TOOLWINDOW,WS_EX_APPWINDOW); 还是自己搞定,开心