|
Logical Palette
A logical palette is a color palette that an application creates and associates with a given
device context. Logical palettes let applications define and use colors that meet
their specific needs. Applications can create any number of logical palettes,
using them for separate device contexts or switching between them for a single
device context. The maximum number of palettes that an application can create
depends on the resources of the system.
An application creates a logical palette by using the CreatePalette function. The application fills a LOGPALETTE structure, which specifies the number of entries and the color values for
each entry, and then the application passes the structure to CreatePalette. The function returns a palette handle that the application uses in all
subsequent operations to identify the palette. To use colors in the logical palette,
the application selects the palette into a device context by using the SelectPalette function and then realizes the palette by using the RealizePalette function. The colors in the palette are available as soon as the logical
palette is realized.
An application should limit the size of its logical palettes to just enough
entries to represent the colors needed. Applications cannot create logical
palettes larger than the maximum palette size, a device-dependent value. Applications
can obtain the maximum size by using the GetDeviceCaps function to retrieve the SIZEPALETTE value.
Although an application can specify any color value for a given entry in a
logical palette, not all colors can be generated by the given device. Windows does
not provide a way to discover which colors are supported, but the application
can discover the total number of these colors by retrieving the color
resolution of the device. The color resolution, specified in color bits per pixel, is
equal to the COLORRES value returned by the GetDeviceCaps function. A device that has a color resolution of 18 has 262,144 possible
colors. If an application requests a color that is not supported, Windows chooses
an appropriate approximation.
Once a logical palette is created, an application can change colors in the
palette by using the SetPaletteEntries function. If the logical palette has been selected and realized, changing the
palette does not immediately affect the colors being displayed. The
application must use the UnrealizeObject and RealizePalette functions to update the colors. In some cases, the application may need to
deselect, unrealize, select, and realize the logical palette to ensure that the
colors are updated exactly as requested. If an application selects a logical
palette into more than one device context, changes to the logical palette affect
all device contexts for which it is selected.
An application can change the number of entries in a logical palette by using
the ResizePalette function. If the application reduces the size, the remaining entries are
unchanged. If the application extends the size, Windows sets the color for each new
entry to black (0, 0, 0) and the flag to zero.
An application can retrieve the color and flag values for entries in a given
logical palette by using the GetPaletteEntries function. An application can retrieve the index for the entry in a given
logical palette that most closely matches a specified color value by using the GetNearestPaletteIndex function.
When an application no longer needs a logical palette, it can delete it by
using the DeleteObject function. The application must make sure the logical palette is no longer
selected into a device context before deleting the palette.
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|