#pragma once
class MxTransparentCommandImp;
class COcxDoc;
class MxMessages;

// 全局，与控件对象相关的，消息处理功能。
class MXDRAWDLL MessagProcessor
{
public:
	enum ProcessorType
	{
		kProcessorAll = 0,
		kProcessorCommandsCurrently = 1,
		kProcessorNoCommandsCurrently = 2,
	};
	MessagProcessor(COcxDoc* pDoc);
	virtual ~MessagProcessor(void);

	virtual LRESULT  TouchesBegan(MxMessages *pTouches) { return 0;}

	virtual LRESULT  TouchesMoved(MxMessages *pTouches) { return 0;}

	virtual LRESULT  TouchesEnded(MxMessages *pTouches) { return 0;}

	virtual LRESULT  TouchesCancelled(MxMessages *pTouches) {return 0;}

	virtual LRESULT  TouchesEvent(MxMessages *pTouches){return 0;};

	virtual LRESULT  MouseEvent(MxMessages *pTouches) { return 0; };

	void Regist(int iType = kProcessorNoCommandsCurrently);
	void UnRegist();

	void NotifyUpDisplay();
	
public:
	MxTransparentCommandImp* m_pImp;
};