色彩管理:监控配置文件更改了Windows的通知?

Cut*_*low 10 windows winapi wcs color-management

简短版本:

我正在寻找协议中的Cocoa – windowDidChangeBackingProperties:通知的Windows API,NSWindowDelegate当窗口的颜色空间发生变化时(当它被移动到另一个监视器或用户更改监视器配置文件时).

有谁知道Windows上的等效API是什么?

长版:

我正在开发一个完全色彩管理的应用程序.因此,我需要在更改显示器的颜色配置文件或将应用程序窗口移动到其他屏幕时收到通知.在Mac方面,这很简单,我只是– windowDidChangeBackingProperties:为我的窗口委托实现该方法,每当用户将窗口拖动到另一个监视器或每次更改全局监视器配置文件时,我都会收到通知.简单易用.在Windows方面,我不知道如何获得这些通知.

目前,当应用程序启动时,我将使用GetICMProfile()WCS(Windows Color System)功能获取监视器配置文件.我需要一些关于监视器配置文件更改的通知.

如何在Windows上接收监视器配置文件更改通知?

应用程序窗口从一个监视器移动到另一个监视器时的通知的加值点.我希望有一个通知,但如果没有,我可以通过监视窗口移动来解决它.

dac*_*cap 1

GetICMProfile()一种可能的解决方案是在某些特定消息(WM_SHOWWINDOWWM_ACTIVATE和)中查询颜色配置文件WM_EXITSIZEMOVE,然后比较配置文件名是否已更改(如果文件名已更改,则当前配置文件也已更改)。

这很遗憾,但当HWND我们从显示设置更改颜色配置文件时,看起来好像没有收到消息,因此WM_ACTIVE部分解决了该问题(当单击/激活窗口时,我们可以检查颜色配置文件是否有改变)。