Click here to Skip to main content
15,896,338 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Christian Graus28-Feb-02 12:24
protectorChristian Graus28-Feb-02 12:24 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Jon Hulatt28-Feb-02 23:23
Jon Hulatt28-Feb-02 23:23 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Paul M Watt28-Feb-02 10:59
mentorPaul M Watt28-Feb-02 10:59 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
alex.barylski28-Feb-02 12:15
alex.barylski28-Feb-02 12:15 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Paul M Watt28-Feb-02 14:23
mentorPaul M Watt28-Feb-02 14:23 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
alex.barylski28-Feb-02 16:26
alex.barylski28-Feb-02 16:26 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Paul M Watt28-Feb-02 19:52
mentorPaul M Watt28-Feb-02 19:52 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Paul M Watt28-Feb-02 10:53
mentorPaul M Watt28-Feb-02 10:53 
OnErase, or WM_ERASEBKGND is generated inside of your call to ::BeginPaint. Of if you are using MFC inside of the creation of CPaintDC. All that OnErase is supposed to be used for is to clear the background that is currently invalid.

It is important to use the HDC that is handed in the WPARAM of the message, because the DC that you get is already primed with the clipping region of the invalid region that is being asked to be painted.

When you override the OnErase event, and return false, you are telling windows that you have not yet erased the background. Typically this means that the Erasing will have to be left up to the handler of the WM_PAINT message. Inside of the paint struct that is created in BeginPaint, the fErase field will be non-zero if the OnPaint handler should erase the background before painting.

The reason why the CMemDC class needs you to override the OnErase message is so that when the erase background handler is called, it does not erase the window that you are trying to prevent the flicker. Instead, the CMemDC erases the background on the double buffer, then blts the entire backbuffer to your window, elimiating the need for the default OnErase handler.
GeneralRe: OnEraseBkgnd VS OnPaint Pin
alex.barylski28-Feb-02 12:29
alex.barylski28-Feb-02 12:29 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Paul M Watt28-Feb-02 14:26
mentorPaul M Watt28-Feb-02 14:26 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
alex.barylski28-Feb-02 16:35
alex.barylski28-Feb-02 16:35 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
alex.barylski28-Feb-02 17:17
alex.barylski28-Feb-02 17:17 
GeneralRe: OnEraseBkgnd VS OnPaint Pin
Paul M Watt28-Feb-02 19:46
mentorPaul M Watt28-Feb-02 19:46 
GeneralSick and tired of VC++ IDE's $#!T Pin
Jason Hooper28-Feb-02 8:59
Jason Hooper28-Feb-02 8:59 
GeneralRe: Sick and tired of VC++ IDE's $#!T Pin
Carlos Antollini28-Feb-02 9:11
Carlos Antollini28-Feb-02 9:11 
GeneralFirst-chance exception error Pin
ed128-Feb-02 8:31
ed128-Feb-02 8:31 
GeneralRe: First-chance exception error Pin
Paul M Watt28-Feb-02 8:34
mentorPaul M Watt28-Feb-02 8:34 
GeneralRe: First-chance exception error Pin
Steen Krogsgaard28-Feb-02 9:44
Steen Krogsgaard28-Feb-02 9:44 
GeneralRestaurant Project Pin
28-Feb-02 8:21
suss28-Feb-02 8:21 
GeneralRe: Restaurant Project Pin
Carlos Antollini28-Feb-02 8:30
Carlos Antollini28-Feb-02 8:30 
GeneralRe: Restaurant Project Pin
Nemanja Trifunovic28-Feb-02 8:41
Nemanja Trifunovic28-Feb-02 8:41 
GeneralRe: Restaurant Project Pin
Christian Graus28-Feb-02 9:06
protectorChristian Graus28-Feb-02 9:06 
GeneralLoad gif, jpeg or tif image in VC++ Pin
28-Feb-02 7:29
suss28-Feb-02 7:29 
GeneralRe: Load gif, jpeg or tif image in VC++ Pin
Chris Losinger28-Feb-02 8:04
professionalChris Losinger28-Feb-02 8:04 
GeneralRe: Load gif, jpeg or tif image in VC++ Pin
Christian Graus28-Feb-02 9:25
protectorChristian Graus28-Feb-02 9:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.