请问怎样在form1中引入一个子窗体form2,并且指定form2在form1中的位置和大小?

luoxiang2000 2001-07-23 02:14:37
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Seedling 2001-07-23
  • 打赏
  • 举报
回复
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Dim oldhwnd As Long


Private Sub Form_DblClick()

SetParent Form2.hwnd, oldhwnd '恢复Form2为独立窗体

Form2.Move 0, 0, 2500, 2000 '设置Form2在原父窗口中的位置及大小

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

Unload Form2 '卸载Form2

End Sub

Private Sub Form_Click()

Form2.Show

oldhwnd = GetParent(Form2.hwnd) '获取Form2原父窗口的句柄

SetParent Form2.hwnd, Form1.hwnd '将Form2设置为Form1的子窗体

Form2.Move 500, 500, 1500, 1000 '设置Form2在新父Form1窗口中的位置及大小

End Sub
bao_zey 2001-07-23
  • 打赏
  • 举报
回复
使用MDI窗体
luoxiang2000 2001-07-23
  • 打赏
  • 举报
回复
to benlovekelly(笨笨小蛐蛐):
请具体一点!怎样控制用户不能移动子窗体以及改变子窗体的位置!
benlovekelly 2001-07-23
  • 打赏
  • 举报
回复
这些功能,MDI里也能实现呀!
mellow 2001-07-23
  • 打赏
  • 举报
回复
用resize来固定所显窗体的位置及大小!
luoxiang2000 2001-07-23
  • 打赏
  • 举报
回复
当然可以用MDI,但是如果我还需要指定form2在form1中的位置和大小后,用户不能移动子窗体以及改变子窗体的位置!我该怎么做?
另外,上次有人说可以用SetParent和SetWindowLong这两个api函数创建子窗体,可是我一直不能实现,你们能告诉我吗?
benlovekelly 2001-07-23
  • 打赏
  • 举报
回复
难道不能用MDI吗?(恕我愚言)
applekiller 2001-07-23
  • 打赏
  • 举报
回复
根据Form1的位置信息,动态设置Form2 的位置
hansonman 2001-07-23
  • 打赏
  • 举报
回复
用消息将你的数据传过去把

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧