Chaining Control and Panel Callback Functions
To avoid a fatal error in your application, do not change the callback data and the callback function using the InstallCtrlCallback or InstallPanelCallback function or the ATTR_CALLBACK_DATA and ATTR_CALLBACK_FUNCTION_POINTER attributes once a control or panel's callback is chained. Instead, call the SetChainedCallbackData, GetChainedCallbackData, SetChainedPanelCallbackData, or GetChainedPanelCallbackData functions to get or set callback data.
![]() |
Note If the callback of a panel is chained, but the control callback is not, you can modify the control callback using the InstallCtrlCallback function or the ATTR_CALLBACK_DATA and ATTR_CALLBACK_FUNCTION_POINTER attributes. Similarly, you can modify the unchained panel callback even if the control callback is chained. |
The following Programmer's Toolbox functions chain panel or control callbacks when they are called.
Functions That Chain Panel Callbacks
- SetCtrlTooltipAttribute with the CTRL_TOOLTIP_ATTR_TEXT attribute
- InstallWinMsgCallback
Functions That Chain Control Callbacks
- SetCtrlTooltipAttribute with the CTRL_TOOLTIP_ATTR_TEXT attribute
- EnableExtendedMouseEvents
Note The EnableExtendedMouseEvents function is obsolete. Use the EVENT_MOUSE_POINTER_MOVE, EVENT_LEFT_CLICK_UP, and EVENT_RIGHT_CLICK_UP events instead. - RecessCtrlFrame