Растровое изображение MFC с использованием преобразования CPaintDC? - PullRequest
0 голосов
/ 03 ноября 2011

Попытка преобразовать это:

HDC hdc = CreateCompatibleDC(NULL);
HBITMAP cross = (HBITMAP)LoadImage(NULL, _("c:\\captureqwsx.bmp") ,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
SelectObject(hdc, cross);
HDC hdc_x = ::GetDC(HWND_DESKTOP);
::BitBlt(hdc_x,10,10,200,200,hdc,0,0,SRCCOPY);  
::ReleaseDC(HWND_DESKTOP,hdc_x);

Для этого используется CDC / DC ???????????

CPaintDC dc(this);
CDC dcMem;

dc.CreateCompatibleDC(&dcMem);
HBITMAP cross = (HBITMAP)LoadImage(NULL, _T("c:\\captureqwsx.bmp") ,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
dc.SelectObject(cross);
dc.BitBlt(10,10,200,200,&dcMem,0,0,SRCCOPY);
dc.ReleaseOutputDC();

прерывает выполнение

1 Ответ

0 голосов
/ 03 ноября 2011

Вы перепутали свои DC. CPaintDC автоматически создается для работы с вашим окном, нет необходимости использовать CreateCompatibleDC на нем - это должно быть сделано на вашем dcMem. Также вы не можете использовать CPaintDC, кроме как в обработчике сообщений WM_PAINT, вместо этого вы должны использовать CClientDC.

Могут быть другие проблемы с кодом, который вы разместили, но это должно помочь вам начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...