DrawView.h
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:3k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. #if !defined(AFX_DRAWVIEW_H__90DA4246_4238_4D56_A1AC_3C4B7F356452__INCLUDED_)
  2. #define AFX_DRAWVIEW_H__90DA4246_4238_4D56_A1AC_3C4B7F356452__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // DrawView.h : header file
  7. //
  8. #include <afxmt.h>
  9. #include "DrawIterator.h"
  10. class CDraw;
  11. #pragma warning(disable:4786)
  12. #include <list>
  13. using namespace std;
  14. typedef list< CDraw * >DRAW_LIST;
  15. class CMainFrame;
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CDrawView view
  18. class CDrawView : public CScrollView
  19. {
  20. public:
  21.     enum ACTION
  22. {
  23. ADD = 1 , DEL , MODIFY , ITERATOR , LOCK , POSITION
  24. };
  25.          CDrawView( CMainFrame * mainFrame );
  26. virtual ~CDrawView( );
  27.     //主框架窗口
  28. CMainFrame * mainFrame;
  29.     //选择画图
  30. void     SelectDraw( int index , COLORREF color = RGB( 0 , 0 , 0 ) , int width = 1 , bool m_bEmpty = true );
  31.     //取得当前的画图工具
  32. CDraw *  GetDraw( void ){ return this->draw; }
  33.     //取得内存dc
  34. CDC   *  GetMemDC( void ){ return & this->memDC; }
  35.     //刷新
  36. void     Reflush( void );
  37.     //取得列表
  38. DRAW_LIST * LockList( void ){ this->session.Lock( ); return &this->drawList; }
  39. //解锁链表
  40. void        UnlockList( void ){ this->session.Unlock( ); }
  41.     //取得指示器
  42. CIterator * GetIterator( void ){ return this->iterator; }
  43.     //组合数据
  44. void  assembleData( CDraw * draw , ACTION action , int pos = 0 );
  45.     //分析数据
  46. void  parseData( char * buffer , int size );
  47.     //白板通知外部程序
  48. void  ( * OnWB )( void * pContext , CWnd * pWnd , char * buffer , int size );
  49. void  * pContext;
  50. CString userName;
  51. protected:
  52. //{{AFX_VIRTUAL(CDrawView)
  53. virtual void OnDraw(CDC* pDC);
  54. //}}AFX_VIRTUAL
  55. //{{AFX_MSG(CDrawView)
  56. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  57. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  58. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  59. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  60. afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  61. afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  62. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  63. afx_msg void OnOpen();
  64. afx_msg void OnSave();
  65. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  66. afx_msg void OnDrawFirst();
  67. afx_msg void OnDrawLast();
  68. //}}AFX_MSG
  69. DECLARE_MESSAGE_MAP( )
  70. private:
  71. CCriticalSection  session;
  72. CDC       memDC;
  73. CBitmap   memBitmap;
  74. CIterator * iterator;
  75. DRAW_LIST drawList;
  76. CDraw * draw;
  77. int     curDraw;
  78. };
  79. /////////////////////////////////////////////////////////////////////////////
  80. //{{AFX_INSERT_LOCATION}}
  81. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  82. #endif // !defined(AFX_DRAWVIEW_H__90DA4246_4238_4D56_A1AC_3C4B7F356452__INCLUDED_)