MDI窗体的优化---上

     对于刚刚接手的 机房收费系统。

     该系统,最外层是一个MDI窗体。对于其他的操作,都在MDi子窗体里面进行。


      当看到这种窗体的时候,我们毫不犹豫的就说,这个窗体的主窗体是一个MDI窗体。其他的都是他的子窗体。

      所以我们在做系统的时候,创建一个MDI窗体。但是我们会发现,在MDI窗体上不能添加 按钮其他控件。所以我们需要一个容器控件。大部分人都会想到的时pictureBox因为这是一个非常简单,有代表的容器控件。

      刚做完主窗体的时候,没有什么错。但是当你有MDI子窗体form1的时候,你会发现,问题来了。不管你怎么调整,子窗体form1都看不到。

 

      下面举一个小例子,可以解决以上问题。

      这是一个MDI窗体,上面的是一个pictureBox控件,当点击按钮的时候,弹出form1子窗体。


当点击按钮的时候,你会看到下面这种情况。


      子窗体form1picture在同一个层级。所以看不到子窗体。

      下面给出一种解决办法:

使用API函数----,将form1设置成为pictureBox的子窗体。这样,form1就可以显示在pictureBox前面了。


	Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
	
	Private Sub Command1_Click()
	    SetParent Form1.hWnd, MDIForm1.hWnd
	    Form1.Show
	End Sub


     使用 api函数,就可以把子窗体form1放置在pictureBox之上显示出来了




     但是 form1显示的不完全,这时就需要设置子窗体的长宽了

	Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
	
	Private Sub Command1_Click()
	    SetParent Form1.hWnd, MDIForm1.hWnd
	    Form1.Show
	    Form1.Width = Picture1.ScaleWidth
	    Form1.Height = Picture1.ScaleHeight
	End Sub



虽然问题解决了,但是视图的美观却被打破了。

MDI子窗体最大化后的标题栏在MDI窗体的菜单栏下方。而且,MDI子窗体最小化后,就找不到了。

 

为了实现更友好的主界面,我们在下一期讲解。



评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值