To :WildCat2001(野猫) 请再帮我看看!
我的8bit的BMP是这样建立的! 是否有问题呢?
HDC hScrDC,hMemDC;
CRect m_rect(0,0,100,100);
//屏幕和内存设备描述表
HBITMAP hBitmap=NULL,hOldBitmap=NULL;
// 位图句柄
CDC *cd=::AfxGetApp()->m_pMainWnd->GetDC();
CString str;
//为屏幕创建设备描述表
hScrDC=cd->GetSafeHdc();
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC=CreateCompatibleDC(hScrDC);
// 创建一个与屏幕设备描述表兼容的位图
hBitmap = CreateCompatibleBitmap(hMemDC,100,50);//2*m_rect.Width(), m_rect.Height());
// 把新位图选到内存设备描述表中
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
HFONT hOldFont;HFONT font= ::CreateFont(20,0,0,0, 100,FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, FF_DECORATIVE, "黑体" );
hOldFont=(HFONT)::SelectObject(hMemDC,font);
::SetTextColor(hMemDC,RGB(255,255,255));
::SetBkColor(hMemDC,RGB(0,0,0));
::BitBlt(hMemDC,m_rect.left,m_rect.top,m_rect.Width(),m_rect.Height(),hMemDC,0,0,WHITENESS);
CString pp=".";
::TextOut(hMemDC,0,0,pp,strlen(pp));
hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);
DeleteDC(hMemDC);
::SelectObject(hScrDC,hOldFont);
DeleteDC(hScrDC);
return hBitmap;//return HBITMAP;