Peut-être que c'est une question stupide, je ne vois pas pourquoi je ne peux pas obtenir un DC créé dans le code suivant:erreur étrange avec CreateCompatibleDC
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();
}
...
...
...
Le bitmap hBmp est bien chargé et hdc a une validité valeur. Mais l'appel à CreateCompatibleDC() renvoie un pointeur NULL. Ensuite, GetLastError() renvoie 0! Tout le monde peut deviner ce qui se passe ici, s'il vous plaît? PS: Il n'y a pas d'allocation de mémoire ou de routines GDI appelées avant celle-ci ... donc je pense que les fuites de mémoire devraient être exclues.
Vous avez parfaitement raison. C'était l'erreur. Reconnaissant à tous pour l'aide! – sevaxx