Может быть, это глупый вопрос, я не понимаю, почему я не могу создать DC в следующем коде:
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();
}
...
...
...
Растровое изображение hBmp загружено нормально, и hdc имеет допустимое значение. Но вызов CreateCompatibleDC () возвращает нулевой указатель. Затем GetLastError () возвращает 0!
Кто-нибудь может угадать, что здесь происходит, пожалуйста?
PS: До этого не было выделений памяти или процедур GDI, поэтому я думаю, что утечки памяти следует исключить.