Help and Support

FIX: CIRC2 and CIRC3 Samples Don't Handle WM_SIZE Message

Article ID:138032
Last Review:November 21, 2006
Revision:2.2
This article was previously published under Q138032
On This Page

SYMPTOMS

Trying to decrease the size of the Circle control after changing the CircleOffset property may cause the circle to get drawn outside the control's rectangle. Handle the WM_SIZE message and reset the offset. This should only take place if the CircleShape property is set to TRUE and if the circle's position is outside the control's new size.

Back to the top

Sample Code to Implement Workaround

void CCirc2Ctrl::OnSize(UINT nType, int cx, int cy)
{
    COleControl::OnSize(nType, cx, cy);

    // If circle shape is true and circle does not fit in new size, reset
    // the offset

    if(m_circleShape && !InBounds(GetCircleOffset()))
       SetCircleOffset(0);
}
				

Back to the top

CAUSE

The circle control does not respond to the WM_SIZE message and therefore does not adjust its CircleOffset property to compensate for the change in control size.

Back to the top

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was corrected in the version of the Microsoft Foundation Classes (MFC) that ships with Visual C++, 32- bit Edition, version 4.0.

Back to the top

MORE INFORMATION

Steps to Reproduce Problem

1.Build either the Circ2 or Circ3 sample.
2.On the Tools menu, click Register Control, and verify that the control registers successfully.
3.On the Tools menu, click Test Container.
4.On the Edit menu, click Insert OLE Control, and then click the control that was built in step 1.
5.Resize the control to a rather long rectangle.
6.On the View menu, click Properties, and change the CircleOffset property to 100 pixels to decentralize the circle.
7.Resize the control to force the circle outside the rectangle.
8.Notice that the circle is drawn outside the rectangle.

Back to the top


APPLIES TO
Microsoft Foundation Class Library 4.2, when used with:
  Microsoft OLE Control Developer's Kit (CDK)

Back to the top

Keywords: 
kbbug kbcode kbctrl kbfix kbnoupdate kbvc400fix KB138032

Back to the top

Article Translations

 

Other Support Options

  • Contact Microsoft
    Phone Numbers, Support Options and Pricing, Online Help, and more.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.