找回密码
 加入
搜索
查看: 5457|回复: 6

[GUI管理] 如何避免无标题栏窗口最大化时遮挡任务栏?

  [复制链接]
发表于 2011-3-25 08:42:09 | 显示全部楼层 |阅读模式
本帖最后由 xzxnovice 于 2011-3-25 08:54 编辑

实现目标:
1.最简单,程序运行时创建无标题窗口($WS_POPUP+$WS_MAXIMIZE)最大化遮挡"整个桌面",但不遮挡任务栏。(不考虑“任务栏显示在最前端的属性,试过任务栏也被遮挡)
2.如果1 不能实现,考虑到任务栏的自动隐藏属性,在任务栏隐藏/出现时改变窗口大小高度为“全屏”或“全屏-任务栏高度”,这个任务栏隐藏/出现的消息能够截取吗??
3.在改变分辩
发表于 2011-3-25 09:05:50 | 显示全部楼层
沙发,没有看懂具体楼主要表达什么,呵呵
 楼主| 发表于 2011-3-25 09:45:04 | 显示全部楼层
回复 2# wsfda


   创建一个  $WS_POPUP+$WS_MAXIMIZE 窗口出来看看,会遮挡着任务栏,我想实现,最大化但又不遮挡任务栏,还要随分辩率的改变而自动最大化,

为了实现自动最大化我用了$WS_MAXIMIZE,为了实现无边框 我用了$WS_POPUP,但这样会遮挡任务栏..不知道用哪个样式可以达到我的目标。

如果放弃用$WS_MAXIMIZE,我不知该处理哪个消息可以实现随分辩率的改变而自动最大化..
发表于 2011-3-25 12:04:50 | 显示全部楼层

#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
 楼主| 发表于 2011-3-25 14:18:21 | 显示全部楼层
本帖最后由 xzxnovice 于 2011-3-25 14:45 编辑

回复 4# ceoguang
_WinAPI_SetWindowPos($Form1, 0, 0, 0, @DesktopWidth,@DesktopHeight , 0x40)
是这样了,之前一直在用这句不行,为什么x,y为-1才行呢。。

窗口占满整个屏幕时任务栏就被遮挡,留点位置,任务栏就不怕被遮挡了
发表于 2011-3-25 14:44:15 | 显示全部楼层
前面-1,后面+2,是为了能完全覆盖.实际上是前后各加1
最后一个+3是为了避免任务栏之间有空隙.实际上是前加1后加2
另外,@DesktopHeight包含了任务栏.
 楼主| 发表于 2011-3-25 14:52:57 | 显示全部楼层
回复 6# ceoguang


    我明白了,要留点空隙,其实也不需要减去任务栏的高度,只要不占满整个屏幕就可以。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 10:44 , Processed in 0.072202 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表