[GDI] Непонимание работы PaintDesktop
От: spbAngel  
Дата: 07.11.06 09:47
Оценка:
Есть заддача отрисовать рабочий стол. Пока устраивала отрисовка на форму, всё работало.

HWND iHwnd;
case WM_PAINT:
    PAINTSTRUCT lPS;

    HDC lBase = ::BeginPaint(iHwnd, &lPS);
    
    BOOL lRes = ::PaintDesktop(lBase);
    DWORD lErrorCode = ::GetLastError();
    
    ::EndPaint(iHwnd, &lPS);
Результат:
lRes == TRUE (Success)
lErrorCode == ERROR_SUCCESS ("The operation completed successfully")

Но, как только понадобилась отрисовка в bitmap, начались, непонятные мне, проблемы.

int lWidth = 1024;
int lHeight = 738;
HDC lBase = ::CreateDC(L"DISPLAY", NULL, NULL, NULL);
HDC lBitmapDC = ::CreateCompatibleDC(lBase);
HBITMAP lBitmap = ::CreateCompatibleBitmap(lBase, lWidth, lHeight);
HGDIOBJ lNullBitmap = ::SelectObject(lBitmapDC, lBitmap);    

BOOL lRes = ::PaintDesktop(lBitmapDC);
DWORD lErrorCode = ::GetLastError();

::SelectObject(lBitmapDC, lNullBitmap);
::DeleteDC(lBitmapDC);
::DeleteObject(lBitmap);
Результат:
lRes == FALSE (Error)
lErrorCode == ERROR_FILE_NOT_FOUND ("The system cannot find the file specified")


Как понятно, ничего в bitmap не отрисовывается. К чему бы это?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>

07.11.06 13:44: Перенесено модератором из 'WIN API' — Odi$$ey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.