我知道可以将主窗口的样式改为toolbox来实现,但是这样会导致主窗口的样式变化,比如标题栏和关闭按钮会变小,这样在我的程序里面会导致一些其他的问题。哪位大侠知道用其他的方法实现,就是不改变现有主窗口的样式而不显示任务栏按钮?

解决方案 »

  1.   

    调用AfxGetMainWnd()->ShowWindow(HIDE)吧,程序就象关了一样不存在了,要退出就让系统结束任务。
      

  2.   

    那播放MP3的Winamp是怎么做的?设置一下它的参数可以在播放的时候什么都看不到,或只有个窗口在。但我试了一下做到了,可我不明白是为什么。
    把主窗口隐藏了,但它在隐藏前打开了一个非模态的对话框,而此对话框在任务栏不显示图标的,只须把它做的像个平常的窗口就行了。不明白的是试了几个对话框,有些也像主窗口一样在任务栏显示而有些没有。
      

  3.   

    对,winamp的效果就是!不过我用spy++看了一下winamp的窗口好像并不是标准的app窗口,可能是自己封装的。
    其实一般的窗口可以用那个SetParant(FindWindow("Progman",NULL);来实现,但是这样会导致另外一个问题,就是窗口没法实现总在最上的功能!~
      

  4.   

    http://www.csdn.com.cn/program/4426.htm
    这篇文章里面写的三种方案中,后面两种理论上是符合要求的,但是我把代码加进去以后就出现问题了。
    第三中方案的问题是,当程序中调用到一些系统函数的时候(还不清楚究竟是什么函数),任务栏上的按钮会重新出现。我现在想对第三种方案做一下修正,但是不知道如何下手。大侠们帮我看看,我好结帐啊,100分送出去总要有点理由。
      

  5.   

    BOOL CMorePara::OnInitDialog() 
    {
    CDialog::OnInitDialog();
    //不在系统当前运行的程序栏内显示
    ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }
    试下,应该没有更窗口样式
      

  6.   

    to: Saimen谢谢你的回答!
    我一楼的说明中就提到这种方法不是我想要的,在Windows XP下面,WS_EX_TOOLWINDOW会使titlebar以及上面的关闭按钮变小。
      

  7.   

    呵呵,我用这个的时候,把标题关了,自己做标题栏不就行了在 Calc?? 那个什么里,重新规定一下客户区和非客户区
      

  8.   

    搞定了,create一个隐藏的CWnd窗口,把这个窗口设成主窗口