Ich versuche, ein HUD für Poker zu tun,C# kann nicht konzentrieren, wenn SetParent user32.dll
So ist die Idee Form
über die Poker-Applikation eingestellt ist (was nicht meine Anwendung ist) und halten Sie das Formular immer über den Tisch, auch wenn ich den Pokertisch
So bekomme ich die IntPtr aus der Tabelle mit
[DllImport("user32.dll")]
public static extern int EnumWindows(EnumWindowsCallback lpEnumFunc, int lParam);
bewegen brauche ich ein Form
für jeden Spieler für die Anzeige am Tisch die Informationen zu einem Spieler
Also ich mein Formular erstellen, die ich an den Poker-Tisch befestigen mit
[DllImport("user32.dll")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
Aber dann, wenn ich die Form zeigen, verlor ich den Fokus! Ich kann einfach nicht auf den Pokertisch oder auf meinen Hauptrahmen klicken. Eine Lösung ?
private void displayHudForEachPlayer(IntPtr pokerTable) {
StringBuilder windowTitle = new StringBuilder(256);
GetWindowText(pokerTable, windowTitle, windowTitle.Capacity);
if (windowTitle.ToString().Contains("Real money"))
{
HudPlayerView hudPlayer1 = new HudPlayerView();
//hudPlayer1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
Console.WriteLine(windowTitle.ToString());
IntPtr childHandle = hudPlayer1.Handle;
ParentWndWrapper oParentWnd = new ParentWndWrapper(pokerTable);
SetParent(childHandle, pokerTable);
hudPlayer1.SetBounds(0, 0, 100, 50);
hudPlayer1.ShowDialog();
}
}
Ich habe auch versucht mit
IWin32Window w = Control.FromHandle(pokerTable);
hudPlayer1.ShowDialog(w);
statt SetParent aber dasselbe Ergebnis.
So offensichtlich ... tkanks. – amdev