如何解决在 pywin32 中显示位图
我正在尝试截取屏幕截图,然后将其显示在我的窗口中。
我正在使用此代码截取屏幕截图:
def captureScreen():
hWnd = win32gui.GetDesktopWindow()
screenLeft = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
screenTop = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
screenWidth = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
screenHeight = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
hDc = win32gui.GetWindowDC(hWnd)
srcdc = win32ui.CreateDCFromHandle(hDc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc,screenWidth,screenHeight)
memdc.SelectObject(bmp)
memdc.BitBlt((0,0),(screenWidth,screenHeight),srcdc,(screenLeft,screenTop),win32con.SRCCOPY)
return bmp
以及将其显示在窗口上的代码:
if message == win32con.WM_PAINT:
hDC,paintStruct = win32gui.BeginPaint(hWnd)
win32gui.SelectObject(hDC,bitmap)
rect = win32gui.GetClientRect(hWnd)
win32gui.BitBlt(hDC,screenHeight,win32con.SRCCOPY)
win32gui.EndPaint(hWnd,paintStruct)
return 0
我收到一个错误:
Traceback (most recent call last):
File "main.py",line 63,in wndProc
win32gui.SelectObject(hDC,bitmap)
TypeError: The object is not a PyHANDLE object
似乎无法弄清楚是什么问题。谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。