因为项目需求,在打开新窗体的同时,需要之前窗口不可被点击,但是最好不要消失,找了很久找到了一种方法:
//找到窗口属性
LONG dwNewLong = GetWindowLong(hWndMain, GWL_EXSTYLE);
//隐藏窗口
dwNewLong |= WS_EX_TRANSPARENT | WS_EX_LAYERED;
SetWindowLong(hWndMain, GWL_EXSTYLE, dwNewLong);
//显示窗口
//dwNewLong ^= WS_EX_TRANSPARENT | WS_EX_LAYERED;
//SetWindowLong(hWndMain, GWL_EXSTYLE, dwNewLong);
这里的原理是将hWndMain窗口屏蔽掉鼠标和键盘的响应,但是保留在桌面最底层,相当于嵌入了桌面背景
如果再次调用显示窗口的函数可将其激活