首页 > 解决方案 > 需要帮助将窗口锁定到最顶层

问题描述

我有以下代码,它为我提供了一个透明的窗口并与下面的窗口交互。如何将其锁定到顶层?我试过 SetWindowPos() 但后来我得到了一个没有透明度的最上面的窗口。

def createWindow(width, height, transparentBG):
    pygame.init()
    os.environ['SDL_VIDEO_CENTERED'] = '2'
    window = pygame.display.set_mode((width, height))  # game window
    pygame.display.set_caption("recticle")  # title

    background = (0, 255, 0)

    if transparentBG:
        hwnd = pygame.display.get_wm_info()["window"]
        win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE,
                           win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE) | 
                                                       win32con.WS_EX_LAYERED)
        win32gui.SetLayeredWindowAttributes(hwnd, , 0, win32con.LWA_COLORKEY)


return window


def main():

    global RUNNING
    background = (0, 255, 0)
    window = createWindow(1920,1080, True)


    testImage = loadImage("customRect.bmp", (0,0))

    while RUNNING:
        window.fill(background) #fill background to transparency colour

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                RUNNING = False


            drawImage(window, testImage, (0,0))
            #update window
            pygame.display.update() #update window

任何帮助或建议表示赞赏,我已经查看了堆栈,我有设置顶层窗口的代码并做了所有描述,但它只显示带有 win32api drawText 函数的文本。我不介意使用它,但我不确定如何使用自定义绘图来显示图像。我试过保存为位图,但又失去了透明度......

这是我在家里的 Windows 操作系统上的非生产应用程序。从字面上看,它是在游戏窗口上绘制自定义十字准线,因为我可以看到游戏提供的十字准线。

如果有什么忘记让我知道,我可以编辑。

标签: pythonwinapipygame

解决方案


推荐阅读