为什么没人理我?是这个问题太难了?太无聊了?我要死了!!!!!
Mover 2000-08-20 02:41:00 我创建了一个打印DC,和与它兼容的内存DC。在内存DC中选择了一个BMP,然后BitBlt内存DC到打印DC,此时BitBlt返回0,BitBlt出错。我怎样才能打印输出这个BMP呢?
HDC hCardDC = NULL;
HDC dcMem;
HFONT hOldFont = NULL;
DOCINFO di;
BOOL rr;
hCardDC = CreateDC( (LPCTSTR)"HP LaserJet 1100", (LPCTSTR)"HP LaserJet 1100",NULL, NULL);
di.cbSize = sizeof(di);
di.lpszDocName = lpszText;
di.lpszOutput = NULL;
di.lpszDatatype = NULL;
di.fwType = 0;
StartDoc(hCardDC, &di);
StartPage(hCardDC);
SetMapMode(hCardDC, MM_HIMETRIC);
CBitmap bmpHello;
bmpHello.LoadBitmap( IDB_BITMAP1 );
BITMAP bm;
bmpHello.GetObject( sizeof(BITMAP), &bm );
dcMem=CreateCompatibleDC( hCardDC );
HBITMAP pbmpOld = (HBITMAP)SelectObject(dcMem, bmpHello.m_hObject );
rr=BitBlt(hCardDC , 0,0, bm.bmWidth, bm.bmHeight,
dcMem , 0,0, SRCCOPY );
TextOut(hCardDC,0,0,"asdas",5);
SelectObject(dcMem, pbmpOld);
rr返回0,BitBlt出错。但TextOut输出正确,256色,16位色,24位色BMP都不对,是否是调色板的问题?
同样一段程序,把hCardDC换成This->GetDC()->m_hDC,显示正常,为什么?