MDI父窗体控件挡住子窗体的问题,用win API SetWindowPos()的方法来解决,向高手请教

 谁对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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值