RangeDlg.cpp
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. // RangeDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "XvidQuantsParser.h"
  5. #include "RangeDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CRangeDlg dialog
  13. CRangeDlg::CRangeDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CRangeDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CRangeDlg)
  17. m_len = 0;
  18. m_start = 0;
  19. m_stop = 0;
  20. m_full = 0;
  21. //}}AFX_DATA_INIT
  22. }
  23. void CRangeDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CRangeDlg)
  27. DDX_Text(pDX, IDC_EDIT_LEN, m_len);
  28. DDX_Text(pDX, IDC_EDIT_START, m_start);
  29. DDX_Text(pDX, IDC_EDIT_STOP, m_stop);
  30. DDX_Text(pDX, IDC_EDIT_FULL, m_full);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CRangeDlg, CDialog)
  34. //{{AFX_MSG_MAP(CRangeDlg)
  35. ON_EN_UPDATE(IDC_EDIT_START, OnUpdateEditStart)
  36. ON_EN_UPDATE(IDC_EDIT_STOP, OnUpdateEditStop)
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CRangeDlg message handlers
  41. //------------------------------------------------------------------------------
  42. BOOL CRangeDlg::OnInitDialog() 
  43. {
  44. CDialog::OnInitDialog();
  45. m_start = sframe;
  46. m_stop = eframe;
  47. m_len = eframe-sframe;
  48. m_full = fcount;
  49. UpdateData(FALSE);
  50. return TRUE;  // return TRUE unless you set the focus to a control
  51.               // EXCEPTION: OCX Property Pages should return FALSE
  52. }
  53. //------------------------------------------------------------------------------
  54. void CRangeDlg::SetStart(int start)
  55. {
  56. sframe = start;
  57. }
  58. //------------------------------------------------------------------------------
  59. int CRangeDlg::GetStart(void)
  60. {
  61. return sframe;
  62. }
  63. //------------------------------------------------------------------------------
  64. void CRangeDlg::SetEnd(int end)
  65. {
  66. eframe = end;
  67. }
  68. //------------------------------------------------------------------------------
  69. int CRangeDlg::GetEnd(void)
  70. {
  71. return eframe;
  72. }
  73. //------------------------------------------------------------------------------
  74. void CRangeDlg::SetFrameCount(int frames)
  75. {
  76. fcount = frames;
  77. }
  78. //------------------------------------------------------------------------------
  79. void CRangeDlg::OnUpdateEditStart() 
  80. {
  81. UpdateData(TRUE);
  82. m_len = m_stop - m_start;
  83. UpdateData(FALSE);
  84. }
  85. //------------------------------------------------------------------------------
  86. void CRangeDlg::OnUpdateEditStop() 
  87. {
  88. UpdateData(TRUE);
  89. m_len = m_stop - m_start;
  90. UpdateData(FALSE);
  91. }
  92. //------------------------------------------------------------------------------
  93. void CRangeDlg::OnOK() 
  94. {
  95. UpdateData(TRUE);
  96. //As proof as i felt like doing at the moment...
  97. if (m_len >  m_full)
  98. {
  99. AfxMessageBox("Invalid interval: Length of range is longer than full clip!");
  100. }
  101. else
  102. {
  103. if (m_len < 0)
  104. {
  105. AfxMessageBox("Invalid interval: Length of range is under 0 frames!");
  106. }
  107. else
  108. {
  109. if (m_stop > m_full)
  110. {
  111. AfxMessageBox("Invalid interval: End of range is after end of full clip!");
  112. }
  113. else
  114. {
  115. if (m_stop < 0 || m_start < 0)
  116. {
  117. AfxMessageBox("Invalid interval: Not good... Think a little...");
  118. }
  119. else
  120. {
  121. sframe = m_start;
  122. eframe = m_stop;
  123. }
  124. }
  125. }
  126. }
  127. CDialog::OnOK();
  128. }