1

フルスクリーンアプリケーションであっても、任意のウィンドウの上に表示されるデータを表示するために、グラフィカルオーバーレイを実行することを検討しています。

APIフックを使用してアクティブなウィンドウを取得できます。これにより、グラフィックオブジェクトを作成し、アクティブなウィンドウの上に描画できます。これは、ほぼ私が探しているものです。唯一の問題は、drawstring呼び出しを使用しようとすると、そのウィンドウの境界を使用してデータを引き出すことです。

したがって、呼び出し:

gphx.DrawString("test", New Font("Tahoma", 12), New SolidBrush(Color.Red), New PointF(0, 0))

タイトルバーではなく、フォームの使用可能領域の左上隅に「テスト」が表示されます。フォームの使用可能領域をキャンバスとして使用しているため、その呼び出しで負の数を使用することもできません。そのため、表示されていない領域に描画するだけになります。

私の目標は、ウィンドウがどこにあるかに関係なく、データを常に画面の同じ場所に表示することです。

APIフックアクティブなウィンドウを取得するために使用されます。

<Runtime.InteropServices.DllImport("user32.dll")>
    Public Function GetForegroundWindow() As IntPtr
    End Function

画面のハンドルを取得する機能(私は真剣に疑っています)または画面に直接描画する方法はありますか?

これを実現するためにDirectXライブラリを使用する必要はありませんが、GDI +または他のAPI呼び出しでそれが不可能な場合は、そのルートを使用する必要があります。

4

0 に答える 0