1

任意のウィンドウで選択した四角形からテキストを取得できるアプリケーションを作成しています。そのため、ExtTextOut(A/W)、TextOut(A/W)、DrawText(A/W) API をフックしてこれを行っています。Windows からテキストを取得することはできますが、特殊なケースではテキストを正しく取得できないことがあります。デバッグしようとすると、ExtTextOutW の HDC パラメータを使用して HWND を取得できないことがわかりました。これは、WindowFromDC(hdc) を呼び出そうとすると、NULL HWND が返されるためです。

理由を調べてみたところ、この HDC が memoryDC であることがわかったので、そのメモリ DC から HWND を取得する方法はありますか。

ですから、HDC から実際の HWND を取得するのを手伝ってください。

4

1 に答える 1

0

実際に関連付けられているものと同じか、または類似している可能性が高いため、これに従う必要があると思います。HDCBitBlt()HDCHWND

  • HDCメモリに書き込まれたテキストをキャッシュします
  • 、などをフックBitBlt()し、のソースがテキストが書き込まれたメモリの1つであるかどうかを確認HDCしますBitBlt()HDCそうである場合は、宛先HDCにが含まれているかどうかを確認し、含まれていない場合は、再度従う必要HWNDのあるメモリです。HDC
于 2012-08-07T09:12:00.707 に答える