Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 扩展Win 7(Aero)的绘制方式';s的默认窗口和控件_C#_C++_Windows_Winapi_Dwm - Fatal编程技术网

C# 扩展Win 7(Aero)的绘制方式';s的默认窗口和控件

C# 扩展Win 7(Aero)的绘制方式';s的默认窗口和控件,c#,c++,windows,winapi,dwm,C#,C++,Windows,Winapi,Dwm,我希望扩展/覆盖Windows7如何绘制其标准窗口和控件。现在,我正在做一项初步研究,研究如何修改标准UI,使其对我正在进行的项目更加友好 具体来说,我想做的是修改W7如何在其窗口周围绘制边框,以及如何修改窗口控制按钮(关闭、最小化、退出等)。这是一个全局更改,将影响系统上所有窗口的绘制方式。老实说,我正在寻找与WindowBlinds非常相似的功能,至少在项目的这一部分 至于如何实现这一目标,我认为最好的做法是创建一个监视每个进程的服务,或者在每个进程中插入一个DLL,以监视其消息队列中与绘制

我希望扩展/覆盖Windows7如何绘制其标准窗口和控件。现在,我正在做一项初步研究,研究如何修改标准UI,使其对我正在进行的项目更加友好

具体来说,我想做的是修改W7如何在其窗口周围绘制边框,以及如何修改窗口控制按钮(关闭、最小化、退出等)。这是一个全局更改,将影响系统上所有窗口的绘制方式。老实说,我正在寻找与WindowBlinds非常相似的功能,至少在项目的这一部分

至于如何实现这一目标,我认为最好的做法是创建一个监视每个进程的服务,或者在每个进程中插入一个DLL,以监视其消息队列中与绘制窗口有关的任何消息。然后它将覆盖该事件,以我希望的方式绘制窗口(或控件)


不幸的是,我对如何真正做到这一点有点粗略。。。有人对如何最好地处理这个问题有什么建议吗?任何语言的示例(我可能会使用C#或C++)都将不胜感激

您应该使用现有的主题设置系统,例如


您还可以与一起使用。

没有受支持的Windows API来替换系统范围内的Windows Visual。这样做需要使用未记录的API和黑客解决方案。反过来,这些类型的黑客可能会使用户的系统更加不稳定。我强烈建议不要这样做

如果您希望调整自己应用程序的视觉效果,可以使用::dwmextendframeintoclienterea来绘制自己的标题区域(例如,Office)。看

马汀