用VC++如何实现将一CAD图形文件显示在一视图类窗口中?用容器类怎么实现?
转贴
// VC6 读取sql server 图片
// 使用了class CADORecordset
CString strSql = "select layerimage from EMAP_LAYER where imageid=1";
CADORecordset recordset;
if (recordset.Open(m_adoDb.GetActiveConnection(),strSql)
&& !recordset.IsEof())
{
CADOFieldInfo fldInfo;
recordset.GetFieldInfo("layerimage",&fldInfo);
char *pBmpBuf = new char [fldInfo.m_lSize];
recordset.GetChunk("layerimage",pBmpBuf);
recordset.Close();
CClientDC dc(this);
BITMAPFILEHEADER bmfh;
memcpy(&bmfh,pBmpBuf,sizeof(BITMAPFILEHEADER));
BITMAPINFO *pbmi = (BITMAPINFO *)(pBmpBuf + sizeof(BITMAPFILEHEADER));
BITMAPINFOHEADER *pbmih = (BITMAPINFOHEADER *)pbmi;
m_hBitmap = ::CreateDIBitmap( // 构造DDB位图
dc, // handle to DC
pbmih, // bitmap data
CBM_INIT, // initialization option
(char *)(pBmpBuf+bmfh.bfOffBits), // initialization data
pbmi, // color-format data
DIB_RGB_COLORS ); // color-data usage
delete [] pBmpBuf;
}
//显示图片很简单,用 BitBlt()就可以,参考msdn