编辑控件VC源代码:metafile_source/meta.h

来源:互联网 发布:淘宝网购买 编辑:程序博客网 时间:2024/06/05 21:11
// metaex.h - Header for CMetaFileEx
02#ifndef __CMETAFILE_H__
03#define __CMETAFILE_H__
04 
05// Placeable metafile data definitions
06typedef struct tagOLDRECT
07{
08    short left;
09    short top;
10    short right;
11    short bottom;
12} OLDRECT;
13 
14// Placeable metafile header
15typedef struct {
16        DWORD   key;
17        WORD    hmf;
18        OLDRECT bbox;
19        WORD    inch;
20        DWORD   reserved;
21        WORD    checksum;
22} ALDUSMFHEADER;
23 
24#define METAFILE_VERSION    1
25#define ALDUSKEY        0x9AC6CDD7
26#define ALDUSMFHEADERSIZE   22  // Avoid sizeof is struct alignment >1
27 
28// Alignment types
29typedef enum {
30    AlignNone = -1,
31    AlignDefault,
32    AlignTopLeft,
33    AlignTopCentre,
34    AlignTopRight,
35    AlignMiddleLeft,
36    AlignMiddleCentre,
37    AlignMiddleRight,
38    AlignBottomLeft,
39    AlignBottomCentre,
40    AlignBottomRight,
41    AlignStretch,
42    AlignFit,
43} METAALIGNMENT;
44 
45class CMetaFile : public CMetaFileDC {
46    DECLARE_SERIAL(CMetaFile)
47public:
48    static bool IsMetafile(CFile* pFile);
49    CMetaFile();
50    ~CMetaFile();
51    void Display(CDC* pDC, CRect& r, METAALIGNMENT align = AlignDefault);
52    BOOL Read(CFile *file);
53    BOOL Read(LPCTSTR lpszFileName);
54    void Serialize(CArchive& archive);
55    void Clear();
56    bool IsEmpty();
57private:
58    void FitPicture(CRect& r, CSize& size, METAALIGNMENT align);
59    ALDUSMFHEADER m_aldusMFHeader;
60    HENHMETAFILE m_emf;
61};
62 
63#endif  // __CMETAFILE_H__来源http://code.it168.com/v/bianjikongjianvcyuandaima:metafile_source/meta.h
0 0
原创粉丝点击