当前位置:编程学习 > C#/ASP.NET >>

关于SetWindowPos函数的使用问题

我现在希望调用系统的鼠标属性窗口,让这个窗口每次显示的位置为我设置的位置,我用SetWindowPos函数设置它的显示位置,但是发现这个函数没有起到作用,代码如下:

[DllImport("User32.dll", CharSet = CharSet.Auto)]
private static extern int SetWindowPos(IntPtr win_handle, IntPtr win_handle_insert_after, int x, int y, int width, int height, uint flags);

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "rundll32.exe";
psi.Arguments = "shell32.dll, Control_RunDLL main.cpl";
Process proc = Process.Start(psi);  
SetWindowPos(proc.MainWindowHandle, new IntPtr(-1), 500, 500, 0, 0, 3);
proc.WaitForExit();

代码执行过程中,我发现SetWindowPos函数根本没起到作用,弹出的窗口并不是出现在(500,500)的位置,后来debug发现,当Process.Start(psi); 语句执行过后,窗口就已经弹出来了,SetWindowPos函数没有用。所以请高手指点我应该怎样做才能设置窗口弹出的位置呢? 
--------------------编程问答-------------------- 使用MoveWindow


--------------------编程问答-------------------- 我试过了#2楼这位朋友的作法,还是不行,每次弹出的位置都不是在(500,500)的位置,跟之前的效果还是一样的,主要是Process.Start(psi)函数执行完了之后窗口马上就弹出来了,MoveWindow没起作用。请哪位高手再指点指点,非常感谢!
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,