#if !defined(AFX_REFBUTTON_H__B08A9325_FB99_4B02_8153_3951BF6E7D4D__INCLUDED_)
#define AFX_REFBUTTON_H__B08A9325_FB99_4B02_8153_3951BF6E7D4D__INCLUDED_

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

#include "RefDirButton.h"

/////////////////////////////////////////////////////////////////////////////
// CRefButton ウィンドウ

namespace mwlmfc{

class CRefButton : public CButton
{
private:
	//CWnd *m_pAttachedWnd;
	int m_nAttachedControlId;
	HWND m_hParentWnd;
	//CString m_cstrRefWindowTitle;

	//	OpenFileDialog()用
	//CWnd *m_pParentDialog;
	CWnd *m_pWnd;	//	Dialog or Control
	const char* m_szpFilter;
	DWORD m_dwFlags;

// コンストラクション
public:
	CRefButton();

// アトリビュート
public:

// オペレーション
public:
	//void RefAttachControl( CWnd &wnd ){ m_pAttachedWnd = &wnd; }
	//void AttachRefControl( CWnd &wnd ){ m_pAttachedWnd = &wnd; }
	//void SetRefWindowTitle( const char* szTitle ){ m_cstrRefWindowTitle = szTitle; }

	//	コントロールIDによる方式
	void Setup( int nAttachControlId, CWnd* pParentDialog, const char* szpFilter, DWORD dwFlags=DEFAULT_OFD_OFN_FLAGS ){
		m_nAttachedControlId = nAttachControlId;
		m_pWnd = pParentDialog;
		m_szpFilter = szpFilter;
		m_dwFlags = dwFlags;
		m_hParentWnd = NULL;
	}

	//	コントロールクラスへのポインタによる方式
	void Setup( CWnd* pAttachControl, HWND hPraentWnd, const char* szpFilter, DWORD dwFlags=DEFAULT_OFD_OFN_FLAGS ){
		m_nAttachedControlId = -1;
		m_pWnd = pAttachControl;
		m_szpFilter = szpFilter;
		m_dwFlags = dwFlags;
		m_hParentWnd = hPraentWnd;
	}

// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CRefButton)
	//}}AFX_VIRTUAL

// インプリメンテーション
public:
	virtual ~CRefButton();

	// 生成されたメッセージ マップ関数
protected:
	//{{AFX_MSG(CRefButton)
	afx_msg void OnClicked();
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

}//namespace mwlmfc

/////////////////////////////////////////////////////////////////////////////

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

#endif // !defined(AFX_REFBUTTON_H__B08A9325_FB99_4B02_8153_3951BF6E7D4D__INCLUDED_)
