WM_SETTINGCHANGE

【勇芳软件工作室】汉化HomePreviousNext

SystemParametersInfo功能更改系统范围的设置时,系统会向所有顶级窗口发送WM_SETTINGCHANGE消息。只有SystemParametersInfo主叫方指定了SPIF_SENDCHANGE标志,系统才会发送此消息。

当系统参数更改时,应用程序可以向所有顶级窗口发送WM_SETTINGCHANGE。例如,您可以在调用WriteProfileStringWriteProfileSectionSetLocaleInfo函数后或在注册表中更改系统参数后发送此消息。

WM_SETTINGCHANGE消息与较旧的WM_WININICHANGE消息相同。

WM_SETTINGCHANGE

wParam = wFlag; //系统范围的参数标志

lParam = (LPARAM) (LPCTSTR) pszSection; //更改部分或注册表的名称

参数

【WFLAG】

价值【wParam中】.当系统发送消息作为SystemParametersInfo调用的结果时,此参数是一个标志,指示系统参数被更改。有关值的列表,请参阅SystemParametersInfo函数。

当应用程序发送消息时,此参数必须为NULL。

【pszMetrics】

价值【lParam的】.指向一个字符串的指针,指示包含已更改的系统参数的区域。例如,此字符串可以是注册表项的名称或WIN.INI文件中的部分名称。

该参数在确定哪个系统参数改变时不是特别有用。例如,当字符串是注册表名称时,它通常仅指示注册表中的叶节点,而不是整个路径。另外,一些应用程序将【lParam的】的消息发送到NULL。一般来说,当您收到此消息时,应检查并重新加载应用程序使用的任何系统参数设置。

返回值

如果处理该消息,返回零。

备注

要将WM_SETTINGCHANGE消息发送到所有顶级窗口,请使用【HWND】参数设置为HWND_BROADCAST的SendMessage功能。

对更改WIN.INI文件的函数的调用可能会映射到注册表。当WIN.INI文件和被更改的部分在注册表中在以下键下指定时,会发生此映射:

HKEY_LOCAL_MACHINE\软件\微软\
Windows NT\CurrentVersion\IniFileMapping

存储位置的更改对此消息的行为没有影响。

也可以看看

SendMessage, SetLocaleInfo, SystemParametersInfo, WM_WININICHANGE, WriteProfileSection, WriteProfileString