selectimage1();--->showimage3(); m_pic1 两个函数的对象要对应上
selectimage2();--->showimage4(); m_pic2
selectimage45();--->showimage45(); m_pic!开始错误,一个m_pic2一个 m_pic
selectimage90();--->showimage90(); m_pic
selectimage135();--->showimage135(); m_pic
selectimage45();--->showimage45(); m_pic!开始错误,一个m_pic2一个 m_pic
都改为m_pic即可。
还是不成功!
继续找问题!是showimage()位置的问题;
只留最后那个就好!
void Caccess_test_1Dlg::selectimage45() { try { m_pRecordset->MoveFirst(); long nSize3 = m_pRecordset->GetFields()->GetItem("45度")->ActualSize; if (nSize3 > 0) { _variant_t varBLOB; varBLOB = m_pRecordset->GetFields()->GetItem("45度")->GetChunk(nSize3); if (varBLOB.vt == (VT_ARRAY | VT_UI1)) { if (BYTE *pBuffer3 = new BYTE[nSize3 + 1]) ///重新申请必要的存储空间 { char *pBuf3 = NULL; SafeArrayAccessData(varBLOB.parray, (void **)&pBuf3); memcpy(pBuffer3, pBuf3, nSize3); ///复制数据到缓冲区m_pBMPBuffer SafeArrayUnaccessData(varBLOB.parray); (m_Pic.LoadPictureData(pBuffer3, nSize3)); //showimage45(); delete[] pBuffer3; pBuf3 = 0; } } //showimage45(); } } catch (_com_error e) { } showimage45(); }
成功!
新问题!中间三幅图显示的不能变。ok。原因是只更改了时间索引的函数,ID索引函数没改。同步改了就好了