Article ID: 154166 - Last Review: December 1, 2003 - Revision: 2.0

PRB: ActiveX Control Painting Problems in Visual C++ 4.2

This article was previously published under Q154166

On This Page

Expand all | Collapse all

SYMPTOMS

The ActiveX (OLE) Control may not paint correctly if it was built using Visual C++ 4.2. Two known issues include controls not repainting when resized, and control child windows not being repainted. Other painting problems have been observed when subclassing native Windows controls.

CAUSE

This behavior is caused by changes to COleControl::OnPaint which add optimizations to improve performance.

RESOLUTION

COleControl now includes a method, GetControlFlags, to control how painting will be handled in an ActiveX control. Removing the fastBeginPaint flag from the bit field returned by GetControlFlags will cause your ActiveX control to use the same OnPaint code found in Visual C++ 4.1

STATUS

This behavior is by design.

MORE INFORMATION

Sample Code

DWORD CMyOleControl::GetControlFlags ()
{
   return COleControl::GetControlFlags() & ~fastBeginPaint;
}
				

REFERENCES

For an explanation of the GetControlFlags return values, see the documentation in Books on Line.

APPLIES TO
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Keywords: 
kbnoupdate kbprb KB154166
Retired KB ArticleRetired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
 

Article Translations