我用了个MDI窗口来控制几个子窗口,可是每次调出子窗口的时候,显示的位置中是靠左上角,而且显示的大小总是与MDI的窗口的大小成一定的比例,不是我原先设计的子窗口的大小,,如果不是我设计的窗口大小就变得非常难看,有什么办法只让它按原来设计的大小来显示吗?
解决方案 »
- fpspread
- 如何解决文本框不能用ctrl+C等等快捷键的问题
- 如何在mshflexgrid中加入一行空白行?
- 怎样使textbox显示的内容随着窗体大小的变化而变化?
- 关于ClientToScreen、SetWindowPos的问题
- 急!急!有没有局域网内,服务器向多个客户机发数据的例子啊!
- 请问用VB作一个DLL地格式是什么?用VB来调用这个DLL地格式呢?
- vb 获取全局鼠标滚轮
- 我要去深圳找工作了,以后来少啦! 大家圣诞快乐,散分120,呵呵!!!!!
- 怎样用ADO对象访问字段类型为OLE对象数据库
- 数据集的生存期问题讨论
- Help!!需要一个输入控件,类似Combox,但输入一个字就能引出含该字的值,如,要输入Apple, 输完a即显示apple...
BorderStyle=1
StartUppositio=2
然后在子窗体的Form.Load中加入以下代码:
' Me.Top = (MDIFrmInPr.ScaleHeight - Me.Height) / 2
' Me.Left = (MDIFrmInPr.Width - Me.Width) / 2
MDIFrmInPr为自已的MDI窗体的名称。
就可以了
Private Sub MDIForm_Resize()
On Error Resume Next
Dim X As Long, Y As Long, H As Long, W As Long
Dim Ratio As Single
With frmimage1
.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
.Cls
If Ratio < Me.ScaleWidth / Me.ScaleHeight Then
.Image1.Height = Me.ScaleHeight
.Image1.Width = Me.ScaleHeight * Ratio
Else
.Image1.Width = Me.ScaleWidth
.Image1.Height = Me.ScaleWidth / Ratio
End If
H = .ScaleHeight '如果想改为拉伸则:H=.ScaleHeight
W = .ScaleWidth
'如果想改为拉伸则:W=.ScaleWidth
X = (.ScaleWidth - W) \ 2 '这里我使用整除"\"而不用浮点除法"/",也是为了提速
Y = (.ScaleHeight - H) \ 2 '因为最后输出图像的位置是不会有半个像素的。
.PaintPicture .Image1.Picture, X, Y, W, H
.Refresh
End WithEnd Sub
me.move left,top,width,height^_^