C++ 如何使用winapi实现类似Steam的窗口?
这是Steam客户端窗口正在调整大小的屏幕截图 Steam的客户端窗口有两个很酷的特性C++ 如何使用winapi实现类似Steam的窗口?,c++,c,winapi,resize,steam,C++,C,Winapi,Resize,Steam,这是Steam客户端窗口正在调整大小的屏幕截图 Steam的客户端窗口有两个很酷的特性 定制窗口,响应速度非常快 冷玻璃调整大小效果,与标准窗口不同(认为这可能是与1密切相关的副作用) 假设我想使用winapi创建类似的窗口。我怎么做 我不是问小部件管理相关的东西,而是问winapi的技术技巧。基本上,你可以用你的窗口做任何事情。但是大多数技巧都是手动实现的。 我不知道什么是“非常敏感的”。如果您的意思是窗口没有标准边框,那么很容易实现:在创建WS\u弹出窗口时,不要指定WS\u边框和WS\u标
我不是问小部件管理相关的东西,而是问winapi的技术技巧。基本上,你可以用你的窗口做任何事情。但是大多数技巧都是手动实现的。
WS\u弹出窗口时,不要指定WS\u边框
和WS\u标题
。之后,你必须自己画一个边框和一个标题。像往常一样处理WM_ERASEBKGND
和WM_PAINT
消息、绘制背景、菜单
WM_SIZE
消息,并对其进行处理,Windows发送一条WM_ERASEBKGND
消息,窗口忽略该消息。因此,系统在新窗口框架周围绘制一个新阴影,该阴影尚未填充新窗口图像。在这里,我们得到了一个很酷的玻璃效果:一个带有窗户空气动力学阴影的背景窗户的旧图像。您可以尝试禁用windows阴影并查看此效果LoadCursor
,SetCursor
,MoveWindow
为了绘制自定义边框,可以使用standart GDI函数。您还可以创建一些子窗口并将图形委托给它们。这是winapi的基础知识