在winapi中将窗口设置为WS_POPUP样式无法正常工作

问题描述 投票:0回答:1

我在使用时遇到问题:

SetWindowLongPtr(window_handle, GWL_STYLE, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_POPUP)

如果我使用这些样式创建一个窗口,它将显示为一个没有边框和标题的窗口,如我所愿:

image

但是,如果我通过

SetWindowLongPtr()
设置这些样式,窗口将如下所示:

image

我无法移动它,或单击它,它只是将窗口聚焦在我的窗口下方。

它也会从任务栏和Alt+Tab菜单中消失,所以我只能通过任务管理器将其关闭。

如果我多次使用

SetWindowLongPtr()
SetWindowPos()
,窗口开始按照我想要的方式运行并隐藏边框,但这似乎不是正确的方法,因为我需要多次执行此操作.

有人有任何提示,或者知道在哪个方向寻找解决这个问题的方法吗?

也许我需要在窗口进程中添加一些捕获,或者在窗口创建过程中添加一些内容?

c++ windows winapi window
1个回答
0
投票

根据乔纳森·波特的建议:

当您更改影响框架的窗口样式时,您需要使用

SetWindowPos()
来调用
SWP_FRAMECHANGED flag

© www.soinside.com 2019 - 2024. All rights reserved.