#pragma once

class CMainWnd : public CFrameWnd
{
public:
	CMainWnd();
	~CMainWnd();

	LRESULT OnTouch(WPARAM wParam, LPARAM lParam);
	LRESULT OnSoundEvent(WPARAM wParam, LPARAM lParam);
	LRESULT OnVideoEvent(WPARAM wParam, LPARAM lParam);
	LRESULT on_command(WPARAM wParam, LPARAM lParam);

	afx_msg void OnLButtonDown		(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp		(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown		(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp		(UINT nFlags, CPoint point);
	afx_msg void OnMButtonDown		(UINT nFlags, CPoint point);
	afx_msg void OnMButtonUp		(UINT nFlags, CPoint point);
	afx_msg BOOL OnMouseWheel		(UINT nFlags, SHORT zDelta, CPoint point);
	afx_msg void OnMouseMove		(UINT nFlags, CPoint point);
	afx_msg void OnSize				(UINT nType, INT newWidth, INT newHeight);
	afx_msg void OnWindowPosChanged	(WINDOWPOS *posStructure);
	afx_msg void OnMove				(INT newX, INT newY);
	afx_msg void OnActivate			(UINT nState, CWnd *pWndOther, BOOL bMinimized);
	afx_msg BOOL OnNcActivate		(BOOL bActive);
	afx_msg void OnSetFocus			(CWnd *oldWnd);
	afx_msg void OnKeyDown			(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnChar				(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnSysKeyDown		(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnSysKeyUp			(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnClose			();
	afx_msg BOOL OnEraseBkgnd		(CDC *pDc);
	afx_msg void OnPaint			();
	afx_msg void OnCompositionChanged();

	DECLARE_MESSAGE_MAP()

private:
	bool bLeftDown;
	bool g_bShouldBeTopMost;
	
};
