找回密码
 加入
搜索
查看: 2831|回复: 6

[GUI管理] [未解决]GUICreate 过的窗口,可以重新指定父窗口么?

[复制链接]
发表于 2010-4-25 17:11:30 | 显示全部楼层 |阅读模式
本帖最后由 zjimmy 于 2010-4-25 22:01 编辑

窗口在 GUICreate 的时候可以指定父窗口。
那么,一旦 GUICreate 过以后,能否重新指定一个新的父窗口?

_WinAPI_SetParent

_WinAPI_SetParent 的实际效果貌似和直接 GUICreate 指定父窗口的效果不一样,请见以下两种代码,第一个是直接 GUICreate 的,第二个是 _WinAPI_SetParent 的:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$GUI_Parent = GUICreate("GUI Parent", 400, 300, -1, -1)
GUISetState(@SW_SHOW)

$GUI_Child = GUICreate("GUI Child", 200, 150, 0, 0, -1, -1, $GUI_Parent)
GUISetState(@SW_SHOW)

Do
        $msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE

Exit
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#include <WinAPI.au3>

$GUI_Parent = GUICreate("GUI Parent", 400, 300, -1, -1)
GUISetState(@SW_SHOW)

$GUI_Child = GUICreate("GUI Child", 200, 150, 0, 0, -1, -1);, $GUI_Parent)
_WinAPI_SetParent($GUI_Child, $GUI_Parent)
GUISetState(@SW_SHOW)

Do
        $msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE

Exit
发表于 2010-4-25 17:26:52 | 显示全部楼层
_WinAPI_SetParent($Child_GUI, $GUI)

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2010-4-25 17:27:10 | 显示全部楼层
_WinAPI_SetParent($Child_GUI, $GUI)
 楼主| 发表于 2010-4-25 17:58:58 | 显示全部楼层
貌似 API 很强大?
Thank you very much~
 楼主| 发表于 2010-4-25 22:07:26 | 显示全部楼层
回复 2# 298311657


    _WinAPI_SetParent 的实际效果貌似和直接 GUICreate 指定父窗口的效果不一样
发表于 2010-4-26 09:51:26 | 显示全部楼层
貌似区别在这里(UDF帮助原文):使用 SetParent函数设置弹出式窗口, 层叠窗口, 或子窗口.
我的理解是当使用 SetParent函数设置的子窗口具有(弹出式窗口, 层叠窗口, 或子窗口)的样式.
不一定正确,请甄别使用。
 楼主| 发表于 2010-4-27 10:16:54 | 显示全部楼层
比如我一开始给出的例子,本来就是弹出式窗口,SetParent以后,反而“嵌套”在父窗口里面了。。。
难道就没有办法解决么?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-21 03:36 , Processed in 0.081997 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表