cambalinho 142 Practically a Posting Shark

from reading these site: http://www.catch22.net/tuts/flicker-free-drawing
i understand that i must avoid the pixel been changed more than once and a double-buffer:

//how avoid the pixel be changed more than once:
case WM_ERASEBKGND:
    return 1;

//for other controls, we must use another messsage(see the child control messages)

and heres how we do a double buffer:

HDC          hdcMem;
HBITMAP      hbmMem;
HANDLE       hOld;

PAINTSTRUCT  ps;
HDC          hdc;

hdc = BeginPaint(hwnd, &ps);
//if we use another message instead the WM_PAINT, we use the GetDC() function
//for get the HDC

    // Create an off-screen DC for double-buffering
    hdcMem = CreateCompatibleDC(hdc);//here we can use NULL too
    hbmMem = CreateBitmap(win_width, win_height,1,32,NULL);
    //that site use the CreateCompatibleBitmap() function, but use my line for get
    //the correct results ;)

    //select the new bitmap to hdcMem
    hOld   = SelectObject(hdcMem, hbmMem);
    //the hOld is for get the original bimap.. good for restore the old image

    // Draw into hdcMem here

    // Transfer the off-screen DC to the screen
    BitBlt(hdc, 0, 0, win_width, win_height, hdcMem, 0, 0, SRCCOPY);

    // Free-up the off-screen DC
    SelectObject(hdcMem, hOld);
    DeleteObject(hbmMem);
    DeleteDC    (hdcMem);

doing these the image never more flicker... and it's great because we draw it just once ;)
anotherthing: please create the DC and delete it ouside the WM_PAINT message for avoid flicker too.
the form show us the image correctly. but the child controls continue flickering :(
can anyone advice me more?
i know about the WS_CLIPCHILDREN style(it's only for the form), but the static control(when it's transparent) the text, when is changed, is showed 1 above another instead clean the old text and show the actual.
anyone correct me please.. how can i avoid the child control flickers?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.