home *** CD-ROM | disk | FTP | other *** search
/ Windows Graphics Programming / Feng_Yuan_Win32_GDI_DirectX.iso / Samples / Chapt_16 / EMF / EMFView.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-24  |  3.0 KB  |  105 lines

  1. //-----------------------------------------------------------------------------------//
  2. //              Windows Graphics Programming: Win32 GDI and DirectDraw               //
  3. //                             ISBN  0-13-086985-6                                   //
  4. //                                                                                   //
  5. //  Written            by  Yuan, Feng                             www.fengyuan.com   //
  6. //  Copyright (c) 2000 by  Hewlett-Packard Company                www.hp.com         //
  7. //  Published          by  Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com      //
  8. //                                                                                   //
  9. //  FileName   : emfview.h                                                             //
  10. //  Description: EMF displaying window                                               //
  11. //  Version    : 1.00.000, May 31, 2000                                              //
  12. //-----------------------------------------------------------------------------------//
  13.  
  14. class KEMFPanel : public KWindow
  15. {
  16. public:
  17.     HENHMETAFILE    m_hEmf;
  18.     HPALETTE        m_hPalette;
  19.     int                m_zoom;
  20.     int                m_mode;
  21.  
  22.     virtual void OnDraw(HDC hDC);
  23.  
  24.     KEMFPanel()
  25.     {
  26.         m_hEmf        = NULL;
  27.         m_hPalette  = NULL;
  28.         m_zoom      = 100;
  29.         m_mode        = 0;
  30.     }
  31.  
  32.     ~KEMFPanel()
  33.     {
  34.         if ( m_hEmf )
  35.         {
  36.             DeleteEnhMetaFile(m_hEmf);
  37.             m_hEmf = NULL;
  38.         }
  39.     }
  40.  
  41.     void SetZoom(int newzoom, bool bForce=false);
  42.  
  43.     void GetWndClassEx(WNDCLASSEX & wc)
  44.     {
  45.         memset(& wc, 0, sizeof(wc));
  46.  
  47.         wc.cbSize        = sizeof(WNDCLASSEX);
  48.         wc.style         = CS_HREDRAW | CS_VREDRAW;
  49.         wc.lpfnWndProc   = WindowProc;
  50.         wc.cbClsExtra    = 0;
  51.         wc.cbWndExtra    = 0;       
  52.         wc.hInstance     = NULL;
  53.         wc.hIcon         = NULL;
  54.         wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
  55.         wc.hbrBackground = (HBRUSH) (COLOR_INFOBK + 1);
  56.         wc.lpszMenuName  = NULL;
  57.         wc.lpszClassName = NULL;
  58.         wc.hIconSm       = NULL;
  59.     }
  60.  
  61. };
  62.  
  63.  
  64. class KEMFView : public KCanvas
  65. {
  66.     virtual LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  67.     
  68.     HMENU            m_hViewMenu;
  69.     HWND            m_hFrame;
  70.     KTreeView        m_emftree;
  71.     KEMFPanel        m_emfpanel;
  72.     int                m_nDivision;
  73.     TCHAR            m_FileName[MAX_PATH];
  74.  
  75. public:
  76.  
  77.     KEMFView()
  78.     {
  79.         m_hViewMenu    = NULL;
  80.         m_hFrame       = NULL;
  81.         m_nDivision    = 280;
  82.     }
  83.  
  84.     void GetWndClassEx(WNDCLASSEX & wc)
  85.     {
  86.         memset(& wc, 0, sizeof(wc));
  87.  
  88.         wc.cbSize        = sizeof(WNDCLASSEX);
  89.         wc.style         = CS_HREDRAW | CS_VREDRAW;
  90.         wc.lpfnWndProc   = WindowProc;
  91.         wc.cbClsExtra    = 0;
  92.         wc.cbWndExtra    = 0;       
  93.         wc.hInstance     = NULL;
  94.         wc.hIcon         = LoadIcon(m_hInst, MAKEINTRESOURCE(IDI_GRAPH));
  95.         wc.hCursor       = LoadCursor(NULL, IDC_SIZEWE);
  96.         wc.hbrBackground = (HBRUSH) (COLOR_WINDOWFRAME + 1);
  97.         wc.lpszMenuName  = NULL;
  98.         wc.lpszClassName = NULL;
  99.         wc.hIconSm       = NULL;
  100.     }
  101.  
  102.     bool Initialize(HINSTANCE hInstance, KStatusWindow * pStatus, HWND hWndFrame, HENHMETAFILE hEmf,
  103.         const TCHAR * pFileName);
  104. };
  105.