![]() |
Platforms, Frameworks & Libraries »
Mobile Development »
Controls
Intermediate
CCeButtonST v1.2By Davide CalabroThe reference control for MFC flat buttons with text and icons. Give your CE applications a professional look! |
C++, eVC 3.0, Win Mobile, Mobile, Visual Studio, MFC, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
SoftechSoftware homepage
SoftechSoftware Email
CCeButtonST is a class derived from MFC CButton class.
With this class your CE applications can have standard buttons or new and modern buttons with "flat" style!
Main CCeButtonST features are:
CButton properties
DDX_ calls
In your project include the following files:
With dialog editor create a standard button called, for example, IDOK (you don't need to make it owner drawn) and create a member variable for this button:
CCeButtonST m_btnOk;Now attach the button to
CCeButtonST. For dialog-based applications, in your
OnInitDialog:
// Call the base-class method CDialog::OnInitDialog(); // Create the IDOK button m_btnOk.SubclassDlgItem(IDOK, this);Or in your
DoDataExchange:
// Call the base method CDialog::DoDataExchange(pDX); // Create the IDOK button DDX_Control(pDX, IDOK, m_btnOk);
In your application, create a member variable for the button. Please note that this variable is a pointer:
CCeButtonST* m_pbtnOk;Now create the button. For dialog-based applications, in your
OnInitDialog:
// Call the base-class method CDialog::OnInitDialog(); // Create the IDOK button m_pbtnOk = new CCeButtonST; m_pbtnOk->Create(_T("&Ok"), WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, CRect(10, 10, 200, 100), this, IDOK); // Set the same font of the application m_pbtnOk->SetFont(GetFont());Remember to destroy the button or you will get a memory leak. This can be done, for example, in your class destructor:
if (m_pbtnOk) delete m_pbtnOk;
SetIcon (using resources)
Assigns icons to the button.
Any previous icon will be removed.
// Parameters: // [IN] nIconIn // ID number of the icon resource to show when the mouse is over the button. // Pass NULL to remove any icon from the button. // [IN] sizeIn // Size of the icon. // [IN] nIconOut // ID number of the icon resource to show when the mouse is outside the button. // Can be NULL. // [IN] sizeOut // Size of the icon. // [IN] nIconDis // ID number of the icon resource to show when the button is disabled. // Can be NULL. // [IN] sizeDis // Size of the icon. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetIcon(int nIconIn, CSize sizeIn = CSize(32,32), int nIconOut = NULL, CSize sizeOut = CSize(32,32), int nIconDis = NULL, CSize sizeDis = CSize(32,32))SetIcon (using handles)
// Parameters: // [IN] hIconIn // Handle fo the icon to show when the mouse is over the button. // Pass NULL to remove any icon from the button. // [IN] sizeIn // Size of the icon. // [IN] hIconOut // Handle to the icon to show when the mouse is outside the button. // Can be NULL. // [IN] sizeOut // Size of the icon. // [IN] hIconDis // ID number of the icon resource to show when the button is disabled. // Can be NULL. // [IN] sizeDis // Size of the icon. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetIcon(HICON hIconIn, CSize sizeIn = CSize(32,32), HICON hIconOut = NULL, CSize sizeOut = CSize(32,32), HICON hIconDis = NULL, CSize sizeDis = CSize(32,32))SetFlat
// Parameters: // [IN] bFlat // If TRUE the button will have a flat style, else // will have a standard style. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE)SetAlign
// Parameters: // [IN] byAlign // Alignment type. Can be one of the following values: // ST_ALIGN_HORIZ Icon on the left, text on the right // ST_ALIGN_VERT Icon on the top, text on the bottom // ST_ALIGN_HORIZ_RIGHT Icon on the right, text on the left // By default, CCeButtonST buttons have ST_ALIGN_HORIZ alignment. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // BTNST_INVALIDALIGN // Alignment type not supported. // DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE)SetCheck
// Parameters: // [IN] nCheck // 1 to check the checkbox. // 0 to un-check the checkbox. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetCheck(int nCheck, BOOL bRepaint = TRUE)GetCheck
// Return value: // The current state of the checkbox. // 1 if checked. // 0 if not checked or the button is not a checkbox. // int GetCheck()SetDefaultColors
// Parameters: // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetDefaultColors(BOOL bRepaint = TRUE)SetColor
// Parameters: // [IN] byColorIndex // Index of the color to set. Can be one of the following values: // BTNST_COLOR_BK_IN Background color when mouse is over the button // BTNST_COLOR_FG_IN Text color when mouse is over the button // BTNST_COLOR_BK_OUT Background color when mouse is outside the button // BTNST_COLOR_FG_OUT Text color when mouse is outside the button // BTNST_COLOR_BK_FOCUS Background color when the button is focused // BTNST_COLOR_FG_FOCUS Text color when the button is focused // [IN] crColor // New color. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // BTNST_INVALIDINDEX // Invalid color index. // DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)GetColor
// Parameters: // [IN] byColorIndex // Index of the color to get. Can be one of the following values: // BTNST_COLOR_BK_IN Background color when mouse is over the button // BTNST_COLOR_FG_IN Text color when mouse is over the button // BTNST_COLOR_BK_OUT Background color when mouse is outside the button // BTNST_COLOR_FG_OUT Text color when mouse is outside the button // BTNST_COLOR_BK_FOCUS Background color when the button is focused // BTNST_COLOR_FG_FOCUS Text color when the button is focused // [OUT] crpColor // A pointer to a COLORREF that will receive the color. // // Return value: // BTNST_OK // Function executed successfully. // BTNST_INVALIDINDEX // Invalid color index. // DWORD GetColor(BYTE byColorIndex, COLORREF* crpColor)SetAlwaysTrack
// Parameters: // [IN] bAlwaysTrack // If TRUE the button will be hilighted even if the window that owns it, is // not the active window. // If FALSE the button will be hilighted only if the window that owns it, // is the active window. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetAlwaysTrack(BOOL bAlwaysTrack = TRUE)SetBtnCursor
// Parameters: // [IN] nCursorId // ID number of the cursor resource. // Pass NULL to remove a previously loaded cursor. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // BTNST_INVALIDRESOURCE // Failed loading the specified resource. // DWORD SetBtnCursor(int nCursorId = NULL, BOOL bRepaint = TRUE)DrawBorder
// Parameters: // [IN] bDrawBorder // If TRUE the border will be drawn. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // DWORD DrawBorder(BOOL bDrawBorder = TRUE, BOOL bRepaint = TRUE)DrawFlatFocus
// Parameters: // [IN] bDrawFlatFocus // If TRUE the focus rectangle will be drawn also for flat buttons. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // DWORD DrawFlatFocus(BOOL bDrawFlatFocus, BOOL bRepaint = TRUE)GetDefault
// Return value: // TRUE // The button is the default button. // FALSE // The button is not the default button. // BOOL GetDefault()SetURL
// Parameters: // [IN] lpszURL // Pointer to a null-terminated string that contains the URL. // Pass NULL to removed any previously specified URL. // // Return value: // BTNST_OK // Function executed successfully. // DWORD SetURL(LPCTSTR lpszURL = NULL)SetMenu
// Parameters: // [IN] nMenu // ID number of the menu resource. // Pass NULL to remove any menu from the button. // [IN] hParentWnd // Handle to the window that owns the menu. // This window receives all messages from the menu. // [IN] bRepaint // If TRUE the control will be repainted. // // Return value: // BTNST_OK // Function executed successfully. // BTNST_INVALIDRESOURCE // Failed loading the specified resource. // DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bRepaint = TRUE)OnDrawBackground
// Parameters: // [IN] pDC // Pointer to a CDC object that indicates the device context. // [IN] pRect // Pointer to a CRect object that indicates the bounds of the // area to be painted. // // Return value: // BTNST_OK // Function executed successfully. // virtual DWORD OnDrawBackground(CDC* pDC, LPCRECT pRect)OnDrawBorder
// Parameters: // [IN] pDC // Pointer to a CDC object that indicates the device context. // [IN] pRect // Pointer to a CRect object that indicates the bounds of the // area to be painted. // // Return value: // BTNST_OK // Function executed successfully. // virtual DWORD OnDrawBorder(CDC* pDC, LPCRECT pRect)GetVersionI
// Return value: // Class version. Divide by 10 to get actual version. // static short GetVersionI()GetVersionC
// Return value: // Pointer to a null-terminated string containig the class version. // static LPCTSTR GetVersionC()
OnLButtonDownDestroyCursor" problem
The demo application shows nearly all the features of the CCeButtonST class.
It includes project settings for all the emulators included in Visual C++ eMbedded Tools v3.0 plus
settings to compile and run on the Advantech PCM-4823 single board computer.
CCeButtonST architecture makes possible to produce a whole range
of buttons not available by default.
If someone implements new button styles I will be happy to include his code in
the next CCeButtonST demo application.
THE SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS" AND WITHOUT ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO REPONSIBILITIES FOR POSSIBLE DAMAGES OR EVEN FUNCTIONALITY CAN BE TAKEN. THE USER MUST ASSUME THE ENTIRE RISK OF USING THIS SOFTWARE.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 18 Dec 2001 Editor: Chris Maunder |
Copyright 2001 by Davide Calabro Everything else Copyright © CodeProject, 1999-2009 Web20 | Advertise on the Code Project |