我可以在父窗口下显示 Win32 子窗口吗?

时间:2021-06-28 06:30:38

标签: windows winapi window

我想在父窗口中添加子窗口,使子窗口的内容在父窗口下方(Z顺序)。就像组合两层,而不是替换。因为我想要父窗口中的一些UI元素可以在子窗口的区域内可以看到,但不能覆盖子窗口的全部。子窗口应该是一个窗口,所以我不能只使用父窗口的UI系统来实现子窗口的UI。

是否有任何 api 可以实现这一点?

我找到了类似“UpdateLayeredWindow”的东西,但是我没有创建图层子窗口,CreateWindowEx 返回 NULL 并且 GetLastError 返回 0。这段代码是从 Windows's example 复制的。并且演示项目 (DirectCompositionLayeredChildWindow) 运行良好。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>
                    
         $(document).ready(function() {
            
            $(".btn-success").click(function(){

                let cloneId = Math.floor((Math.random() * 99) + 1);

                var cloneHtml = `<div class="clone hide" id="clone_` + cloneId + `">
                    <div class="realprocode control-group lst input-group" style="margin-top:10px">
                        <input type="file" name="filenames[]" class="myfrm form-control">
                        <div class="input-group-btn">
                            <button class="btn btn-danger" id="remove_` + cloneId +`" type="button"><i class="fldemo glyphicon glyphicon-remove"></i> Remove</button>
                        </div>
                    </div>
                </div>`;

                $(".increment").after(cloneHtml);
            });  

            $("body").on("click", ".btn-danger", function(e){
                $(this).closest('.clone').remove();
            });
        });
    </script>

1 个答案:

答案 0 :(得分:1)

这是不可能的,如here所述:

<块引用>

子窗口的任何部分都不会出现在其父窗口的边界之外。

Also

<块引用>

子窗口与其父窗口按 z 顺序分组。

换句话说:您不能在父窗口的客户区之外创建子窗口,也不能以 Z 顺序创建在父窗口之下的子窗口。

相关问题