dcsimg
October 23, 2018
Hot Topics:

Changing the Color of Edit and Combobox Controls in ATL

  • August 3, 2000
  • By Anita Rodriquez
  • Send Email »
  • More Articles »

Simply follow these steps in order to change the color of the Edit control or Combobox control in ATL.

  1. Add a handler for WM_CTLCOLOREDIT
    MESSAGE_HANDLER(WM_CTLCOLOREDIT, OnCtlColorEdit)
    
  2. Implementation of the handler, return the brush that you want to use to color the control

    LRESULT OnCtlColorEdit(UINT uMsg, 
                           WPARAM wParam, 
                           LPARAM lParam,
                           BOOL& bHandled)
    {
     HDC hdcEdit = (HDC) wParam;    // handle to display context 
     HWND hwndEdit = (HWND) lParam; // handle to static control 
    
     if (( hwndEdit == GetDlgItem(IDC_EDIT) 
     || ( hwndEdit == GetDlgItem(IDC_COMBO))
     {
      // m_hBrush is an instance variable that stores the
      // current Color brush. If this is the first time through
      // we need to create it. The brush is deleted in the destructor
      if ( m_hBrush == NULL )
       m_hBrush = CreateSolidBrush( RGB(255,0,0)
     )
     
      // Get the DC provided and set the appropriate attributes
     
      SetBkMode(hdcEdit, TRANSPARENT );
      SetBkColor(hdcEdit, RGB(255,0,0));
    
      // Return a handle to the brush
      HBRUSH far* hbr = (HBRUSH far*) m_hBrush;
      return ((DWORD) hbr);
     }
     return 0;
    }

History

Date Posted: August 3, 2000






Comment and Contribute

 


(Maximum characters: 1200). You have characters left.

 

 


Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

By submitting your information, you agree that developer.com may send you developer offers via email, phone and text message, as well as email offers about other products and services that developer believes may be of interest to you. developer will process your information in accordance with the Quinstreet Privacy Policy.

Sitemap

Thanks for your registration, follow us on our social networks to keep up-to-date