1

我正在创建一个应用程序,它可以从任何窗口上的选定矩形中获取文本。所以我通过挂钩 ExtTextOut(A/W)、TextOut(A/W)、DrawText(A/W) api 来做到这一点。我能够从 Windows 中检索文本,但在某些特殊情况下,我无法正确获取文本。当我尝试调试它时,我看到 ExtTextOutW 的 HDC 参数不能用于获取 HWND,因为当我尝试调用 WindowFromDC(hdc) 时,它返回 NULL HWND。

我试图找出原因,然后我发现这个 HDC 是 memoryDC 那么有没有办法从那个 memory DC 获取 HWND。

所以请有人帮我从 HDC 获得实际的 HWND。

4

1 回答 1

0

我认为您必须遵循这一点,HDC因为它很可能是BitBlt()或类似于HDC与实际相关联的 a HWND

  • 缓存写入内存HDC的文本
  • hookBitBlt()等,并检查 s 的来源HDC是否是已写入文本BitBlt()的 memory 之一。HDC如果是,检查目的地HDC是否有一个,如果没有,那么它是一个必须再次遵循HWND的记忆HDC
于 2012-08-07T09:12:00.707 回答