本文整理匯總了Python中ctypes.wintypes.HDC屬性的典型用法代碼示例。如果您正苦於以下問題:Python wintypes.HDC屬性的具體用法?Python wintypes.HDC怎麽用?Python wintypes.HDC使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類ctypes.wintypes
的用法示例。
在下文中一共展示了wintypes.HDC屬性的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _set_argtypes
# 需要導入模塊: from ctypes import wintypes [as 別名]
# 或者: from ctypes.wintypes import HDC [as 別名]
def _set_argtypes(self):
''' Functions arguments. '''
self.MONITORENUMPROC = WINFUNCTYPE(INT, DWORD, DWORD, POINTER(RECT),
DOUBLE)
windll.user32.GetSystemMetrics.argtypes = [INT]
windll.user32.EnumDisplayMonitors.argtypes = [HDC, c_void_p,
self.MONITORENUMPROC,
LPARAM]
windll.user32.GetWindowDC.argtypes = [HWND]
windll.gdi32.CreateCompatibleDC.argtypes = [HDC]
windll.gdi32.CreateCompatibleBitmap.argtypes = [HDC, INT, INT]
windll.gdi32.SelectObject.argtypes = [HDC, HGDIOBJ]
windll.gdi32.BitBlt.argtypes = [HDC, INT, INT, INT, INT, HDC, INT, INT,
DWORD]
windll.gdi32.DeleteObject.argtypes = [HGDIOBJ]
windll.gdi32.GetDIBits.argtypes = [HDC, HBITMAP, UINT, UINT, c_void_p,
POINTER(BITMAPINFO), UINT]
示例2: _set_restypes
# 需要導入模塊: from ctypes import wintypes [as 別名]
# 或者: from ctypes.wintypes import HDC [as 別名]
def _set_restypes(self):
''' Functions return type. '''
windll.user32.GetSystemMetrics.restypes = INT
windll.user32.EnumDisplayMonitors.restypes = BOOL
windll.user32.GetWindowDC.restypes = HDC
windll.gdi32.CreateCompatibleDC.restypes = HDC
windll.gdi32.CreateCompatibleBitmap.restypes = HBITMAP
windll.gdi32.SelectObject.restypes = HGDIOBJ
windll.gdi32.BitBlt.restypes = BOOL
windll.gdi32.GetDIBits.restypes = INT
windll.gdi32.DeleteObject.restypes = BOOL
示例3: CreateDC
# 需要導入模塊: from ctypes import wintypes [as 別名]
# 或者: from ctypes.wintypes import HDC [as 別名]
def CreateDC(driver, device, output, initData):
return HDC(_CreateIC(driver, device, output, initData))
示例4: GetDC
# 需要導入模塊: from ctypes import wintypes [as 別名]
# 或者: from ctypes.wintypes import HDC [as 別名]
def GetDC(hWnd):
return HDC(_GetDC(hWnd))
示例5: enumerate_monitors
# 需要導入模塊: from ctypes import wintypes [as 別名]
# 或者: from ctypes.wintypes import HDC [as 別名]
def enumerate_monitors() -> list:
"""
enumerate all physical monitor.
** 請注意防止返回的 Handle 對象被GC!
https://msdn.microsoft.com/en-us/library/dd162610(v=vs.85).aspx
BOOL EnumDisplayMonitors(
_In_ HDC hdc,
_In_ LPCRECT lprcClip,
_In_ MONITORENUMPROC lpfnEnum,
_In_ LPARAM dwData
);
:return: list contains physical monitor handles
"""
all_hmonitor = []
# Factory function of EnumDisplayMonitors callback.
# 保持引用以防止被GC !
# https://msdn.microsoft.com/en-us/library/dd145061(v=vs.85).aspx
_MONITOR_ENUM_PROC = ctypes.WINFUNCTYPE(wintypes.BOOL,
wintypes.HMONITOR,
wintypes.HDC,
ctypes.POINTER(wintypes.LPRECT),
wintypes.LPARAM)
def __monitor_enum_proc_callback(hmonitor_: wintypes.HMONITOR, hdc, lprect, lparam) -> bool:
"""
EnumDisplayMonitors callback, append HMONITOR to all_hmonitor list.
:param hmonitor_:
:param hdc:
:param lprect:
:param lparam:
:return:
"""
all_hmonitor.append(hmonitor_)
return True
if not ctypes.windll.user32.EnumDisplayMonitors(None, None,
_MONITOR_ENUM_PROC(__monitor_enum_proc_callback), None):
raise ctypes.WinError()
# get physical monitor handle
handles = []
for hmonitor in all_hmonitor:
handles.extend(_get_physical_monitors_from_hmonitor(hmonitor))
return handles