Strange error with CreateCompatibleDC

Posted by sevaxx on Stack Overflow See other posts from Stack Overflow or by sevaxx
Published on 2010-05-26T01:10:01Z Indexed on 2010/05/26 1:21 UTC
Read the original article Hit count: 278

Filed under:
|
|
|
|

Maybe this is a foolish question, I can't see why I can not get a DC created in the following code :

HBITMAP COcrDlg::LoadClippedBitmap(LPCTSTR pathName,UINT maxWidth,UINT maxHeight)
{
    HBITMAP hBmp = (HBITMAP)::LoadImage(NULL, pathName, IMAGE_BITMAP, 0, 0,
                                  LR_LOADFROMFILE | LR_CREATEDIBSECTION);       
    if (!hBmp)
        return NULL;

    HDC hdc = (HDC)GetDC();
    HDC hdcMem = CreateCompatibleDC(hdc);
    if (!hdcMem)
    {
        DWORD err = GetLastError();
    }  
    ...
    ...
    ...

The bitmap hBmp is loaded fine and hdc has a valid value. But the call to CreateCompatibleDC() returns a NULL pointer. Then, GetLastError() returns 0 ! Anybody can guess what's going on here , please ?

PS : There are no memory allocations or GDI routines called before this one...so I think memory leaks should be ruled out.

© Stack Overflow or respective owner

Related posts about c++

Related posts about Windows