0

私はPokerstarsのHUDを構築して、いくつかの関連する統計を表示しています。

オーバーレイはUserControl:Formであり、ステータスバーとAlt+Tからwinapiで非表示にします。実際には、常にPokertableの上にあるTopMostがありますが、これによりいくつかの副作用が発生します。

問題を示すためにscrenshotを添付しました

  • 1:すべてOK
  • 2:Pokertableの一部だけが私のウェブブラウザによってオーバーレイされています。この場合、HUDが表示されます(OK!)
  • 3:ブラウザはHUDが配置されているポーカーテーブルの領域をオーバーレイしました。この場合、私のHUDはTopMostであってはなりません。

私が持っているデータ:

  • IntPtrハンドル(PokerTableの)
  • ポイント位置(画面上)
  • ポイントサイズ(ウィンドウから)

どのWinAPI関数がneを助けることができますか?誰かがいくつかの例を知っていますか?確かに、この課題を解決したポーグラム(PokerTracker、HoldemManager)があります。

使用するTopMostimは、常にPokerTableの上に配置する必要があります。そのため、ユーザーがクリックしても、HUDがオーバーレイされない場合があります。

3件


//編集

私は今それを1ms間隔のタイマーで行いました、その60%は動作します、いくつかの副作用があります。何もないより良い

   if (GetForegroundWindow() == TableHandle) {
            this.TopMost = true;
        } else {
            this.TopMost = false;
        }

4

1 に答える 1

0

自分でそれを理解しました-ここに行きます!

public class WinAPI {
    [DllImport("user32.dll")]
    public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, uint dwNewLong);

    public const int GWL_HWNDPARENT = -8;
}


WinAPI.SetWindowLong(this.Handle, WinAPI.GWL_HWNDPARENT, (uint)this.ObservedHandle);
于 2012-08-10T00:30:57.747 に答える