Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Collapse the table of content
Expand the table of content


The framework calls this member function for all top-level windows after the window with input focus has realized its logical palette, thereby changing the system palette.

afx_msg void OnPaletteChanged(
   CWnd* pFocusWnd 



Specifies a pointer to the window that caused the system palette to change. The pointer may be temporary and should not be stored.

This call allows a window without the input focus that uses a color palette to realize its logical palettes and update its client area.

The OnPaletteChanged member function is called for all top-level and overlapped windows, including the one that changed the system palette and caused the WM_PALETTECHANGED message to be sent. If any child window uses a color palette, this message must be passed on to it.

To avoid an infinite loop, the window shouldn't realize its palette unless it determines that pFocusWnd does not contain a pointer to itself.


This member function is called by the framework to allow your application to handle a Windows message. The parameters passed to your function reflect the parameters received by the framework when the message was received. If you call the base-class implementation of this function, that implementation will use the parameters originally passed with the message and not the parameters you supply to the function.

Community Additions

© 2015 Microsoft