FIX: CIRC2 and CIRC3 Samples Don't Handle WM_SIZE Message (138032)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft OLE Control Developer's Kit (CDK)
This article was previously published under Q138032 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.
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);
}
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.
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.
Modification Type: | Minor | Last Reviewed: | 8/18/2005 |
---|
Keywords: | kbBug kbcode kbCtrl kbfix kbNoUpdate kbVC400fix KB138032 |
---|
|