- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试截取 Chrome 窗口的屏幕截图。它看起来像这样:
当我使用 PrintWindow
时要获取屏幕截图,我可以在窗口标题栏/Chrome 选项卡区域看到闪烁。捕获的屏幕截图包含 Windows Basic 样式的标题栏的奇怪呈现(即使我的机器运行 Aero 主题):
我注意到其他一些应用程序也表现出类似的行为,它们在屏幕上闪烁,但标题栏工件在捕获的屏幕截图中不可见。执行此操作的应用包括 Office 2010、IE 10 和 Trillian 选项卡式聊天窗口——换句话说,扩展非客户区的窗口似乎存在此问题。
重现这个的代码很简单:
void Screenshot(HWND hWnd) {
RECT rc;
GetClientRect(hWnd, &rc);
HDC hdcScreen = GetDC(NULL);
HDC hdc = CreateCompatibleDC(hdcScreen);
HBITMAP hbmp = CreateCompatibleBitmap(hdcScreen,
rc.right - rc.left, rc.bottom - rc.top);
SelectObject(hdc, hbmp);
//Print to memory hdc
PrintWindow(hWnd, hdc, PW_CLIENTONLY);
}
为什么我会看到闪烁和奇怪的视觉伪像?我能做些什么来阻止它?
最佳答案
遇到同样问题的 friend ,请执行以下操作:
const uint PW_RENDERFULLCONTENT = 0x00000002;
PrintWindow(hWnd, hDC, PW_RENDERFULLCONTENT);
关于c++ - PrintWindow 导致标题栏中出现闪烁、奇怪的伪像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19965758/
我正在一个大项目中实现一个打印函数来打印所谓的小工具(派生自 CWnd)。在小工具类中,我创建了一个函数来将其呈现到设备上下文 PrintPageContent(CDC * pDC, const CR
我在 Windows XP 上,我正在 try catch 一个窗口。 但是当我捕获一个窗口时,我得到了窗口标题(名称和图标)但是窗口的整个内容都是黑色的。 当试图保存图片时,整个图片是透明的。 这是
我正在使用 PrintWindow 制作 IE 的屏幕截图。问题是有时我会得到带有黑色区域的图像。它可能是整个 html 内容什么是黑色的,有时只有某些区域是黑色的。 IE 的内容在拍摄之间不会改变。
我正在尝试截取 Chrome 窗口的屏幕截图。它看起来像这样: 当我使用 PrintWindow 时要获取屏幕截图,我可以在窗口标题栏/Chrome 选项卡区域看到闪烁。捕获的屏幕截图包含 Windo
经过几个小时的谷歌搜索,我设法“写下”了这个: import win32gui from ctypes import windll hwnd = win32gui.FindWindow(None, '
因此,我在尝试使用 PrintWindow API 为位于非事件桌面上的窗口拍照时遇到了一个问题,它开始让我感到不安。 问题是对于一个特定的窗口,即使 PrintWindow 成功并且我得到了我想要的
我正在尝试使用 PrintWindow 让 chrome 在我的 Canvas 上绘画。这是我用来呈现桌面捕获的代码 PRECT lpRect; GetWindowRect(g_Window, lpR
我已经成功地让 PrintWindow 在 C++ 中工作,但是当我尝试在 C# 中工作时,我得到了一个包含空数据的位图。在 .NET 4.0 上使用 VS 2012 Pro。这是我的代码:
我的目标是在笔记本电脑屏幕关闭时截取应用程序的屏幕截图,但屏幕截图将始终与关闭屏幕之前的屏幕截图相同。一旦屏幕关闭,它不会重新绘制自身,并保持卡住状态。 我正在使用 Python 中的 printwi
我正在使用 PrintWindow API 截取特定窗口 (hwnd) 的屏幕截图。这工作得很好,它截取了整个窗口的屏幕截图。我的问题是:我的窗口高度是 742,宽度是 653。如果我想截取窗口中间某
当使用 Print Screen+Alt 组合键手动捕获窗口时,我得到以下信息: 但如果我尝试使用 Windows API 以编程方式执行此操作,我明白了: 为什么会出现差异?我如何以编程方式获得第一
我有一个 C++ 程序可以捕获特定窗口的屏幕截图并使用以下代码保存 int main() { GdiplusStartupInput gdiplusStartupInput; ULON
我在 HTML 页面中有一个部分需要打印。我使用下面的JS方法来打印它。 printWindow.print(); 我就是这样做的。 $("#toprint").on("click", functio
我使用的是 Microsoft Visual Studio 2010 和 Windows 7 Professional。这是我将窗口图像复制到剪贴板的代码: void PrintWindowEx( H
我是一名优秀的程序员,十分优秀!