私は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がオーバーレイされない場合があります。
//編集
私は今それを1ms間隔のタイマーで行いました、その60%は動作します、いくつかの副作用があります。何もないより良い
if (GetForegroundWindow() == TableHandle) {
this.TopMost = true;
} else {
this.TopMost = false;
}