之前问我的问题,让我说,我已经在这里阅读约30个线程和其他论坛,并没有一个解决方案已经为我工作:(保持在另一个窗口上方的窗口
所以,这里的我在做一个Hud for在线扑克室,所以我的程序需要在扑克室创建的每个窗口上显示一个表格
问题是如果我想堆叠多个“表格窗口“(扑克应用程序创建的那些),如果我的hud设置为最高,则所有表中都有huds,但我想要的顺序是Hud-Table-Hud-Table -Hu ...等等。
我尝试了好几种方法都使用windows窗体的功能和Windows API的:
this.SetDesktopLocation(rct.Left + p.X, rct.Top + p.Y);
//Or
Win32Utils.SetParent(this.Handle, this.Table.Handle);
//Or
Win32Utils.SetWindowPos(this.Handle, (int)this.Table.Handle, rct.Left + p.X, rct.Top + p.Y, this.Width, this.Height, (int)1);
//Or
Win32Utils.SetZOrder(this.Handle, this.Table.Handle);
在SetZOrder的情况下,下面的代码:
public static void SetZOrder(IntPtr targetHwnd, IntPtr insertAfter)
{
IntPtr nextHwnd = IntPtr.Zero;
SetWindowPos(targetHwnd, insertAfter, 0, 0, 0, 0, SetWindowPosFlags.SWP_NOMOVE | SetWindowPosFlags.SWP_NOSIZE | SetWindowPosFlags.SWP_NOACTIVATE);
}
所以我不知道还有什么尝试。
注意:如果我使用SetParent,则扑克应用程序会冻结。
一张图片。我的应用程序是在底部的窗口,并在扑克应用窗口的左上角创建小形式:
什么是hud?用户是否与顶级形式交互或仅仅是装饰性的?如果用户抓住标题栏并移动它,这两种形式是否会一起移动?图片可能有帮助。 – LarsTech 2012-04-24 12:41:35
HUD =抬头显示,是吗?扑克应用程序是否有控制权,或者您为什么使用api调用将您的hud附加到表窗口? – roken 2012-04-24 12:49:57
HUD =抬头显示,右边。当我回家时,我会张贴几张图片,但同时: LarsTech:“HUD”窗体显示信息并显示工具提示,因此它必须能够响应鼠标输入。是的,他们应该搬家。在这个时候,我通过一个计时器来完成这个工作,并在每个计时器时刻重新定位我的表格。 roken:我无法控制扑克的应用程序。我只是根据一些日志文件显示信息。我使用API调用来了解何时创建窗口,然后创建并定位我的HUD。 – 2012-04-24 13:21:56