home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK8 / MFC / SAMPLES / OCLIENT / ITEMWND.H$ / itemwnd
Encoding:
Text File  |  1992-03-05  |  2.7 KB  |  104 lines

  1. // This is a part of the Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Microsoft Foundation Classes Reference and Microsoft
  7. // QuickHelp documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Microsoft Foundation Classes product.
  10.  
  11. // class CItemWnd - the window containing an embedded OLE object
  12.  
  13. #ifndef __AFXOLE_H__
  14. #include <afxole.h>
  15. #endif
  16.  
  17. class CItemWnd;
  18.  
  19. // A special COleClientItem that points to the UI for it
  20. class CEmbeddedItem : public COleClientItem
  21.     // embedded or linked
  22. {
  23.     CItemWnd*   m_pView;        // view on this item
  24.  
  25. public:
  26.     CEmbeddedItem(COleClientDoc* pContainer, CItemWnd* pView)
  27.         : COleClientItem(pContainer)
  28.         { m_pView = pView; }
  29.  
  30. // Operations
  31.     void    SetNames();
  32.  
  33. // Callbacks
  34. protected:
  35.     virtual void OnChange(OLE_NOTIFICATION wNotification);
  36.     virtual void WaitForServer();   // special hourglass
  37. };
  38.  
  39.  
  40. // Special class for tieing an OLEOBJECT and a WINDOW
  41. class CItemWnd : public CWnd
  42. {
  43. public:
  44.     CItemWnd(CMainWnd* pContainer);
  45.  
  46.     BOOL    CreateItemWindow(BOOL fShow);
  47.     BOOL    RestoreItemWindow(const RECT& rect);
  48.  
  49. // Attributes
  50.     BOOL IsComplete()       // BLANK objects are incomplete 
  51.             { return m_fVisible; }
  52.     BOOL CanChangeBounds()
  53.             { return (!m_fVisible || m_fTrackSize); }
  54.     CEmbeddedItem*  GetEmbedded()
  55.                 { return &m_embedded; }
  56.  
  57.  
  58. // Operations
  59.     void Dirty()
  60.             { m_pContainer->Dirty(); }
  61.  
  62.     void DoVerb(UINT nVerb);
  63.     void SetInitialBounds(const CRect& rect);
  64.     void Select(BOOL bOn);
  65.  
  66. // Callbacks - for Window part
  67. protected:
  68.     afx_msg void OnPaint();
  69.     afx_msg void OnSize(UINT nType, int cx, int cy);
  70.     afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  71.     afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  72.     afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  73.     afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  74.     afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  75.     virtual void PostNcDestroy();     // for cleanup
  76.  
  77. // Implementation
  78. public:
  79.     virtual void Serialize(CArchive& ar);       // from CObject
  80. #ifdef _DEBUG
  81.     virtual void AssertValid() const;
  82. #endif
  83.  
  84. protected:
  85.     CMainWnd* m_pContainer;     // our parent window/container
  86.     BOOL    m_fVisible;       // is item to be displayed ?
  87.     BOOL    m_fTrackSize;     // is item's size autoupdate ?
  88.  
  89.     // Capture/dragging support
  90.     BOOL    m_fCaptured;
  91.     static CRect dragRect;
  92.     static CPoint dragPt;
  93.  
  94. // Item bound to item window
  95.     CEmbeddedItem   m_embedded;
  96.     void OnCommonChange(BOOL fDestroyOnError);
  97.  
  98.     DECLARE_MESSAGE_MAP()
  99.  
  100.     friend class CEmbeddedItem;
  101. };
  102.  
  103.  
  104.