You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.9 KiB
C

2 years ago
#pragma once
#include "resource.h"
#include "afxcmn.h"
#include "ExtendSliderCtrl.h"
#include "BtnST.h"
#include "BitmapSlider.h"
#include "tlhelp32.h"
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><E1B9B9>
// Ϊ<><CEAA>֤<EFBFBD><D6A4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>Ϊ25fps<70><73><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3>ٶ<EFBFBD>Ϊ8533
static const int g_DefaultReadLen = 6000; // 8k
static const int g_MaxReadLen = 20480; // 20k
static const int g_MinReadLen = 1024; // 1k
struct struFileStru
{
ULONGLONG FileTotalLen; // <20>ļ<EFBFBD> <20><><EFBFBD><EFBFBD>
ULONGLONG curFilePos; // <20><>ǰ<EFBFBD><C7B0>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
UINT FrameLen; // ÿ֡<C3BF>ֽڴ<D6BD>С
BYTE Buffer[g_MaxReadLen]; // <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ֡<C3BF><D6A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>λ<EFBFBD><CEBB>
struFileStru()
{
FileTotalLen = 0;
curFilePos = 0;
FrameLen = g_DefaultReadLen;
};
void ClearStru()
{
FileTotalLen = 0;
curFilePos = 0;
FrameLen = 8533;
}
};
// CShowReplayDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
class CShowReplayDlg : public CDialogEx
{
DECLARE_DYNAMIC(CShowReplayDlg)
public:
CShowReplayDlg(CWnd* pParent = NULL); // <20><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><ECBAAF>
virtual ~CShowReplayDlg();
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum { IDD = IDD_DLG_REPLAY };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
DECLARE_MESSAGE_MAP()
private:
CString m_HFfilePath; //<2F>򿪻ط<F2BFAABB><D8B7>ļ<EFBFBD>·<EFBFBD><C2B7>
CFile m_ReplayFile; //<2F>ط<EFBFBD><D8B7>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
BOOL m_bFileOpen; //<2F>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7>򿪳ɹ<F2BFAAB3>
struFileStru m_FileInfo; // <20>ط<EFBFBD><D8B7>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
UINT m_TimerID; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UINT m_TimerPeriod; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL m_bIsPlay; // <20><><EFBFBD>ڲ<EFBFBD><DAB2>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>ͣ
BOOL m_bPauseSliderReflect; // <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
BOOL m_bService; // <20>жϺ<D0B6>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>طŽ<D8B7><C5BD>水ť
CButtonST m_Btn_OpenFile; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
CButtonST m_Btn_PlayPause; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ
CButtonST m_Btn_Stop; // ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
CButtonST m_Btn_SpeedUp; // <20><><EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD>
CButtonST m_Btn_SpeedDown; // <20><><EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD>
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
BOOL m_bTransParent; // TRUEΪ<45><CEAA>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ΪFALSE
public:
//CExtendSliderCtrl m_SliderReplayRatio; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CBitmapSlider m_SliderReplayRatio; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bitmap
virtual BOOL OnInitDialog();
void StartTimer(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
void StopTimer(); // <20>رն<D8B1>ʱ<EFBFBD><CAB1>
void ReadAndPlay(); // <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetFileReplayRatio(double ratio); // <20><><EFBFBD>ûطŽ<D8B7><C5BD><EFBFBD>
afx_msg void OnBnClickedBtnOpenfile(); // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
// <20><><EFBFBD>ż<EFBFBD><C5BC><EFBFBD>ͣ<EFBFBD><CDA3>Ƶ
afx_msg void OnBnClickedBtnFileplaypause();
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
afx_msg void OnBnClickedBtnFilestop();
// <20><><EFBFBD>Ž<EFBFBD><C5BD>ȱ<EFBFBD><C8B1><EFBFBD>
afx_msg void OnBnClickedBtnFileslow();
// <20><><EFBFBD>Ž<EFBFBD><C5BD>ȱ<EFBFBD><C8B1><EFBFBD>
afx_msg void OnBnClickedBtnFilefast();
// ѡ<><D1A1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ʵʱ/<2F>طţ<D8B7>Ĭ<EFBFBD><C4AC>ʵʱ<CAB5><CAB1>
afx_msg void OnCbnSelchangeComboxPlaytype();
// <20>رմ<D8B1><D5B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
afx_msg void OnDestroy();
// afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
afx_msg LRESULT OnBitmapSliderMoving(WPARAM wParam, LPARAM lParam);
// <20>жϽ<D0B6><CFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD> <20><><EFBFBD><EFBFBD><30><CBB5>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD GetProcessIdFromName(LPCTSTR name);
virtual BOOL PreTranslateMessage(MSG* pMsg);
// CH92<39><32><EFBFBD>޸<EFBFBD>DCΪEO/IR
LRESULT ReturnPayloadTypeWarning(WPARAM wParam, LPARAM lParam);
};