BUG: CHtmlView Does Not Repaint Correctly in an AppWizard-Generated MDI Application

ID: Q220021


The information in this article applies to:
  • Microsoft Visual C++, 32-bit Editions, version 6.0
    on the following platforms: NT, Win95, Win98
  • The Microsoft Foundation Classes (MFC)
  • Windows 2000


SYMPTOMS

In an AppWizard-generated MDI application with more than two view windows overlapping each other, if the user clicks in the client area of the MDI frame window other than the view, such that the view loses the focus, and then clicks back in the client area of the view, the CHtmlView does not repaint correctly. However, if the user clicks the nonclient area of the view, the CHtmlView repaints correctly.


CAUSE

The WS_CLIPCHILDREN style is not set for CHtmlView, and therefore, on activating the view by clicking the view area, CHtmlView does not send a message to the embedded Web Browser control to repaint itself.


RESOLUTION

To work around this problem, in PreCreateWindow of CHtmlView, add the WS_CLIPCHILDREN style. Following is a code example:

BOOL CSampleView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style |= WS_CLIPCHILDREN;

	return CHtmlView::PreCreateWindow(cs);
}  


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.


MORE INFORMATION

Steps to Reproduce Behavior

  1. Create an MDI application using the AppWizard.


  2. In step 6/6 of AppWizard, choose View class as CHtmlView.


  3. Build and run it.


  4. On the File menu, click New, and launch a new ChildFrame so that you have more than two frames, one overlapping the other.


  5. Click in the client area of the MDI frame window other than the CHtmlView, such that the view in consideration loses focus.


  6. Try to set focus by clicking in the client area of CHtmlView in consideration.



RESULTS: Notice that the view has not completely repainted. Portions of the view window, overlapped by the other view window, are not painted.


REFERENCES

(c) Microsoft Corporation 1999, All Rights Reserved. Contributions by Vidyanand N. Rajpathak, Microsoft Corporation.

Additional query words: CHtmlView Repaint WS_CLIPCHILDREN

Keywords : kbMFC kbWinOS2000 kbVC600 kbVC600bug
Version : winnt:6.0; :
Platform : winnt
Issue type : kbbug


Last Reviewed: January 17, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.