|
导读网站建设是指使用标识语言(markup language),通过一系列设计、建模、和执行的过程将电子格式的信息通过互联网传输,最终以图形用户界面(GUI)的形式被用户所浏览。简单来说,网页设计的目的... 网站建设是指使用标识语言(markup language),通过一系列设计、建模、和执行的过程将电子格式的信息通过互联网传输,最终以图形用户界面(GUI)的形式被用户所浏览。简单来说,网页设计的目的就是产生网站。简单的信息如文字,图片(GIF,JPEG,PNG)和表格,都可以通过使超文件标示语言、可扩展超文本标记语言等标示语言放置到网站页面上。 为了简化问题,该数据库的表中只有一个名为Images的OLE字段,我使用DAO连接操作数据库,读取的图像数据显示在一个对话框上,至于使用ODBC、DAO还是ADO,这要根据具体情况而定,但无论使用哪一种,对图像的显示来说,实现的过程是大同小异的。由于篇幅有限,文章中对如何实现数据库的连接不再作具体的说明,有兴趣的读者朋友可以参考VC数据库编程的资料。实现过程中,首先定义一个CDaoRecordset的子类 CimageData如下:class CimageData : public CDaoRecordset { public: CimageData (CDaoDatabase* pDatabase = NULL); DECLARE_DYNAMIC(CimageData) file://{{AFX_FIELD(CimageData, CDaoRecordset) CByteArray m_Images;//声明字节数组用来存放图像数据 file://}}AFX_FIELD // Overrides // ClassWizard generated virtual function overrides file://{{AFX_VIRTUAL(CimageData) public: virtual CString GetDefaultDBName(); virtual CString GetDefaultSQL(); virtual void DoFieldExchange(CDaoFieldExchange* pFX); file://}}AFX_VIRTUAL 该类的实现为: CimageData:: CimageData (CDaoDatabase* pdb) : CDaoRecordset(pdb) { file://{{AFX_FIELD_INIT(CimageData) m_nFields = 1;//数据库的表中仅有一个字段 file://}}AFX_FIELD_INIT m_nDefaultType = dbOpenDynaset;//以动态集方式打开数据库 } CString CimageData::GetDefaultDBName() { return _T("E:\\IMAGES.mdb");//默认的ACESS数据库在E盘,名为IMAGES } CString CimageData::GetDefaultSQL() { return _T("[Table]");//默认打开数据库中名为"Table"的表 } void CimageData::DoFieldExchange(CDaoFieldExchange* pFX) { file://{{AFX_FIELD_MAP(CimageData) pFX->SetFieldType(CDaoFieldExchange::outputColumn); DFX_Binary(pFX, _T("[Images]"), m_Images);//以二进制方式在Images字段和m_Images变量间交换数据 file://}}AFX_FIELD_MAP }
有了该类,就可以定义相应的对象来与数据库中的图像字段交换数据,下面定义的函数GetImageData()说明了如何根据读取的OLE字段数据生成待显示的图像,需要注意的是该函数中使用的CBitmap类的变量Bitmap是预定义的一个全局变量: |
温馨提示:喜欢本站的话,请收藏一下本站!