请高手帮忙!
我想做一个提示条窗口,固定占据屏幕的顶行(即屏幕整个顶端,高度可容下一行文字),要求其它的窗体无法使用这个区域。即无论拖动,还是最大化,都不会进入顶行。其它的窗体最大化时,其标题栏只能位于顶行下方。这样做的目的,一是使顶行的提示条始终可见,二是使其它窗口的标题栏不被顶行提示条覆盖。

解决方案 »

  1.   

    猜想:Subclass Desktop窗口,处理WM_NCCALCSIZE消息。
    不知道行不行
      

  2.   

    应该可以,早前版本的ICQ就是这样做的,不过是在侧面,支持楼主!
      

  3.   

    其实我讲了半天问题,就是要一个跟任务栏一样的东东。
    大家看看Windows 的任务栏,就是固定占据屏幕一边,可以自动隐藏。
    在应用程序中,也可以做自己的任务栏,微软称这种任务栏为Appbar.
    大家在网上搜搜,Appbar的资料到处都是。
    基于C#的解决方案,目前我看到最好的是:
    http://www.codeproject.com/csharp/csdoesshell3.asp
    不过上面的程序没有解决自动隐藏的功能。我现在比较纳闷的是,在Appbar中,最根本的方法,是通过一个API来设置Appbar的各项属性。
    // Sends an appbar message to the system. 
    [DllImport("shell32.dll")]
    public static extern UInt32 SHAppBarMessage(UInt32 dwMessage,ref APPBARDATA pData);
    通过这个API,可以告诉系统任务栏是要否在某一边(上、下、左、右、或浮动),是否自动隐藏。
    在做自动隐藏时,我发现这个API仅能告诉系统当前任务栏具有自动隐藏这个属性,实际实现的代码,完全得自己写。
    这样的话,告诉系统有自动隐藏的属性,却不实现这个效果,有什么用啊?