home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / ole / tstcon / tcview.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-27  |  7.8 KB  |  186 lines

  1. // CTestContainer98View.h : interface of the CTestContainer98View class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_CTESTCONTAINER98VIEW_H__1981850A_B837_11D0_8DF1_00C04FB68D60__INCLUDED_)
  6. #define AFX_CTESTCONTAINER98VIEW_H__1981850A_B837_11D0_8DF1_00C04FB68D60__INCLUDED_
  7.  
  8. #if _MSC_VER >= 1000
  9. #pragma once
  10. #endif // _MSC_VER >= 1000
  11.  
  12. class CTestContainer98Item;
  13.  
  14. const DWORD HITTYPE_NONE = 0;
  15. const DWORD HITTYPE_OBJECT = 1;
  16. const DWORD HITTYPE_BORDER = 2;
  17.  
  18. class CTestContainer98View : public CView
  19. {
  20.    DECLARE_DYNCREATE(CTestContainer98View)
  21.  
  22. protected: // create from serialization only
  23.    CTestContainer98View();
  24.  
  25. // Attributes
  26. public:
  27.    CTestContainer98Doc* GetDocument();
  28.    CTestContainer98Item* m_pSelection;
  29.  
  30. // Operations
  31. public:
  32.    void ClearSelection();
  33.  
  34. // Overrides
  35.    // ClassWizard generated virtual function overrides
  36.    //{{AFX_VIRTUAL(CTestContainer98View)
  37.     public:
  38.    virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  39.    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  40.    virtual BOOL PreTranslateMessage(MSG* pMsg);
  41.    virtual BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
  42.     virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
  43.     virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
  44.     virtual void OnDragLeave();
  45.     protected:
  46.    virtual void OnInitialUpdate(); // called first time after construct
  47.    virtual BOOL IsSelected(const CObject* pDocItem) const;// Container support
  48.    virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  49.     //}}AFX_VIRTUAL
  50.  
  51. // Implementation
  52. public:
  53.    void OnFocus( CTestContainer98Item* pItem, BOOL tGotFocus );
  54.    BOOL HandlePointerInactiveDragOver( CPoint point );
  55.    BOOL HandlePointerInactiveMove( CPoint point, DWORD dwKeyState );
  56.    BOOL HandlePointerInactiveSetCursor( DWORD dwMouseMessage );
  57.    BOOL HandleWindowlessDragEnter( COleDataObject* pDataObject,
  58.       DWORD dwKeyState, CPoint point, DWORD* pdwDropEffect );
  59.    void HandleWindowlessDragLeave();
  60.    BOOL HandleWindowlessDragOver( COleDataObject* pDataObject,
  61.       DWORD dwKeyState, CPoint point, DWORD* pdwDropEffect );
  62.    BOOL HandleWindowlessDrop( COleDataObject* pDataObject, DWORD dwKeyState,
  63.       CPoint point, DWORD* pdwDropEffect );
  64.    BOOL HandleWindowlessKeyboardMessage();
  65.    BOOL HandleWindowlessMouseMessage( CPoint point );
  66.    HRESULT OnWindowlessDefWindowMessage( UINT nMessage, WPARAM wParam,
  67.       LPARAM lParam, LRESULT* plResult );
  68.    HRESULT OnWindowlessReleaseCapture( CTestContainer98Item* pItem );
  69.    HRESULT OnWindowlessReleaseFocus();
  70.    HRESULT OnWindowlessSetCapture( CTestContainer98Item* pItem );
  71.    HRESULT OnWindowlessSetFocus( CTestContainer98Item* pItem );
  72.    CTestContainer98Item* GetItemWithCapture() const;
  73.    CTestContainer98Item* GetItemWithFocus() const;
  74.    void SetupSelectionTracker( CRectTracker* pTracker );
  75.    void SetupTracker( CTestContainer98Item* pItem, CRectTracker* pTracker );
  76.    void SetMultiSelect( CTestContainer98Item* pItem, BOOL tSelect );
  77.    void SetSelection( CTestContainer98Item* pItem );
  78.    void ToggleMultiSelect( CTestContainer98Item* pItem );
  79.    CTestContainer98Item* HitTestItems( CPoint point, DWORD* pdwHitType );
  80.    virtual ~CTestContainer98View();
  81. #ifdef _DEBUG
  82.    virtual void AssertValid() const;
  83.    virtual void Dump(CDumpContext& dc) const;
  84. #endif
  85.  
  86. protected:
  87.    // m_pSelection holds the selection to the current CTestContainer98Item.
  88.    // For many applications, such a member variable isn't adequate to
  89.    //  represent a selection, such as a multiple selection or a selection
  90.    //  of objects that are not CTestContainer98Item objects.  This selection
  91.    //  mechanism is provided just to help you get started.
  92.  
  93.    COleDropTarget m_dropTarget;
  94.    CTestContainer98Item* m_pItemWithCapture;
  95.    CTestContainer98Item* m_pItemWithFocus;
  96.    CPoint m_ptLastMousePosition;
  97.    CTestContainer98Item* m_pItemToDeactivateOnLeave;
  98.    CTestContainer98Item* m_pInactiveDropTarget;
  99.    CTestContainer98Item* m_pWindowlessDropTarget;
  100.    DWORD m_dwLastDropKeyState;
  101.    CTypedPtrList< CObList, CTestContainer98Item* > m_lpSelectedItems;
  102.  
  103.    static CLIPFORMAT s_cfObjectDescriptor;
  104.  
  105. // Generated message map functions
  106. protected:
  107.    //{{AFX_MSG(CTestContainer98View)
  108.    afx_msg void OnDestroy();
  109.    afx_msg void OnSetFocus(CWnd* pOldWnd);
  110.    afx_msg void OnSize(UINT nType, int cx, int cy);
  111.    afx_msg void OnInsertObject();
  112.    afx_msg void OnCancelEditCntr();
  113.    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  114.    afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  115.    afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  116.    afx_msg void OnEditClear();
  117.    afx_msg void OnUpdateEditClear(CCmdUI* pCmdUI);
  118.    afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  119.    afx_msg void OnOptionsDesignMode();
  120.    afx_msg void OnUpdateOptionsDesignMode(CCmdUI* pCmdUI);
  121.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  122.     afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  123.     afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  124.     afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
  125.     afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
  126.     afx_msg void OnCaptureChanged(CWnd *pWnd);
  127.     afx_msg void OnKillFocus(CWnd* pNewWnd);
  128.     afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  129.     afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
  130.     afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  131.     afx_msg void OnCancelMode();
  132.     afx_msg void OnControlSaveToStream();
  133.     afx_msg void OnEditInsertFromStream();
  134.     afx_msg void OnControlSaveToPropertyBag();
  135.     afx_msg void OnUpdateControlSaveToPropertyBag(CCmdUI* pCmdUI);
  136.     afx_msg void OnUpdateControlSaveToStream(CCmdUI* pCmdUI);
  137.     afx_msg void OnControlInvokeMethods();
  138.     afx_msg void OnUpdateControlInvokeMethods(CCmdUI* pCmdUI);
  139.     afx_msg void OnControlLogging();
  140.     afx_msg void OnUpdateControlLogging(CCmdUI* pCmdUI);
  141.     afx_msg void OnControlActivate();
  142.     afx_msg void OnControlDeactivate();
  143.     afx_msg void OnControlUIActivate();
  144.     afx_msg void OnControlUIDeactivate();
  145.     afx_msg void OnUpdateControlUIDeactivate(CCmdUI* pCmdUI);
  146.     afx_msg void OnUpdateControlUIActivate(CCmdUI* pCmdUI);
  147.     afx_msg void OnUpdateControlActivate(CCmdUI* pCmdUI);
  148.     afx_msg void OnUpdateControlDeactivate(CCmdUI* pCmdUI);
  149.     afx_msg void OnEditBringToFront();
  150.     afx_msg void OnUpdateEditBringToFront(CCmdUI* pCmdUI);
  151.     afx_msg void OnEditSendToBack();
  152.     afx_msg void OnUpdateEditSendToBack(CCmdUI* pCmdUI);
  153.     afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  154.     afx_msg void OnEditProperties();
  155.     afx_msg void OnUpdateEditProperties(CCmdUI* pCmdUI);
  156.     afx_msg void OnEditSelectAll();
  157.     afx_msg void OnEditCopy();
  158.     afx_msg void OnEditPaste();
  159.     afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
  160.     afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  161.     afx_msg void OnEditCut();
  162.     afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
  163.     afx_msg void OnToolsOLEView();
  164.     afx_msg void OnToolsRegEdit();
  165.     afx_msg void OnControlSaveToStorage();
  166.     afx_msg void OnUpdateControlSaveToStorage(CCmdUI* pCmdUI);
  167.     afx_msg void OnEditInsertControlFromStorage();
  168.     afx_msg void OnUpdateEditSelectAll(CCmdUI* pCmdUI);
  169.     afx_msg void OnControlDrawMetaFile();
  170.     afx_msg void OnUpdateControlDrawMetaFile(CCmdUI* pCmdUI);
  171.     //}}AFX_MSG
  172.    DECLARE_MESSAGE_MAP()
  173. };
  174.  
  175. #ifndef _DEBUG  // debug version in CTestContainer98View.cpp
  176. inline CTestContainer98Doc* CTestContainer98View::GetDocument()
  177.    { return (CTestContainer98Doc*)m_pDocument; }
  178. #endif
  179.  
  180. /////////////////////////////////////////////////////////////////////////////
  181.  
  182. //{{AFX_INSERT_LOCATION}}
  183. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  184.  
  185. #endif // !defined(AFX_CTESTCONTAINER98VIEW_H__1981850A_B837_11D0_8DF1_00C04FB68D60__INCLUDED_)
  186.