With a couple of lines of code, you can give your end-users the ability to resize any control. Suppose you wanted to give the user the ability to modify the size and position on a certain control? This example shows how to implement resizing controls on a dialog box as it is done when drawing controls on a dialog template or visual basic at design time. In order to accomplish this we can use the class CRectTracker to manage all the drawing and resizing of a rectangular frame which also has (optional) 6 resize handlers (as shown in the image above). The first thing, you'll need to do is to invoke a CRectTracker and specify given coordinates: LPRECT rect = new RECT; CWnd* wnd = (CWnd*)(GetDlgItem(IDC_EDIT1)); wnd->GetWindowRect(rect) ; ScreenToClient(rect) ; m_tracker = new CRectTracker(rect, CRectTracker::dottedLine | CRectTracker::resizeOutside | CRectTracker::hatchedBorder); m_tracker->Draw(pDC) ; There are only two events that are needed to be handled: SetCursor if (pWnd == this && m_tracker->SetCursor(this, nHitTest)) return TRUE; This is done in order to draw the correct mouse cursors when floating the mouse pointer over the rectangle. LButtonDown m_tracker->Track(this, point, TRUE); Invalidate(FALSE); CDC* pDC = GetDC(); m_tracker->Draw(pDC); This will take care of the drawing of the rectangle with resizing it. Once you finished all you have to do is draw the control with the new rectangle coordinates: LPRECT rect = new RECT; CWnd* wnd = (CWnd*)(GetDlgItem(IDC_EDIT1)); rect = LPRECT(m_tracker->m_rect); wnd->MoveWindow(rect,TRUE) ;