请教:子窗口无边框,导致主窗口大小不能调整,就指点!

litao_fox 2016-01-19 07:39:08
嗯!是两个EXE程序的主窗口。
A程序的主窗口将B程序的主窗口抓取过来,作为A的子窗口。 B窗口为了保证效果,被设置成无边框。
抓取后,A的窗口边框无法调整大小,可以 最大化、最小化、还原

求指点!!
...全文
190 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一笑拔剑 2016-01-23
  • 打赏
  • 举报
回复
我觉得你想差了 不需要Movewindow 直接重新抓取这个窗体就可以了啊 你只要改变text1的长宽就好啊 释放窗体重绘text1然后重新抓取窗体不就好了? 如果你一定要Movewindows来贴合text1 那我的建议是再Movewindows后面等待 而不是再之前.等待他大小变化以后再SetParent
litao_fox 2016-01-20
  • 打赏
  • 举报
回复
引用 4 楼 litao_fox 的回复:
嗯! 上面错了! 启动指定程序: FP= "E:\VB6 工程\gc2\子工程.exe" '程序文件 CMD = FP & " /P-" & Me_Child(0).hwnd & " /Child_ID " & UBound(Me_Child) + 1 ‘加参数 PID = Shell(CMD, 1) ’Shell If PID = 0 Then Exit Function hwnd = InstanceToWnd(PID) ' 通过进程ID获得该进程的窗口句柄 Old = SetParent(hwnd, Me.hwnd) '指定窗体 父容器 '返回 旧父窗体句柄 Form_Resize 事件执行: call SetParent(hwnd, 0) ‘还原子窗体 启动计时器延时100毫秒 计时器事件: Old = SetParent(hwnd, Me.hwnd) '指定窗体 父容器 '返回 旧父窗体句柄 重绘 = True Call MoveWindow(hwnd, Text1.Left, Text1.Top, Text1.Width, Text1.Height, 重绘) '移动窗体 ========================================= 由于在 Form_Resize 事件 中直接 MoveWindow 不行,我使用延时 再MoveWindow 还是不行!
Text1 控件在Form_Resize 事件 中 会根据窗体大小改变 大小。
litao_fox 2016-01-20
  • 打赏
  • 举报
回复
嗯! 上面错了! 启动指定程序: FP= "E:\VB6 工程\gc2\子工程.exe" '程序文件 CMD = FP & " /P-" & Me_Child(0).hwnd & " /Child_ID " & UBound(Me_Child) + 1 ‘加参数 PID = Shell(CMD, 1) ’Shell If PID = 0 Then Exit Function hwnd = InstanceToWnd(PID) ' 通过进程ID获得该进程的窗口句柄 Old = SetParent(hwnd, Me.hwnd) '指定窗体 父容器 '返回 旧父窗体句柄 Form_Resize 事件执行: call SetParent(hwnd, 0) ‘还原子窗体 启动计时器延时100毫秒 计时器事件: Old = SetParent(hwnd, Me.hwnd) '指定窗体 父容器 '返回 旧父窗体句柄 重绘 = True Call MoveWindow(hwnd, Text1.Left, Text1.Top, Text1.Width, Text1.Height, 重绘) '移动窗体 ========================================= 由于在 Form_Resize 事件 中直接 MoveWindow 不行,我使用延时 再MoveWindow 还是不行!
litao_fox 2016-01-20
  • 打赏
  • 举报
回复
是用的 API Form_Resize 事件执行: FP= "E:\VB6 工程\gc2\子工程.exe" '程序文件 CMD = FP & " /P-" & Me_Child(0).hwnd & " /Child_ID " & UBound(Me_Child) + 1 ‘加参数 PID = Shell(CMD, 1) ’Shell If PID = 0 Then Exit Function hwnd = InstanceToWnd(PID) ' 通过进程ID获得该进程的窗口句柄 Old = SetParent(hwnd, Me.hwnd) '指定窗体 父容器 '返回 旧父窗体句柄 重绘 = True Call MoveWindow(hwnd, Text1.Left, Text1.Top, Text1.Width, Text1.Height, 重绘) '移动窗体
一笑拔剑 2016-01-20
  • 打赏
  • 举报
回复
上代码吧.要不不清楚你的目的.
一笑拔剑 2016-01-20
  • 打赏
  • 举报
回复
用什么抓取的? 是子窗体还是用api?

7,763

社区成员

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

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