无标题wxPython窗口隐藏任务栏

无标题wxPython窗口隐藏任务栏,python,windows,wxpython,taskbar,Python,Windows,Wxpython,Taskbar,此代码: import wx app = wx.App() frame = wx.Frame(None, style = wx.DEFAULT_FRAME_STYLE & ~wx.CAPTION) frame.Maximize() frame.Show() app.MainLoop() 制作一个覆盖整个屏幕的框架,包括我的任务栏。有没有办法让它只占用屏幕而不占用任务栏 操作系统:Windows XP Python:2.7.3 WxPython:2.9.3.1 从我所看到的,我会说不

此代码:

import wx

app = wx.App()
frame = wx.Frame(None, style = wx.DEFAULT_FRAME_STYLE & ~wx.CAPTION)
frame.Maximize()
frame.Show()
app.MainLoop()
制作一个覆盖整个屏幕的框架,包括我的任务栏。有没有办法让它只占用屏幕而不占用任务栏

  • 操作系统:Windows XP

  • Python:2.7.3

  • WxPython:2.9.3.1

从我所看到的,我会说不,你不能用最大化方法。您可能会通过获得屏幕大小并将框架的抓取设置为减去任务栏的空间来伪造它。您可能必须找到一种方法来获取任务栏的位置,因为有些人不会将其放在底部。

从我所看到的情况来看,我会说不,您不能使用最大化方法。您可能会通过获得屏幕大小并将框架的抓取设置为减去任务栏的空间来伪造它。您可能需要找到一种方法来获取任务栏的位置,因为有些人不会将其放在底部。

供未来的人查看。尝试使用ShowFullScreen(真)


我是wx新手,但请尝试使用self.ShowFullScreen(True)或frame.ShowFullScreen(True)

以供将来的人查看。尝试使用ShowFullScreen(真)


我是wx新手,但尝试使用self.ShowFullScreen(True)或frame.ShowFullScreen(True)

在不使用任务栏的情况下获取工作区域的位置和大小:

c_x, c_y, c_w, c_h = wx.ClientDisplayRect()
设置位置和大小:

frame = wx.Frame(None, pos=(c_x, c_y), size=(c_w, c_h),
                      style=wx.DEFAULT_FRAME_STYLE & ~wx.CAPTION & ~wx.RESIZE_BORDER)

获取不带任务栏的工作区位置和大小:

c_x, c_y, c_w, c_h = wx.ClientDisplayRect()
设置位置和大小:

frame = wx.Frame(None, pos=(c_x, c_y), size=(c_w, c_h),
                      style=wx.DEFAULT_FRAME_STYLE & ~wx.CAPTION & ~wx.RESIZE_BORDER)

我想在这里提出一个后续的解决方案,因为上面的问题仍然有效,而且问题也出现在C++中。 一个可能且相当普遍的解决方案是在最大化之前应用默认帧样式,然后恢复到您的自定义(无字幕)样式

成功测试的C++版本读取:

frame->SetWindowStyle(wxDEFAULT_FRAME_STYLE);
frame->Maximize(true);
frame->SetWindowStyle(wxRESIZE_BORDER);

Windows 10下,字幕栏会短暂闪烁,但效果很小。

< P>我想在这里提出一个后续解决方案,因为上述问题仍然有效,而且问题也出现在C++中。 一个可能且相当普遍的解决方案是在最大化之前应用默认帧样式,然后恢复到您的自定义(无字幕)样式

成功测试的C++版本读取:

frame->SetWindowStyle(wxDEFAULT_FRAME_STYLE);
frame->Maximize(true);
frame->SetWindowStyle(wxRESIZE_BORDER);

在Windows 10下,这会导致标题栏短暂闪烁,但效果似乎很小。

我认为您可以在窗口中保留标题,但标题栏和边框的宽度为零。即使使用直接的Windows API调用,这也会很棘手,不知道如何在wx中执行。@MarkRansom,你能告诉我如何在Windows API中执行吗?我已经在这个项目的扩展模块中使用了一些C++,所以我可以做这件工作。抱歉,但我不完全肯定,这将涉及到我的一些实验。我可以从WM_NCCALCSIZE或WM_NCHITTEST开始,我想你可以在窗口中留下标题,但标题栏和边框的宽度为零。即使使用直接的Windows API调用,这也会很棘手,不知道如何在wx中执行。@MarkRansom,你能告诉我如何在Windows API中执行吗?我已经在这个项目的扩展模块中使用了一些C++,所以我可以做这件工作。抱歉,但我不完全肯定,这将涉及到我的一些实验。我可以从WM_NCCALCSIZE或WM_NCHITTEST.+1开始,意思是“……有些人不会把它放在底部”。我就是这些人中的一员。我知道至少有一个人把它放在左边,还有一个人喜欢它放在上面。在我的情况下,更重要的是担心它的位置,因为我的应用程序运行的平板电脑可能也有屏幕键盘。我希望有一种方法可以让windows处理这个问题。你应该在wxPython邮件列表上询问。wxPython的主要开发者就在那里。他们会知道有没有办法的。我不认为有,但罗宾肯定会知道(或者他知道谁会知道)+1,因为“……有些人不会把它放在底部”。我就是这些人中的一员。我知道至少有一个人把它放在左边,还有一个人喜欢它放在上面。在我的情况下,更重要的是担心它的位置,因为我的应用程序运行的平板电脑可能也有屏幕键盘。我希望有一种方法可以让windows处理这个问题。你应该在wxPython邮件列表上询问。wxPython的主要开发者就在那里。他们会知道有没有办法的。我不认为有,但罗宾肯定会知道(或者他知道谁会知道)在我的情况下,我想保持沉默。我想你会因为全屏而失去这一点。在我的情况下,我希望任务栏不被隐藏。我想你会因为全屏而失去这一点。