Visual c++ 使用CPaintDC转换的MFC位图? 正在尝试转换此文件: 使用CDC/DC来解决这个问题??????????? 它中止执行

Visual c++ 使用CPaintDC转换的MFC位图? 正在尝试转换此文件: 使用CDC/DC来解决这个问题??????????? 它中止执行,visual-c++,Visual C++,您的DC被弄混了。CPaintDC是自动创建的,用于处理您的窗口,不需要在其上使用CreateCompatibleDC-这应该在您的dcMem上完成。此外,除了在WM_PAINT消息处理程序中,您不能使用CPaintDC,您应该改用CClientDC 您发布的代码可能还有其他问题,但这应该可以帮助您开始 HDC hdc = CreateCompatibleDC(NULL); HBITMAP cross = (HBITMAP)LoadImage(NULL, _("c:\\captureqwsx.b

您的DC被弄混了。CPaintDC是自动创建的,用于处理您的窗口,不需要在其上使用CreateCompatibleDC-这应该在您的dcMem上完成。此外,除了在WM_PAINT消息处理程序中,您不能使用CPaintDC,您应该改用CClientDC

您发布的代码可能还有其他问题,但这应该可以帮助您开始

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);
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();