|
|
1.1 root 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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.