SetSystemPaletteUse()函数

函数功能:该函数允许一个应用指定系统调色板包含2个或20个静态颜色。缺省的系统调色板包含20个静态颜色(为一个应用映射一个逻辑调色板时,静态颜色不发生变化)。

参数:

hdc:设备环境句柄,该设备环境必须引用一个支持彩色调色板的设备。

uUsage:指定系统调色板的一个新的使用,该值可以是如下几种:

SYSPAL_NOSTATIC:系统调色板包含个静态颜色(黑色和白色)。

SYSPAL_NOSTATIC 256:Windows NT 5.0或以后版本,系统调色板不包含静态颜色。

SYSPAL_STATIC:系统调色板包含静态颜色,当一个应用映射它的逻辑调色板时这些静态颜色不发生变化。

返回值:如果成功,返回值是前一个系统调色板,它可以是SYSPAL_NOSTATIC。SYSPAL_NOSTATIC 256或SYSPAL_STATIC;如果失败,返回值是SYSPAL_ERROR。

Windows NT:若想获得更多错误信息,请调用GetLastError函数。

注释:通过调用GetDeviceCaps函数和指定RASTERCAPS常量,一个应用可以确定一个设备是否支持调色板操作。

当一个应用程序窗口移到前台,并且SYSPAL_NOSTATIC值已设置时,该应用必须调用GetSysColor函数来储存当前的系统颜色设值,它必须同时调用setsysColor函数仅使用黑色和白色来设置合理的值。当该应用回到后台或被中断,则以前的系统颜色必须被恢复。

如果该函数返回SYSPAL_ERROR,则指定的设备环境无效,或者不支持彩色调色板。当一个应用的窗口最大化并且有输入焦点时,必须调用该函数。当一个应用调用该函数并且uUsage设置为SYSPAL_NOSTATIC之后,它必须遵循如下的步骤:映射逻辑调色板。调用GetSysColor函数保存当前系统颜色设置。调用SetsysColor函数使用白色和黑色设置系统颜色为合理值。例如,相邻或重迭的项目(如窗口框和边界)应分别设置为黑色和白色。

发送WM_SYSCOLORCHANGE消息到其他的顶层窗口,让它们使用新的系统颜色刷新屏幕。

当该应用窗口关闭或失去焦点时,它必须做如下事情:

调用SetsystemrPalette函数并把uUsage参数设置为SYSPAL_STATIC,映射逻辑调色板。

把系统颜色恢复为以前的值,发送WM_SYSColoRCHANGE消息。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h;库文件:gdi32.lib。