Changing the Color of Edit and Combobox Controls in ATL

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 u 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;
    }
    


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

  • Live Event Date: August 20, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT When you look at natural user interfaces as a developer, it isn't just fun and games. There are some very serious, real-world usage models of how things can help make the world a better place – things like Intel® RealSense™ technology. Check out this upcoming eSeminar and join the panel of experts, both from inside and outside of Intel, as they discuss how natural user interfaces will likely be getting adopted in a wide variety …

  • Savvy enterprises are discovering that the cloud holds the power to transform IT processes and support business objectives. IT departments can use the cloud to redefine the continuum of development and operations—a process that is becoming known as DevOps. Download the Executive Brief DevOps: Why IT Operations Managers Should Care About the Cloud—prepared by Frost & Sullivan and sponsored by IBM—to learn how IBM SmartCloud Application services provide a robust platform that streamlines …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds