Hi, Thanks for coming back to the project, nice to finally get to talk to you. I'm spearheading getting some flicker-free redraws working in Win32::GUI but whenever I try to double-buffer in a window resize, the flicker just remains. It looks as though the widgets are redrawn after the window, and so the widgets arent actually part of the window's DC on resize (?!).
I need to know where and how the widgets are drawn. I'm working with 0.0.665. Here's the process i've been using up to now: In NEM_WindowMsgLoop, I ignore any WM_ERASEBKGND messages. Then I create a memory DC that's compatible with the window's DC, and add a bitmap to the memory DC that's compatible with the bitmap in the window's DC. I fill the bitmap in the memory DC with the window's background colour, then BitBlt the window DC over onto the memory DC, then BitBlt the memory DC back into the window. I know that this might still leave streaking behind since the streaks will be part of the window bitmap, but I can fix that once I know that i'm getting the data I expect for the window contents. Currently I'm just getting *nothing* at all (flat blank bitmap is copied to memory DC). I even tried ripping off your code for SaveBMP but that produces nothing either. Idealy, from what I can gather, every widget should be drawn in a memory DC (all drawing, erasing backgrounds etc takes place here), the window should ignore WM_ERASEBKGND (I.e. return (LRESULT) 1 when it receives it to say we handled it), and the WM_PAINT message should simply cause a BitBlt from the memory DC into the window's DC. Flicker Gone For Good. This is my first try at some win32 programming in C / C++ (I'm used to console or unix stuff) so cut me some slack while I get used to it :) Thanks in advance, Steve