#visual-c
#visual-c
Вопрос:
Пытаюсь преобразовать это:
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(amp;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,amp;dcMem,0,0,SRCCOPY);
dc.ReleaseOutputDC();
это прерывает выполнение
Ответ №1:
Вы перепутали свои контроллеры домена. CPaintDC создается автоматически для работы с вашим окном, нет необходимости использовать CreateCompatibleDC для него — это должно быть сделано в вашем dcMem. Кроме того, вы не можете использовать CPaintDC, кроме как в обработчике сообщений WM_PAINT, вместо этого вы должны использовать CClientDC.
Могут быть и другие проблемы с опубликованным вами кодом, но это должно помочь вам начать.