您的位置:首页 > 其它

隐藏任务栏最大化程序窗口中碰到的一些问题及应对方法

2008-06-19 16:35 387 查看
在最大化程序窗口时可能会碰到这样的问题:

有时最大化窗口后会遮挡任务栏,而有时当你想全屏显示隐藏任务栏,那任务栏区域却死活无法被占用,哪怕任务栏已被隐藏

经过一轮google,终于找到了解决方法,该方法源自某位网页的答复,转载如下:

//------------------------------------------ from pomelowu(羽战士)回复于 2005-05-08 15:29:33 ------------------------

呵呵,我说错了点,其实主要是WS_MAXIMIZEBOX风格的问题。

具有WS_MAXIMIZEBOX的对话框SW_MAXIMIZE的时候会显示边框,下边界在系统任务栏上沿,而不具有WS_MAXIMIZEBOX的对话框(即使有WS_MINIMIZEBOX)SW_MAXIMIZE的时候,下边界是屏幕下沿,如果处于激活状态会覆盖任务栏。

具体我在
 http://community.csdn.net/Expert/topic/3466/3466492.xml?temp=.3282892 
中总结过。不过具体的原因也还是不甚明了

//----------------------------------------------------------------------------------------------------------

原贴地址:

http://topic.csdn.net/t/20050508/09/3988456.html

这样一来,只须适时地增加、删除WS_MAXIMIZEBOX风格就能灵活控制显示还是遮挡任务栏了(当然,隐藏任务栏还是需要类似::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_SHOW)的代码来做)

在此得谢谢pomelowu(羽战士)这位仁兄

另外,在还没找到上述方法时我自己也想到了另一曲线救国方案,因为我发现只要在任务栏上右键->属性->不选"保持任务栏在所有窗口最上层",就能在最大化时撑满整个屏幕(占用掉任务栏的区域),接着我用SPY++观察了下勾选该选项前后任务栏的风格变化,发现选中时(即保持在所有窗口最上),其扩展风格中有WS_EX_PALETTEWINDOW,未勾选时则变为WS_EX_TOOLWINDOWWS_EX_WINDOWEDGE,如此一来,我觉得只要在全屏时,调整任务栏风格与为勾选时相同,即能撑满全屏了,不过我还没试过: )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: