| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 窗口_置父_彗星 | 逻辑型 | 真正的置父窗口 By:邓学彬(泪闯天涯) | |||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| 父窗口句柄 | 整数型 | 子窗口句柄 | 整数型 | 子窗口左边 | 整数型 | 留空默认为0 | 子窗口顶边 | 整数型 | 留空默认为0 | 子窗口宽度 | 整数型 | 留空宽度不变 | 子窗口高度 | 整数型 | 留空高度不变 |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| dwStyle | 整数型 | |||||
| dwNewStyle | 整数型 | |||||
| Rect | RECT | |||||
| hWndParentOld | 整数型 | |||||
| dwStyleOld | 整数型 | |||||
判断 (父窗口句柄 = 0)
hWndParentOld = GetPropA (子窗口句柄, “hwndparentold_tmp”) ' 获取子窗口原父句柄
dwStyle = GetPropA (子窗口句柄, “styleold_tmp”) ' 获取子窗口原样式
SetWindowLongA (子窗口句柄, #GWL_STYLE, dwStyle) ' 还原原样式
SetParent (子窗口句柄, hWndParentOld) ' 还原原父窗口
RemovePropA (子窗口句柄, “hwndparentold_tmp”)
RemovePropA (子窗口句柄, “styleold_tmp”)
' 设置父窗口
SetParent (子窗口句柄, 父窗口句柄)
' 设置窗口样式 去除WS_POPUP,加入WS_CHILD
hWndParentOld = GetParent (子窗口句柄) ' 获取窗口原父句柄,恢复时用到
dwStyleOld = GetWindowLongA (子窗口句柄, #GWL_STYLE )
dwStyle = GetWindowLongA (子窗口句柄, #GWL_STYLE ) ' 窗口原来的样式,还原时用到
dwNewStyle = 位与 (dwStyle, 位取反 ( #WS_POPUP )) ' 去除WS_POPUP
dwNewStyle = 位或 (dwNewStyle, #WS_CHILD ) ' 加入WS_CHILD
SetPropA (子窗口句柄, “hwndparentold_tmp”, hWndParentOld) ' 记录原父句柄
SetPropA (子窗口句柄, “styleold_tmp”, dwStyle) ' 记录原样式
如果真 (dwStyle ≠ dwNewStyle)
SetWindowLongA (子窗口句柄, #GWL_STYLE, dwNewStyle)

' 调整子窗口位置
GetWindowRect (子窗口句柄, Rect)
如果真 (是否为空 (子窗口宽度))
子窗口宽度 = Rect.Right - Rect.Left
如果真 (是否为空 (子窗口高度))
子窗口高度 = Rect.Bottom - Rect.Top返回 (MoveWindow (子窗口句柄, 子窗口左边, 子窗口顶边, 子窗口宽度, 子窗口高度, 1) = 1)
词条作者信息 使用例程
