HRGN的保留,与恢复,能保存成功,恢复出错
HRGN的保存,与恢复,能保存成功,恢复出错。
------解决方案--------------------
pRgn->CreateFromData( NULL, resSize, (LPRGNDATA)pBuffer );
- C/C++ code
void ZBitmap::SaveRgn(std::string _strName) { UINT dwSize=GetRegionData(m_hrgn,0,NULL); BYTE* pData=new BYTE[dwSize]; GetRegionData(m_hrgn,dwSize,(LPRGNDATA)pData); std::string strName=_strName+".rgn"; std::ofstream outfile(strName.c_str()); outfile.write((char*)&dwSize,sizeof(UINT)); outfile.write((char*)pData,dwSize); delete pData; outfile.close(); } void ZBitmap::LoadRgn(std::string _strName) { std::ifstream infile(_strName.c_str()); UINT dwSize; infile.read((char*)&dwSize,sizeof(UINT)); BYTE* pData=new BYTE[dwSize]; infile.read((char*)pData,dwSize); m_hrgn=ExtCreateRegion(NULL,dwSize,(LPRGNDATA)pData); infile.close(); delete pData; }
------解决方案--------------------
pRgn->CreateFromData( NULL, resSize, (LPRGNDATA)pBuffer );