Video DemoDoc.cpp
上传用户:smdfuse
上传日期:2015-11-06
资源大小:98k
文件大小:4k
源码类别:

图形图象

开发平台:

Visual C++

  1. // Video DemoDoc.cpp : implementation of the CVideoDemoDoc class
  2. //
  3. #include "stdafx.h"
  4. #include "Video Demo.h"
  5. #include "Video DemoDoc.h"
  6. #include "Video DemoView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CVideoDemoDoc
  14. IMPLEMENT_DYNCREATE(CVideoDemoDoc, CDocument)
  15. BEGIN_MESSAGE_MAP(CVideoDemoDoc, CDocument)
  16. //{{AFX_MSG_MAP(CVideoDemoDoc)
  17. // NOTE - the ClassWizard will add and remove mapping macros here.
  18. //    DO NOT EDIT what you see in these blocks of generated code!
  19. //}}AFX_MSG_MAP
  20. END_MESSAGE_MAP()
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CVideoDemoDoc construction/destruction
  23. CVideoDemoDoc::CVideoDemoDoc()
  24. {
  25. // TODO: add one-time construction code here
  26. // TODO: add one-time construction code here
  27. id = NULL;
  28. ms = NULL;
  29. image = false;
  30. video = false;
  31. }
  32. CVideoDemoDoc::~CVideoDemoDoc()
  33. {
  34. }
  35. BOOL CVideoDemoDoc::OnNewDocument()
  36. {
  37. if (!CDocument::OnNewDocument())
  38. return FALSE;
  39. // TODO: add reinitialization code here
  40. // (SDI documents will reuse this document)
  41. return TRUE;
  42. }
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CVideoDemoDoc serialization
  45. void CVideoDemoDoc::Serialize(CArchive& ar)
  46. {
  47. if (ar.IsStoring())
  48. {
  49. // TODO: add storing code here
  50. }
  51. else
  52. {
  53. // TODO: add loading code here
  54. }
  55. }
  56. /////////////////////////////////////////////////////////////////////////////
  57. // CVideoDemoDoc diagnostics
  58. #ifdef _DEBUG
  59. void CVideoDemoDoc::AssertValid() const
  60. {
  61. CDocument::AssertValid();
  62. }
  63. void CVideoDemoDoc::Dump(CDumpContext& dc) const
  64. {
  65. CDocument::Dump(dc);
  66. }
  67. #endif //_DEBUG
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CVideoDemoDoc commands
  70. /************************************************************************/
  71. /* 写入他图像数据                                                       */
  72. /************************************************************************/
  73. void CVideoDemoDoc::SetData(unsigned char *data,int imgWidth,int imgHeight,int bytesPerPixel,int format)
  74. {
  75. // 写入数据到当前文档
  76. }
  77. /************************************************************************/
  78. /* 直接从图像结构中读取 数据                                            */
  79. /************************************************************************/
  80. void CVideoDemoDoc::SetData(ImageData *id)
  81. {
  82. if(id != NULL)
  83. {
  84. this->id = id;
  85. id->coreDoc = (CDocument *)this;  // 设置拥有显示权的文档
  86. image = true;
  87. }
  88. }
  89. /************************************************************************/
  90. /* 刷新View视图                                                         */
  91. /************************************************************************/
  92. void CVideoDemoDoc::RefreshView()
  93. {
  94. POSITION pos = this->GetFirstViewPosition();
  95. CVideoDemoView * view = (CVideoDemoView *)this->GetNextView(pos);
  96. view->RefreshData();
  97. //this->UpdateAllViews(NULL);
  98. }
  99. /************************************************************************/
  100. /* 设置视频源数据                                                       */
  101. /************************************************************************/
  102. void CVideoDemoDoc::SetVideoSource(VideoData *ms)
  103. {
  104. // 如果源数据不是空的,那么加入该源数据
  105. if(ms != NULL)
  106. {
  107. video = true;   // 设置为视频状态
  108. this->ms = ms;   // 设置视频序列
  109. ms->doc = (CDocument *)this;
  110. }
  111. }