CDIB.H
上传用户:whhgrj
上传日期:2013-03-18
资源大小:169k
文件大小:2k
源码类别:

波变换

开发平台:

Visual C++

  1. // cdib.h declaration for Inside Visual C++ CDib class
  2. #ifndef _INSIDE_VISUAL_CPP_CDIB
  3. #define _INSIDE_VISUAL_CPP_CDIB
  4. class CDib : public CObject
  5. {
  6. enum Alloc {noAlloc, crtAlloc, heapAlloc};
  7. DECLARE_SERIAL(CDib)
  8. public:
  9. LPVOID m_lpvColorTable;
  10. HBITMAP m_hBitmap;
  11. LPBYTE m_lpImage;  // starting address of DIB bits
  12. LPBITMAPINFOHEADER m_lpBMIH; //  buffer containing the BITMAPINFOHEADER
  13. private:
  14. HGLOBAL m_hGlobal; // For external windows we need to free;
  15.                    //  could be allocated by this class or allocated externally
  16. Alloc m_nBmihAlloc;
  17. Alloc m_nImageAlloc;
  18. DWORD m_dwSizeImage; // of bits -- not BITMAPINFOHEADER or BITMAPFILEHEADER
  19. int m_nColorTableEntries;
  20. HANDLE m_hFile;
  21. HANDLE m_hMap;
  22. LPVOID m_lpvFile;
  23. HPALETTE m_hPalette;
  24. public:
  25. CDib();
  26. CDib(CSize size, int nBitCount); // builds BITMAPINFOHEADER
  27. ~CDib();
  28. int GetSizeImage() {return m_dwSizeImage;}
  29. int GetSizeHeader()
  30. {return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries;}
  31. CSize GetDimensions();
  32. BOOL AttachMapFile(const char* strPathname, BOOL bShare = FALSE);
  33. BOOL CopyToMapFile(const char* strPathname);
  34. BOOL AttachMemory(LPVOID lpvMem, BOOL bMustDelete = FALSE, HGLOBAL hGlobal = NULL);
  35. BOOL Draw(CDC* pDC, CPoint origin, CSize size);  // until we implemnt CreateDibSection
  36. HBITMAP CreateSection(CDC* pDC = NULL);
  37. UINT UsePalette(CDC* pDC, BOOL bBackground = FALSE);
  38. BOOL MakePalette();
  39. BOOL SetSystemPalette(CDC* pDC);
  40. BOOL Compress(CDC* pDC, BOOL bCompress = TRUE); // FALSE means decompress
  41. HBITMAP CreateBitmap(CDC* pDC);
  42. BOOL Read(CFile* pFile);
  43. BOOL ReadSection(CFile* pFile, CDC* pDC = NULL);
  44. BOOL Write(CFile* pFile);
  45. void Serialize(CArchive& ar);
  46. void Empty();
  47. private:
  48. void DetachMapFile();
  49. void ComputePaletteSize(int nBitCount);
  50. void ComputeMetrics();
  51. };
  52. #endif // _INSIDE_VISUAL_CPP_CDIB