#if !defined(AFX_SETTLEDLG_H__D292757A_A95F_4969_8D9A_45521B26BE73__INCLUDED_)
#define AFX_SETTLEDLG_H__D292757A_A95F_4969_8D9A_45521B26BE73__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SettleDlg.h : ヘッダー ファイル
//

#include "Settle.h"

/////////////////////////////////////////////////////////////////////////////
// CSettleDlg ダイアログ

class CSettleDlg : public CDialog
{
	// 
	class REEntLock {
		// 
		bool &test;
		bool locked;
	public:
		// 
		REEntLock(bool &test): test(test), locked(false) { }
		// 
		~REEntLock() {
			if (locked) test = false;
		}
		// 
		bool Lock() {
			if (test)
				return false;
			test = true;
			locked = true;
			return true;
		}

	};

public:
	// 
	UINT m_timer, m_tick;
	// 
	bool m_timer_re_ent;
	// 
	bool m_enableTimer;

	// 
	CSettleDlg(CWnd* pParent = NULL);   // 標準のコンストラクタ

	// 
	void SetState(int x)
	{
		m_iState = x;

		UpdateData(false);

		UpdateWindow();
	}

	// 
	void enableWindows(const UINT *nIDs, bool f);
	//
	void validates();

// ダイアログ データ
	//{{AFX_DATA(CSettleDlg)
	enum { IDD = IDD_SETTLE };
	int		m_iState;
	//}}AFX_DATA


// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CSettleDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV サポート
	//}}AFX_VIRTUAL

// インプリメンテーション
protected:

	// 生成されたメッセージ マップ関数
	//{{AFX_MSG(CSettleDlg)
	afx_msg void OnButtonSettle();
	afx_msg void OnCheckTimer();
	afx_msg void OnButtonLoad();
	virtual BOOL OnInitDialog();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnClose();
	afx_msg void OnButtonSave();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。

#endif // !defined(AFX_SETTLEDLG_H__D292757A_A95F_4969_8D9A_45521B26BE73__INCLUDED_)
