CNewLabel : Advanced CStatic-Derived Class

This class (CNewLabel) is derived from CStatic and performs a lot of things that the CStatic class can not do:

  • Text colour
  • Background colour
  • Text background colour
  • Fonts
  • Multi line support with text justification
  • Link text (with or without cursor)
  • Text highlighting when mouse moves over static control
  • Centred background image (stretched or not with or without text)
  • Text rotation (00 - 900 - 1800 - 2700) (separated CTextRotator class)
  • Bevel lines support
  • Text flashing
  • Background flashing
  • Control tool tips (separated CControlToolTip class)

CNewLabel API

// Colour functions
//Set the background colour of the control.
CNewLabel& SetBkColor(COLORREF clr)          

//Set the text colour of the control.
CNewLabel& SetTextColor(COLORREF clr)        

//Set the background colour of the text background.
CNewLabel& SetTextBackColor(COLORREF clr)    

//Set the highlighting colour.
CNewLabel& SetHighLightColor(COLORREF clr)   

//Set the control to use the default background
//colour (COLOR_3DFACE).
CNewLabel& SetDefaultBkColor()               

//Set the control to use the default text
//colour (COLOR_WINDOWTEXT).
CNewLabel& SetDefaultTextColor()             

//Set the control to use the default text
//background colour (COLOR_3DFACE).
CNewLabel& SetDefaultTextBackColor()         

//Font functions

//Toggles the state of the bold attribute of the text in
//the control.
CNewLabel& SetFontBold(BOOL bSet)            

//Toggles the state of the italic font attribute of
//the control.
CNewLabel& SetFontItalic(BOOL bSet)          

//Toggles the state of the underline font attribute of
//the control.
CNewLabel& SetFontUnderline(BOOL bSet)       

//Sets the fonts face name.
CNewLabel& SetFontName(LPCTSTR lpszFaceName) 

//Sets the fonts size in points.
CNewLabel& SetFontSize(int iSize)            

// Other functions
//Toggles the state of the background flashing attribute.

CNewLabel& FlashBackground(BOOL bActivate,
                           UINT uiTime)      

//Toggles the state of the text flashing attribute.
CNewLabel& FlashText(BOOL bActivate,
                     UINT uiTime)            

//Set the text justification (see under for defines).
CNewLabel& SetAlignment(UINT uiAlign)        

//Set the text rotation angle (0, 90 , 180 or 270).
CNewLabel& SetAngle(UINT uiAngle)            

//Set (or remove) the background image.
CNewLabel& SetBackImage(UINT nID)            

//Toggles the state of the borders attribute.
CNewLabel& SetBorder(BOOL bSet)              

//Set the control cursor.
CNewLabel& SetCursor(HCURSOR hCursor)        

//Set the control cursor.
CNewLabel& SetCursor(UINT uiCursorID)        

//Toggles the state of the disabled attribute.
CNewLabel& SetDisabled(BOOL bSet)            

//Toggles the state of the link attribute.
CNewLabel& SetLink(BOOL bSet) 

//Sets the cursor for the link.
CNewLabel& SetLinkCursor(HCURSOR hCursor) 

//Sets the cursor for the link.
CNewLabel& SetLinkCursor(UINT uiCursorID) 

//Toggles the state of the lower case attribute.
CNewLabel& SetLowerCase(BOOL bSet) 

//Set the text of the control.
CNewLabel& SetText(LPCTSTR lpszText) 

//Set the tool tip position
//(0 = Over, 1 = Under, 2 = Above).
CNewLabel& SetToolTipPosition(int iPos) 

//Set the tool tip text.
CNewLabel& SetToolTipText(LPCTSTR lpszText) 

//Toggles the state of the sunken attribue of
//the control.
CNewLabel& SetSunken(BOOL bSet) 

//Toggles the state of the upper case attribute.
CNewLabel& SetUpperCase(BOOL bSet) 

//Toggles the state of the vertical text attribute.
CNewLabel& SetVerticalText(BOOL bSet) 

//Toggles the state how the tool tip must appear.
CNewLabel& ShowToolTipOnlyOnMouseClick(BOOL b) 

//Stretch or not the centred bitmap.
CNewLabel& StretchBitmap(BOOL bStrecth) 

//Display or not the bevel line.
CNewLabel& UseBevelLine(BOOL bUse) 

//Toggles the state of the highlighting mode.
CNewLabel& UseHighLighting(BOOL bUse) 

//Use tool tip or not.
CNewLabel& UseToolTip(BOOL bUse) 

//Use highlighting only with a filled tool tip.
CNewLabel& UseHighLightingOnlyWithMouseToolTip(BOOL b) 

//Use left mouse button for tool tip.
CNewLabel& UseLeftMouseButtonForToolTip(BOOL bUse) 
For GET functions, see source code!

Text justification defines:

  • HORZ_LEFT - For left justification
  • HORZ_CENTER - For horizontal center
  • HORZ_RIGHT - For right justification
  • VERT_TOP - For top justification
  • VERT_CENTER - For vertical center
  • VERT_BOTTOM - For bottom justification

Example of CNewLabel

  m_NL_TextColor.SetTextColor(RGB(255,0,0));

  m_NL_BackgndColor.SetBkColor(RGB(255,255,0));
  m_NL_BackTextColor.SetTextBackColor(RGB(0,255,0));
  m_NL_BackTextColor.SetBkColor(RGB(255,255,0));

  m_NL_Angle0.SetAngle(0);
  m_NL_Angle90.SetAngle(90);
  m_NL_Angle180.SetAngle(180);
  m_NL_Angle270.SetAngle(270);

  m_NL_FontText.SetText("Font Text\n+Border");
  m_NL_FontText.SetFontBold(TRUE);
  m_NL_FontText.SetFontName("Times New Roman");
  m_NL_FontText.SetFontSize(20);
  m_NL_FontText.SetBorder(TRUE);

  m_NL_MultiLineText.SetText("Multi Line Text\n"
                             "Right Aligned\nBottom "
                             "Aligned\nSunken effect");
  m_NL_MultiLineText.SetAlignment(CNewLabel::HORZ_RIGHT 
                                  | CNewLabel::VERT_BOTTOM);
  m_NL_MultiLineText.SetSunken(TRUE);

  m_NL_FlashingText.FlashText(TRUE);
  m_NL_FlashBack.FlashBackground(TRUE, 600);

  m_NL_DisabledText.SetDisabled(TRUE);


  m_NL_LinkText.SetLink(TRUE);
  m_NL_LinkText.SetLinkCursor(IDC_HAND);
  m_NL_LinkText.SetTextColor(RGB(0,0,255));

  m_NL_HighLightingText.UseHighLighting(TRUE);
  m_NL_HighLightingText.SetHighLightColor(RGB(255,0,255));

  m_NL_TextWithToolTip1.UseToolTip(TRUE);
  m_NL_TextWithToolTip1.SetToolTipText("Tooltip text "
                                       "over control");

  m_NL_TextWithToolTip1.ShowToolTipOnlyOnMouseClick(FALSE);

  m_NL_TextWithToolTip2.UseToolTip(TRUE);
  m_NL_TextWithToolTip2.SetToolTipText("Tooltip text under control "
                                       "+ highlighting");
  m_NL_TextWithToolTip2.SetToolTipPosition(1);
  m_NL_TextWithToolTip2.UseHighLighting(TRUE);
  m_NL_TextWithToolTip2.SetHighLightColor(RGB(255,0,255));

  m_NL_TextWithToolTip3.UseToolTip(TRUE);
  
  m_NL_TextWithToolTip3.SetToolTipText("Tooltip text above"
   " control + highlighting");

  m_NL_TextWithToolTip3.SetToolTipPosition(2);
  m_NL_TextWithToolTip3.UseLeftMouseButtonForToolTip(FALSE);
  m_NL_TextWithToolTip3.UseHighLighting(TRUE);
  m_NL_TextWithToolTip3.SetHighLightColor(RGB(255,0,255));

  m_NL_bevelTextRight.UseBevelLine(TRUE);

  m_NL_bevelTextCenter.UseBevelLine(TRUE);

  m_NL_bevelTextLeft.UseBevelLine(TRUE);

  m_NL_BevelTextTop.UseBevelLine(TRUE);
  m_NL_BevelTextTop.SetAngle(90);

  m_NL_BevelTextVCenter.UseBevelLine(TRUE);
  m_NL_BevelTextVCenter.SetAngle(90);

  m_NL_BevelTextBottom.UseBevelLine(TRUE);
  m_NL_BevelTextBottom.SetAngle(90);
  m_NL_BevelTextBottom.SetAlignment(CNewLabel::HORZ_LEFT 
                                    | CNewLabel::VERT_BOTTOM);

  m_NL_VerticalText.SetVerticalText(TRUE);
  m_NL_VerticalText.SetUpperCase(TRUE);

  m_NL_BitmapWithoutText.SetBackImage(IDB_MIKE);
  m_NL_BitmapWithoutText.StretchBitmap(TRUE);

  m_NL_BitmapWithText.SetBackImage(IDB_MIKE);
  m_NL_BitmapWithText.SetTextColor(RGB(255,255,0));
  m_NL_BitmapWithText.SetAlignment(CNewLabel::HORZ_CENTER 
                                   | CNewLabel::VERT_BOTTOM);
  m_NL_BitmapWithText.StretchBitmap(TRUE);

Downloads

Download demo project - 74 Kb
Download demo application (debug build) - 50 Kb


Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • The latest release of SugarCRM's flagship product gives users new tools to build extraordinary customer relationships. Read an in-depth analysis of SugarCRM's enhanced ability to help companies execute their customer-facing initiatives from Ovum, a leading technology research firm.

  • When it comes to desktops – physical or virtual – it's all about the applications. Cloud-hosted virtual desktops are growing fast because you get local data center-class security and 24x7 access with the complete personalization and flexibility of your own desktop. Organizations make five common mistakes when it comes to planning and implementing their application management strategy. This eBook tells you what they are and how to avoid them, and offers real-life case studies on customers who didn't …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds