#pragma once
|
#include "stdafx.h"
|
#include "event\NotifyCenter.h"
|
#include "Shape2D.h"
|
|
typedef struct tagCaptureArgs
|
{
|
HWND hWnd;//Ô´´°¿Ú¾ä±ú
|
POINT pt;//Êó±êËùÔÚµÄλÖÃ
|
}*LPCaptureArgs;
|
|
enum EmCaptureStatus
|
{
|
//Õý´¦ÓÚÑ¡ÔñÇøÓò״̬
|
CaptureStatus_SelectArea = 0,
|
|
//Õý´¦ÓÚÐÞ¸ÄÇøÓò״̬
|
CaptureStatus_ModifyArea,
|
|
//Õý´¦ÓÚ±à¼×´Ì¬
|
CaptureStatus_Edit
|
};
|
|
enum EmExitEvent
|
{
|
CaptureEvent_Exit, //Õý³£Í˳ö
|
CaptureEvent_Save, //±£´æÍ˳ö
|
CaptureEvent_Complete, //µã»÷Íê³ÉÍ˳ö
|
CaptureEvent_DirectSend //µã»÷Ö±½Ó·¢ËÍ
|
|
};
|
// CMBCaptureWnd
|
|
class AFX_EXT_CLASS CMBCaptureWnd
|
: public SHostWnd,public SDpiHandler<CMBCaptureWnd>
|
{
|
public:
|
CMBCaptureWnd(BOOL bHaveComplete = TRUE,BOOL bHaveDirectSend = TRUE);
|
virtual ~CMBCaptureWnd();
|
private:
|
BOOL m_bLayoutInited;
|
CCollection<Bitmap*> m_arrUndoImages;
|
CShape2D* m_pShape;//µ±Ç°Ñ¡ÔñµÄÐÎ×´
|
//COIToolBarCtrl* m_pToolBar;
|
// CToolSettingCtrl* m_pToolSetting;
|
Bitmap* m_pScreenBmp;//ÆÁĻλͼָÕë
|
Rect m_rcExcludeClip;//µ±Ç°Êó±êËùÔÚÇøÓò
|
HWND m_hLastPointWnd;
|
// CResourceManager m_rcManager;
|
//COIMagnifierCtrl* m_pMagnifierCtrl;
|
//Image* m_pMagnifierImg;
|
EmCaptureStatus m_status;
|
Point m_startPoint;
|
Point m_endPoint;
|
bool m_bDrawSelectArea;
|
Rect m_rcLeftTop;//×óÉϽÇ
|
Rect m_rcTop;//ÉÏ·½
|
Rect m_rcRightTop;//ÓÒÉÏ
|
Rect m_rcLeft;
|
Rect m_rcRight;
|
Rect m_rcLeftBottom;
|
Rect m_rcBottom;
|
Rect m_rcRightBottom;
|
int m_nDirect;//ÍÏ×§·½Ïò£¬Ä¬ÈÏÊÇHTNOWHERE
|
bool m_bDrop;//ÊÇ·ñÕýÔÚÍÏ×§
|
bool m_bMouseDown;
|
UINT m_nSelectedControlId;
|
int m_nImageIndex;//ͼƬË÷Òý
|
//COIUIRichEdit* m_pEdit;
|
EmExitEvent m_exitEvent;
|
CString m_strPath;
|
BOOL m_bHaveComplete;
|
BOOL m_bHaveDirectSend;
|
|
HCURSOR m_hCursor;
|
int m_cxStart;
|
int m_cyStart;
|
int m_cxScreen;
|
int m_cyScreen;
|
public:
|
void OnClose()
|
{
|
AnimateHostWindow(200, AW_CENTER | AW_HIDE);
|
DestroyWindow();
|
}
|
void OnMaximize()
|
{
|
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE);
|
}
|
void OnRestore()
|
{
|
SendMessage(WM_SYSCOMMAND, SC_RESTORE);
|
}
|
void OnMinimize()
|
{
|
SendMessage(WM_SYSCOMMAND, SC_MINIMIZE);
|
}
|
|
int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
BOOL OnInitDialog(HWND wndFocus, LPARAM lInitParam);
|
|
protected:
|
EVENT_MAP_BEGIN()
|
EVENT_MAP_END()
|
BEGIN_MSG_MAP_EX(CMBCaptureWnd)
|
MSG_WM_CREATE(OnCreate)
|
MSG_WM_INITDIALOG(OnInitDialog)
|
MSG_WM_CLOSE(OnClose)
|
CHAIN_MSG_MAP(SHostWnd)
|
REFLECT_NOTIFICATIONS_EX()
|
CHAIN_MSG_MAP(SDpiHandler<CMBCaptureWnd>)
|
END_MSG_MAP()
|
private:
|
void Init();
|
};
|