我的一个对话框,我把它设置为无title bar,
在2000下运行时,在windows任务栏其程序图标没有显示出来,
但是在XP下运行时又能显示,请问怎么处理?

解决方案 »

  1.   

    需要 设置窗口为工具栏的形式
    ::ShowWindow(m_hWnd,SW_HIDE);
    long lExStyle=::GetWindowLong(m_hWnd,GWL_EXSTYLE);
    lExStyle&=~WS_EX_APPWINDOW;
    lExStyle|=WS_EX_TOOLWINDOW;
    long lrt=::SetWindowLong(m_hWnd,GWL_EXSTYLE,lExStyle);
    ::ShowWindow(m_hWnd,SW_SHOW);
    ::InvalidateRect(m_hWnd,NULL,true);
      

  2.   

    to  LCBoy() :你这段代码怎么我运行后,任务栏上不仅没有显示图标,连文字提示都没有.
      

  3.   

    Window Styles中如果没有你要的要求的话,就没办法实现了,我想
      

  4.   

    这实在是一个疑难问题,我用如下styles实现了前面的要求,但是新的问题又出来了。
    对话框设置时是没有toolbar和系统菜单的,但是设置了对话框可以RESIZE。
    运行程序,对话框刚打开时可以在2000的任务栏显示出图标了,而且对话框也没有显示出TOOLBAR和系统菜单
    但是当RESIZE该对话框时,
    在对话框顶部却显示出了toolbar和系统菜单,同时任务栏上的图标正常显示。
    此时又该如何把对话框顶部的toolbar和系统菜单隐藏掉,而任务栏上的图标却可以正常显示呢??

    (如下代码加到OnInitDialog中)
    long lExStyle=GetWindowLong(m_hWnd,GWL_STYLE);
    lExStyle|=WS_CAPTION;
    lExStyle|=WS_SYSMENU;
    long lrt=SetWindowLong(m_hWnd,GWL_STYLE,lExStyle);
      

  5.   

    我以为你的这段话{
    我的一个对话框,我把它设置为无title bar,
    在2000下运行时,在windows任务栏其程序图标没有显示出来,
    但是在XP下运行时又能显示,
    }
    的意思是不要在xp下显示出来
    如下代码:
    ModifyStyle(0,WS_SYSMENU);SetWindowText("AAAAAA");
      

  6.   

    ModifyStyle(0,WS_SYSMENU);
    屡试不爽