为了自画界面,我把主对话框调为无标题栏,但任务栏的程序图标也随之消失了。我想恢复在任务栏上显示程序图标,请问应该如何做?搜索过问题纪录但没有找到解决方案,在此一问,将尽快给分,谢谢。

解决方案 »

  1.   

    //在OnInitDialog()
    ModifyStyle( WS_CAPTION, WS_MINIMIZEBOX, SWP_DRAWFRAME );//设置图标
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon
      

  2.   

    jiangsheng(蒋晟.MSMVP2004Jan):你的方法我看不太明白,我用的是对话框;
    fifo2003(深林空气) :试过了,可是还不行,呵呵~
    _j_(街头混混甲) :VC6一旦去了TITLE就无法勾选ws_sysmenu了。
      

  3.   

    http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_programming/taskbar.asp
      

  4.   

    jiangsheng(蒋晟.MSMVP2004Jan):
    谢谢你,我看懂一些了,不过好像要依赖IE的dll,我想知道简单一点的方法,比如用SDK或者MFC应该如何实现,谢谢。
      

  5.   

    try CWinApp::LoadIcon in your init function.
      

  6.   

    Kusk(Kusk) :
    你错了,我是让你自己用SetWindowLong加上ws_sysmenu风格.绝对木有问题
      

  7.   

    JS说的那个是在任务栏上添加按钮,JS可能没理解楼主的问题.楼主应该是窗口在任务栏上已经有按钮了,但这个按钮只有标题而没有图标.
      

  8.   

    _j_(街头混混甲) :
        不好意思,不知道是不是我使用不当(看到你的答复之后查了一下MSDN,但还是对这个API的第三个参数用法不是很了解),我在OnInitDialog返回之前加上:  ::SetWindowLong(this->GetSafeHwnd(), WS_SYSMENU, 1); 编译之后还是不行。我又改成  ::SetWindowLong(this->GetSafeHwnd(), WS_SYSMENU, 0xfffff);但还是不行。顺便说一下,我的程序是在Win2000 Pro SP4下编译的,在我的这个系统下任务栏没有图标,但到了XP就有(Win9X还不清楚),很奇怪。
      

  9.   

    建议去下载(www.vckbase.com就有很多)一个例子看看便知,很简单的,不骗你。
      

  10.   

    我用_j_的方法,成功了。楼主可能没有明白SetWindowLong的意思,我用的以下方法:
    ::SetWindowLong(this->GetSafeHwnd(), GWL_STYLE,WS_SYSMENU); 可是这样又有新的问题,在任务栏上,此时可以按右键弹出菜单,可是菜单上的关闭点击后不起作用。
      

  11.   

    我试了,在XP、98上都可以,但不知道为什么在我的2000 SP4下还是不行,呵呵,莫非是系统问题?
      

  12.   

    我也是2k + sp4,直接确实不行。这样就可以了:
    OnInitDialog中:
             this->ModifyStyle(0, WS_SYSMENU);
             SetWindowText("dsf");
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon