SECWellButton Class

class SECWellButton: public SECOwnerDrawButton

The SECWellButton class implements a button which can be used for selecting colors. The face of the button displays the color currently selected. When the user clicks the SECWellButton, a popup color palette is displayed (SECPopupColorWell), which can be used to select the required color.

Defined in: SECBTNS.h

Comments

You can specify whether the SECPopupColorWell allows selection of colors other than the 20 system colors with the SetOtherButton function. This will cause the SECPopupColorWell to display a button labeled 'Other', which when clicked will cause a common color selection dialog to be displayed.

You can specify whether you want the SECWellButton to support palettes with the SetPaletteRealization function. This will cause any colors selected to be placed into a palette and the palette realized before drawing.

The SECWellButton will send a CWN_COLOR_CHANGE message to its parent when the selected color is changed.

the DDX_Color function can be used for data exchange in dialogs.

See the COLOR sample in the \\OT\\SAMPLES\\STANDARD\\CONTROLS\\COLRWELL directory for a demonstration of this class.

Example

You can attach SECWellButton objects to existing push buttons with

m_wellButton.AttachButton(IDC_BUTTON1, this);
You can dynamically create an SECWellButton button control with

m_wellButton.Create(NULL, WS_VISIBLE|WS_TABSTOP|
		    WS_CHILD, rect, this, IDC_BUTTON1);

Class Members

Creation/Initialization

FOUNDATION_API SECWellButton()

Creates a SECWellButton object.

Attributes

FOUNDATION_API void SetColor(COLORREF cl)

Set the currently selected color.

FOUNDATION_API COLORREF GetColor() const

Get the currently selected color.

FOUNDATION_API void SetOtherButton( BOOL bOther )

Set whether the popup has an other button or not.

FOUNDATION_API BOOL GetOtherButton() const

Returns whether the popup has an other button or not.

FOUNDATION_API void SetPaletteRealization(BOOL bRealizePalette)

Set the current palette realizaion mode.

FOUNDATION_API BOOL GetPaletteRealization() const

Get the current realization mode.

FOUNDATION_API virtual void SetColorDialogFlags(DWORD v)

Sets the flags for customizing the CColorDialog that is display in response to a click on the Other button. Default = CC_RGBINIT|CC_FULLOPEN.

FOUNDATION_API virtual DWORD GetColorDialogFlags() const

Returns the flags for the color common dialog. Default = CC_RGBINIT|CC_FULLOPEN.

FOUNDATION_API virtual void SetCustomColors(COLORREF* pColors)

Sets the array of 16 colors for the custom color boxes in CColorDialog

FOUNDATION_API COLORREF* GetCustomColors() const

Retrieves the array of 16 colors for the custom color boxes in CColorDialog. Default=NULL

FOUNDATION_API void SetPopup(SECPopupColorWell* pPopup)

Sets the Popup to something other than the default.

FOUNDATION_API SECPopupColorWell* GetPopup()

Returns a pointer to the current Popup.

Overridable

FOUNDATION_API virtual void CreatePalette()

Creates and initialises the palette.

FOUNDATION_API virtual void CreatePopup()

Creates the popup color well.

FOUNDATION_API virtual void OnBnClicked()

Called when button is clicked (to create the popup).

FOUNDATION_API afx_msg LRESULT OnColorChange(WPARAM wParam, LPARAM lParam)

Called when a color has been selected.

FOUNDATION_API afx_msg LRESULT OnCustomColor(WPARAM wParam, LPARAM lParam)

Called when the "Other" button has been clicked.

FOUNDATION_API virtual void PreDrawButton(CDC* pScreenDC, CDC* pMemDC)

Called prior to drawing the button.

FOUNDATION_API virtual void PostDrawButton(CDC* pScreenDC, CDC* pMemDC)

Called after drawing the button.

FOUNDATION_API virtual void DrawFocus(CDC* pDC, CRect& rect)

Draws the focus rectangle.

FOUNDATION_API virtual void DrawSpecific(CDC* pDC, LPDRAWITEMSTRUCT lpDS, CRect& rect)

Draws the button face.

Protected data members

SECPopupColorWell* m_pPopup

The popup color well.

CPalette m_palette

Palette used for holding current color.

CPalette* m_pOldPal

Pallete used during drawing.

CPalette* m_pMemOldPal

Pallete used during drawing.

BOOL m_bRealizePalette

TRUE if object should realize our palette before drawing.

BOOL m_bHasOther

TRUE if popup has other button.

DWORD m_dwColorDialogFlags

Flags for customizing the CColorDialog displayed in response to clicking the Other button

COLORREF* m_pCustomColors

Pointer to an array of 16 colors for the custom color boxes in CColorDialog