在开发中遇到了如下问题:

通过鼠标钩子获取某窗口的消息,发现可以接收到WM_LBUTTONDOWN消息,但始终无法接收到WM_LBUTTONDBLCLK消息。

经过一番排查,发现Windows窗口只有在拥有CS_DBLCLKS类样式时才能接收到鼠标双击事件,即在RegisterClassEx函数的WNDCLASSEX.style参数中指定CS_DBLCLKS样式。

但是窗口不是我们自己创建的,能否通过SetClassLongPtr函数来通过句柄改变窗口类样式,经过多方尝试最终以失败告终(SetClassLongPtr返回值0,GetLastError也为0)。