如何避免无标题栏窗口最大化时遮挡任务栏?
本帖最后由 xzxnovice 于 2011-3-25 08:54 编辑实现目标:
1.最简单,程序运行时创建无标题窗口($WS_POPUP+$WS_MAXIMIZE)最大化遮挡"整个桌面",但不遮挡任务栏。(不考虑“任务栏显示在最前端的属性,试过任务栏也被遮挡)
2.如果1 不能实现,考虑到任务栏的自动隐藏属性,在任务栏隐藏/出现时改变窗口大小高度为“全屏”或“全屏-任务栏高度”,这个任务栏隐藏/出现的消息能够截取吗??
3.在改变分辩 沙发,没有看懂具体楼主要表达什么,呵呵 回复 2# wsfda
创建一个$WS_POPUP+$WS_MAXIMIZE 窗口出来看看,会遮挡着任务栏,我想实现,最大化但又不遮挡任务栏,还要随分辩率的改变而自动最大化,
为了实现自动最大化我用了$WS_MAXIMIZE,为了实现无边框 我用了$WS_POPUP,但这样会遮挡任务栏..不知道用哪个样式可以达到我的目标。
如果放弃用$WS_MAXIMIZE,我不知该处理哪个消息可以实现随分辩率的改变而自动最大化..
#NoTrayIcon
#Include <WinAPI.au3>
Opt("GUICloseOnESC", 0)
$hGui = GUICreate("", Default, Default, Default, Default, BitOR(0x80000000, 0x1000000),0x8, WinGetHandle(AutoItWinGetTitle()))
_WinAPI_SetWindowPos($hGui, 0, -1, -1, _WinAPI_GetSystemMetrics(0) + 2, _
_WinAPI_GetSystemMetrics(1) - _WinAPI_GetWindowHeight(_WinAPI_FindWindow("Shell_TrayWnd","")) + 3, 0x40)
;$WS_POPUP+$WS_MAXIMIZE = BitOR(0x80000000, 0x1000000)
;$WS_EX_TOPMOST = 0x8
While GUIGetMsg() + 3
WEnd
本帖最后由 xzxnovice 于 2011-3-25 14:45 编辑
回复 4# ceoguang _WinAPI_SetWindowPos($Form1, 0, 0, 0, @DesktopWidth,@DesktopHeight , 0x40)是这样了,之前一直在用这句不行,为什么x,y为-1才行呢。。
窗口占满整个屏幕时任务栏就被遮挡,留点位置,任务栏就不怕被遮挡了 前面-1,后面+2,是为了能完全覆盖.实际上是前后各加1
最后一个+3是为了避免任务栏之间有空隙.实际上是前加1后加2
另外,@DesktopHeight包含了任务栏. 回复 6# ceoguang
我明白了,要留点空隙,其实也不需要减去任务栏的高度,只要不占满整个屏幕就可以。
页:
[1]