In the previous section Part 3: Examining Control Code, we have seen the code
            block that performs drawing on control: 
            void
            CCircle::DrawControl(CDC* pDC, CRect rect) 
            { 
                pDC->FillSolidRect(rect, RGB(192, 192, 192)); 
                pDC->Ellipse(rect); 
                pDC->DrawText(_T("C++ Rules!!"), rect, DT_CENTER |
            DT_VCENTER | DT_SINGLELINE); 
            } 
            The "DrawControl" function takes two
            parameters. the first one is a CDC pointer. If you are not familiar with CDC, it's a MFC
            class that encapsulates a Windows device context and thus can be used to perform a lot of
            drawing functions. You can find more on the CDC class on the web in the following link: 
            http://msdn.microsoft.com/library/devprods/vs6/visualc/vcmfc/_mfc_cdc.htm 
            The send parameter is a CRect class that
            carries the bounding coordinates of the control. 
            Inside the ::DrawControl function, you will
            find 3 CDC function calls:  
            "FillSolidRect" fills the
            background of the circle by gray color [RGB(192, 192, 912)], 
            "Ellipse" draws an ellipse inside
            the control  
            and "DrawText" prints some text
            ["C++ Rules"] at the center of the control. 
            You can modify these function calls to
            perform a different kind of drawing. For example, if you want to paint your control's
            background with red color, then you should change the "FillSolidRect" function
            call like the following: 
               
            pDC->FillSolidRect(rect, RGB(255, 0, 0)); 
            Additionally, if you want to draw a
            rectangle instead of a ellipse / circle, then you need to replace  
              
            pDC->Ellipse(rect); 
            with 
              
            pDC->Rectangle(rect); 
            In summary, you can use any
            member function of the MFC's "CDC"" class to modify drawing behavior of the
            "Circle" control. 
            In addition to CDC's class
            member functions, you can use RFC's drawing utility functions. For example you can display
            a bitmap on your  control by calling the following function: 
            CRTools::DisplayBitmap(pDC,
            CPoint(rect.left, rect.top), "c:\\mypicture.bmp"); 
              Where
            "c:\\mypicture.bmp" is a bitmap file path. 
            Next >> Part
            5: Adding a Property to the New Control 
            Related Links: 
            
             |