PAGES.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * PAGES.H
  3.  * Patron Chapter 1
  4.  *
  5.  * Definitions and function prototypes for the Pages window control.
  6.  *
  7.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  8.  *
  9.  * Kraig Brockschmidt, Microsoft
  10.  * Internet  :  kraigb@microsoft.com
  11.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  12.  */
  13. #ifndef _PAGES_H_
  14. #define _PAGES_H_
  15. //Versioning.
  16. #define VERSIONMAJOR                2
  17. #define VERSIONMINOR                0
  18. #define VERSIONCURRENT              0x00020000
  19. //Classname
  20. #define SZCLASSPAGES                TEXT("pages")
  21. #define HIMETRIC_PER_INCH           2540
  22. #define LOMETRIC_PER_INCH           254
  23. #define LOMETRIC_BORDER             60          //Border around page
  24. //Window extra bytes and offsets
  25. #define CBPAGESWNDEXTRA             (sizeof(LONG))
  26. #define PAGEWL_STRUCTURE            0
  27. /*
  28.  * Page class describing an individual page and what things it
  29.  * contains.
  30.  *
  31.  * A DWORD is used to identify this page as the name of the storage
  32.  * is the string form of this ID.  If we added a page every second,
  33.  * it would take 136 years to overrun this counter, so we can
  34.  * get away with saving it persistently.  I hope this software is
  35.  * obsolete by then.
  36.  */
  37. class CPage
  38.     {
  39.     private:
  40.         DWORD       m_dwID;             //Persistent identifier
  41.     public:
  42.         CPage(DWORD);
  43.         ~CPage(void);
  44.         DWORD           GetID(void);
  45.     };
  46. typedef CPage *PCPage;
  47. //PRINT.CPP
  48. BOOL    APIENTRY AbortProc(HDC, int);
  49. BOOL    APIENTRY PrintDlgProc(HWND, UINT, WPARAM, LPARAM);
  50. //PAGEWIN.CPP
  51. LRESULT APIENTRY PagesWndProc(HWND, UINT, WPARAM, LPARAM);
  52. void             RectConvertMappings(LPRECT, HDC, BOOL);
  53. class CPages : public CWindow
  54.     {
  55.     friend LRESULT APIENTRY PagesWndProc(HWND, UINT, WPARAM, LPARAM);
  56.     friend BOOL    APIENTRY PrintDlgProc(HWND, UINT, WPARAM, LPARAM);
  57.     private:
  58.         UINT        m_iPageCur;             //Current page
  59.         UINT        m_cPages;               //Number of pages
  60.         HWND        m_hWndPageList;         //Listbox with page list
  61.         HFONT       m_hFont;                //Page font
  62.         BOOL        m_fSystemFont;          //m_hFont system object?
  63.         UINT        m_cx;                   //Page size in LOMETRIC
  64.         UINT        m_cy;
  65.         UINT        m_xMarginLeft;          //Unusable margins,
  66.         UINT        m_xMarginRight;         //in LOMETRIC
  67.         UINT        m_yMarginTop;
  68.         UINT        m_yMarginBottom;
  69.         UINT        m_xPos;                 //Viewport scroll pos,
  70.         UINT        m_yPos;                 //both in *PIXELS*
  71.         DWORD       m_dwIDNext;             //Next ID for a page.
  72.         HGLOBAL     m_hDevMode;             //Current DevMode config
  73.         TCHAR       m_szDriver[CCHDEVICENAME];
  74.         TCHAR       m_szDevice[CCHDEVICENAME];
  75.         TCHAR       m_szPort[CCHDEVICENAME];
  76.     private:
  77.         void        Draw(HDC, BOOL, BOOL);
  78.         void        UpdateScrollRanges(void);
  79.         BOOL        ConfigureForDevice(void);
  80.         BOOL        PageGet(UINT, PCPage *, BOOL);
  81.         BOOL        PageAdd(UINT, DWORD, BOOL);
  82.     public:
  83.         CPages(HINSTANCE);
  84.         ~CPages(void);
  85.         BOOL        Init(HWND, LPRECT, DWORD, UINT, LPVOID);
  86.         void        New(void);
  87.         BOOL        Print(HDC, LPTSTR, DWORD, UINT, UINT, UINT);
  88.         void        RectGet(LPRECT);
  89.         void        RectSet(LPRECT, BOOL);
  90.         void        SizeGet(LPRECT);
  91.         void        SizeSet(LPRECT, BOOL);
  92.         PCPage      ActivePage(void);
  93.         UINT        PageInsert(UINT);
  94.         UINT        PageDelete(UINT);
  95.         UINT        CurPageGet(void);
  96.         UINT        CurPageSet(UINT);
  97.         UINT        NumPagesGet(void);
  98.         BOOL        DevModeSet(HGLOBAL, HGLOBAL);
  99.         HGLOBAL     DevModeGet(void);
  100.     };
  101. typedef CPages *PCPages;
  102. #endif  //_PAGES_H_