谁对win API 比较熟悉 帮我看一下这个:
[DllImport("user32.dll")]
private static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);
private const int HWND_BOTTOM = -1;
private const int SWP_SHOWWINDOW = 0x40;
SetWindowPos(SWP_SHOWWINDOW, HWND_BOTTOM, 0, 0, 500, 500, 0x40);
这个完成了使当前窗体位于底层显示,我是用于MDI窗体的(情况是这样,原本想在MDI窗体的父窗体上放一个PANLE 然后在PANLE上放一些按钮来调出子窗体,但是发现父窗体的PANLE总是要挡住子窗体的显示,后来没办法,只好把一个子窗体f1设置为不显示边框然后在这个子窗体f1上放PANLE,在PANLE上在放按钮来调用其它子窗体,这样做的确是可以了。但是有个问题就是这些子窗体包括f1都是平级关系,这样的话,当f1获取焦点时就会挡住其它子窗体其它子窗体就找不到了很是不爽,于是在网上找到了这个办法解决,这个办法的思路是当f1获取焦点时使其处于程序窗体的最底层。然后我把SetWindowPos(SWP_SHOWWINDOW, HWND_BOTTOM, 0, 0, 500, 500, 0x40);这一句放到了f1的激活事件中,试验了一下,果然不错,但是问题又来了,就是当所有子窗体包括f1退出时,父窗体无法激活了。。。)真要命,高手帮忙看看是什么问题,谢谢了,
我的环境:VS2008 C# .net2.0