SwitchToThisWindow 点石成金?

本文最后更新于:2022年4月11日 晚上

前情提要

加更一期

别前情提要了,熄灯了大哥

正片

偶然发现

SwitchToThisWindow 作用于Qt子控件(如QLineEdit)导致原本的窗口整体分裂为众多子窗体

1
SwitchToThisWindow(HWND(ui->lineEdit->winId()), true);

众所周知,Spy++探测Qt窗口是只能扫到一整个窗口的

但是如此操作之后,就能探测到子控件(已经上升为子窗体 拥有HWND

分裂

后果是,上层子窗体会拦截WM_NCHITTEST,导致下层主窗体无法接收,导致自定义标题栏无法响应鼠标移动(窗体无法移动)

我只能说很神奇,这绝对是一个非常难发现的特性(并没有发现任何记载)

More

还有更神奇的

QListWidget的自定义item使用后发现

  • 第一行的item是一个整体,第二行开始,每个控件都分裂为窗口
  • 新增的item在初始化时会表现为首行item样貌,然后瞬间恢复正常

这就

大受震撼

交给后人了

睡了 peace


SwitchToThisWindow 点石成金?
https://mrbeancpp.github.io/2022/04/11/SwitchToThisWindow-窗独分子?/
作者
MrBeanC
发布于
2022年4月11日
许可协议