У меня возникла проблема при использовании этого:
SetWindowLongPtr(window_handle, GWL_STYLE, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_POPUP)
Если я создам окно с этими стилями, оно будет отображаться как окно без границ и заголовка, как я хочу:
Но если я установлю эти стили с помощью SetWindowLongPtr(), окно будет выглядеть так:
Я не могу переместить его или щелкнуть по нему, он просто фокусирует окно под моим окном.
Он также исчезает с панели задач и меню Alt+Tab, поэтому я могу закрыть его только через диспетчер задач.
Если я использую SetWindowLongPtr() и SetWindowPos() несколько раз, окно начинает вести себя так, как я хочу, и скрывает границы, но это не похоже на правильный способ сделать это, потому что мне нужно сделать это несколько раз.
Есть ли у кого-нибудь советы или знает, в каком направлении искать решение этой проблемы?
Может быть, мне нужно добавить какие-то уловки в процесс окна или добавить что-то в процесс создания окна?
@JonathanPotter, который должен быть опубликован в качестве ответа.





Согласно предложению Джонатана Поттера:
Когда вы меняете стили окон, влияющие на фрейм, вам нужно вызывать
SetWindowPos()с помощьюSWP_FRAMECHANGED flag.
Когда вы меняете стили окон, которые влияют на фрейм, вам нужно вызвать
SetWindowPos()с флагомSWP_FRAMECHANGED.