我正在为Pokerstars建立一个HUD以显示一些相关的统计数据。
Overlay是一个UserControl:Form,我将其隐藏在状态栏中,并通过winapi隐藏Alt + T. 实际上它有一个TopMost,总是超过Pokertable,但这会导致一些副作用:
我附上一个screnshot来表明我的问题
我有数据:
哪个WinAPI功能可以帮助ne?谁知道一些例子? 我确定,它有可能,有Porgrams(PokerTracker,HoldemManager)解决了这个挑战。
使用TopMost即可始终位于PokerTable之上。因此,如果用户点击它,则可能不会覆盖HUD。
//修改
我现在用1ms的intervalls定时器,它的工作率为60%,有一些副作用。更好的没有什么
if (GetForegroundWindow() == TableHandle) {
this.TopMost = true;
} else {
this.TopMost = false;
}
答案 0 :(得分: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);