#pragma once

#include "resource.h"

#include <deque>  // 队列
using namespace std;

// 包含情报结构体文件
#include "QBStru.h" 

#include "OpencvImgShell.h"  // opencv支持

#include "CallBackDef.h"

// 界面美化按钮
#include "BtnST.h"

// CFastLookUpDlg 对话框

class CFastLookUpDlg : public CDialogEx
{
	DECLARE_DYNAMIC(CFastLookUpDlg)

public:
	CFastLookUpDlg(CWnd* pParent = NULL);   // 标准构造函数
	virtual ~CFastLookUpDlg();

// 对话框数据
	enum { IDD = IDD_DLG_FAST_LOOKUP_IMGS };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:

	// 设置图像数据
 	void SetImgData(const ImgStru &img);
 
 	// 显示图像数据
 	int ShowImgData();

	// 清理内存记忆
	void ClearMemory();

	// 是否有记忆图像
	bool isEmpty();

	// 设置父窗口
	void SetParentPt(void *pt);

private:

	void *m_ptrParent;  // 父窗口指针

	// 数据存储队列
	deque<ImgStru> m_ImgStruDeque;

	IplImage* m_SrcFrame;

	int m_iPage; // 第几页

	CRect m_picCtrlRect[9]; // 图像控件位置


	CButtonST m_bFastLookUpLeft; // 向左翻页
	CButtonST m_bFastLookUpRight;// 向右翻页

private:
 
	// 在控件id 显示图像
 	void showOneImg(int ID, const ImgStru &img);

	// 判断一个点是否在矩形框内
	bool pointRectTest(CPoint pt, CRect rect);

	afx_msg void OnBnClickedBtnPrePage();
	afx_msg void OnBnClickedBtnNextPage();
	afx_msg void OnPaint();
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	virtual BOOL OnInitDialog();
};