gpt4 book ai didi

windows - 颜色管理 : Monitor profile changed notification for Windows?

转载 作者:可可西里 更新时间:2023-11-01 12:42:10 25 4
gpt4 key购买 nike

简短版:

我正在寻找与 Cocoa 等价的 Windows API – windowDidChangeBackingProperties: NSWindowDelegate 中的通知当窗口的色彩空间发生变化时调用的协议(protocol)(当它被移动到另一个显示器或当用户更改显示器配置文件时)。

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

长版:

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

目前我正在使用 GetICMProfile() 获取监视器配置文件WCS ( Windows Color System ) 在应用程序启动时起作用。当监视器配置文件更改时,我需要一些通知。

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

当应用程序窗口从一台显示器移动到另一台显示器时,通知会加分。我希望有一个通知,但如果没有,我可能可以通过监 Windows 口移动来弄清楚。

最佳答案

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

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

关于windows - 颜色管理 : Monitor profile changed notification for Windows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25298607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com