关于pywin32绘图闪烁问题求解?

1.获取Windows自带计算器的窗口句柄以后,打算在上边进行绘制一个矩形,是可以如愿,但是呢,一闪而过。

2.尝试加上while死循环以后,绘制的矩形会一直闪烁,不知道问题在哪里,还有移动问题从窗口那里经过,也会出现重影。

3.自己有pywin32文档,也没查找。。学习pywin32的小白一个。

4.求解,谢谢。

5.源代码:
import win32gui

import win32api

import win32con

import time

def DrawRect():

hwnd = win32gui.GetDesktopWindow()
while True:
    hPen = win32gui.CreatePen(win32con.PS_SOLID, 3, win32api.RGB(255, 0, 255))  # 定义框颜色
    win32gui.InvalidateRect(hwnd, None, True)
    win32gui.UpdateWindow(hwnd)
    win32gui.RedrawWindow(hwnd, None, None, win32con.RDW_FRAME | win32con.RDW_INVALIDATE | win32con.RDW_UPDATENOW | win32con.RDW_ALLCHILDREN)
    hwndDC = win32gui.GetDC(hwnd)  # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)
    win32gui.SelectObject(hwndDC, hPen)
    hbrush = win32gui.GetStockObject(win32con.NULL_BRUSH)  # 定义透明画刷,这个很重要!!
    prebrush = win32gui.SelectObject(hwndDC, hbrush)
    win32gui.Rectangle(hwndDC, 447, 505, 591, 545)  # 左上到右下的坐标
    win32gui.SelectObject(hwndDC, hPen)

if name == '__main__':

 DrawRect()

你的绘图操作会和explorer内的绘图操作打架,也就是说它刷新,你的就没有了,你又画上去,造成一会儿有一会儿没有
除非你注入explorer,在进程内拦截wm_paint,然后绘制,同时抑制它本身的绘图