要将透明窗口置父到D3D窗口中,您需要使用SetParent方法将透明窗口的父窗口设置为D3D窗口的句柄。以下是改进后的代码:

import win32api
import win32con
import win32gui

def create_transparent_window():
    hwnd = win32gui.CreateWindowEx(
        win32con.WS_EX_LAYERED | win32con.WS_EX_TRANSPARENT,
        "Transparent_Window_Class",
        "Transparent Window Title",
        win32con.WS_POPUP | win32con.WS_VISIBLE,
        0, 0, 800, 600,
        None, None, win32api.GetModuleHandle(None), None)
    
    win32gui.SetLayeredWindowAttributes(hwnd, 0, 255, win32con.LWA_ALPHA)
    
    return hwnd

d3d_hwnd = win32gui.FindWindow("D3D_Window_Class", "D3D Window Title")
hwnd = win32gui.FindWindow("Window_Class", "Window Title")

transparent_hwnd = create_transparent_window()
win32gui.SetParent(transparent_hwnd, d3d_hwnd)

在上述代码中,SetParent方法的第一个参数是要置父的窗口句柄(透明窗口的句柄),第二个参数是父窗口的句柄(D3D窗口的句柄)。请确保替换"D3D_Window_Class""D3D Window Title"为您实际的D3D窗口类名和标题。同样,替换"Window_Class""Window Title"为您实际的窗口类名和标题

pythonimport win32apiimport win32conimport win32guidef create_transparent_window hwnd = win32guiCreateWindowEx win32conWS_EX_LAYERED win32conWS_EX_TRANSPARENT Transparent_Window_Clas

原文地址: https://www.cveoy.top/t/topic/i0xj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录