vb,MDI的子窗体是一个模拟仿真显示区,要想通过改变分辨率大小使仿真区的大小跟着变化,应该怎样写代码
2014-02-20
展开全部
那是做不到的
因为 MDI 程序中
子窗体实际上是位于 MDIClient 里
就是说 子窗体的父窗体 是 MDIClient
而 放置在MDI中 的 picturebox 和MDIClient是同一级的
层次结构
ThunderMDIForm--MDIForm1
--MDIClient
----ThunderFormDC--Form1 子窗体1
----ThunderFormDC--Form2 子窗体2
--ThunderPictureBoxDC MDI中 的 picturebox
如果硬要将子窗体放到上面
只能是
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
SetParent Form1.hWnd, MDIForm1.hWnd
这样就破坏了 Form1的消息循环,程序可以运行,但窗体效果就不对了
MDI主窗体中显示一个背景,是MDI自绘背景
图片应该绘制在MDIClient上,而不能加载picturebox
这个要通过回调才能实现
VB MDI 显示背景图
Private Sub MDIForm_Load()
Me.Picture = LoadPicture("c:\1.bmp")
End Sub
只能显示在左上角
因为 MDI 程序中
子窗体实际上是位于 MDIClient 里
就是说 子窗体的父窗体 是 MDIClient
而 放置在MDI中 的 picturebox 和MDIClient是同一级的
层次结构
ThunderMDIForm--MDIForm1
--MDIClient
----ThunderFormDC--Form1 子窗体1
----ThunderFormDC--Form2 子窗体2
--ThunderPictureBoxDC MDI中 的 picturebox
如果硬要将子窗体放到上面
只能是
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
SetParent Form1.hWnd, MDIForm1.hWnd
这样就破坏了 Form1的消息循环,程序可以运行,但窗体效果就不对了
MDI主窗体中显示一个背景,是MDI自绘背景
图片应该绘制在MDIClient上,而不能加载picturebox
这个要通过回调才能实现
VB MDI 显示背景图
Private Sub MDIForm_Load()
Me.Picture = LoadPicture("c:\1.bmp")
End Sub
只能显示在左上角
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询