C# 扩展Win 7(Aero)的绘制方式';s的默认窗口和控件
我希望扩展/覆盖Windows7如何绘制其标准窗口和控件。现在,我正在做一项初步研究,研究如何修改标准UI,使其对我正在进行的项目更加友好 具体来说,我想做的是修改W7如何在其窗口周围绘制边框,以及如何修改窗口控制按钮(关闭、最小化、退出等)。这是一个全局更改,将影响系统上所有窗口的绘制方式。老实说,我正在寻找与WindowBlinds非常相似的功能,至少在项目的这一部分 至于如何实现这一目标,我认为最好的做法是创建一个监视每个进程的服务,或者在每个进程中插入一个DLL,以监视其消息队列中与绘制窗口有关的任何消息。然后它将覆盖该事件,以我希望的方式绘制窗口(或控件)C# 扩展Win 7(Aero)的绘制方式';s的默认窗口和控件,c#,c++,windows,winapi,dwm,C#,C++,Windows,Winapi,Dwm,我希望扩展/覆盖Windows7如何绘制其标准窗口和控件。现在,我正在做一项初步研究,研究如何修改标准UI,使其对我正在进行的项目更加友好 具体来说,我想做的是修改W7如何在其窗口周围绘制边框,以及如何修改窗口控制按钮(关闭、最小化、退出等)。这是一个全局更改,将影响系统上所有窗口的绘制方式。老实说,我正在寻找与WindowBlinds非常相似的功能,至少在项目的这一部分 至于如何实现这一目标,我认为最好的做法是创建一个监视每个进程的服务,或者在每个进程中插入一个DLL,以监视其消息队列中与绘制
不幸的是,我对如何真正做到这一点有点粗略。。。有人对如何最好地处理这个问题有什么建议吗?任何语言的示例(我可能会使用C#或C++)都将不胜感激 您应该使用现有的主题设置系统,例如
您还可以与一起使用。没有受支持的Windows API来替换系统范围内的Windows Visual。这样做需要使用未记录的API和黑客解决方案。反过来,这些类型的黑客可能会使用户的系统更加不稳定。我强烈建议不要这样做 如果您希望调整自己应用程序的视觉效果,可以使用::dwmextendframeintoclienterea来绘制自己的标题区域(例如,Office)。看 马汀