CurveImpAsk askResult = CurveImpAsk::
自定义一个对话框,这个对话框的目的是在界面的几种选择中,选中其中一个,将枚举的值传回去
自定义变量
CString m_well;
CString m_curve;
CurveImpAsk m_result;
int m_iAll;
.h
enum CurveImpAsk
{
None = 0,
Replace = 1,
Splicing = 2,
Keep = 3,
Cancel = 4
}
class CDlgCurveImpAsk : public BaseDialog
{
DECLARE_DYNMIC(CDlgCurveImpAsk)
public:
CDlgCurveImpAsk(CWnd* pParent = NULL);
virtual ~CDlgCurveImpAsk();
enum{ IDD = IDD_DLG_CURVEIMP_ASK};
public:
CString m_well;
Cstring m_curve;
CurveImpAsk m_result;
int m_iAll;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
afx_msg void OnBnClickedBtnReplace();
DECLARE_MESSAGE_MAP()
private:
void SetResult(CurveImpAsk val){ m_result = val; }
}
.cpp
#include "stdafx.h"
#include "DlgCurveImpAsk.h"
// CDlgAskSWImportCurve 对话框
IMPLEMENT_DYNAMIC(CDlgCurveImpAsk, jgBaseDialog)
CDlgCurveImpAsk::CDlgCurveImpAsk(CWnd* pParent /*=NULL*/)
: jgBaseDialog(CDlgCurveImpAsk::IDD, pParent, ::GetApp(), ::GetName())
{
m_result = CurveImpAsk::None;
m_iAll = 0;
}
void CDlgCurveImpAsk::DoDataExchange(CDataExchange* pDX)
{
jgBaseDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_STATIC_WELL, m_well);
DDX_Text(pDX, IDC_STATIC_CURVE, m_curve);
DDX_Check(pDX, IDC_CHECK_ALL, m_iAll);
}
BEGIN_MESSAGE_MAP(CDlgCurveImpAsk, jgBaseDialog)
ON_BN_CLICKED(IDC_BTN_REPLACE, &CDlgCurveImpAsk::OnBnClickedBtnReplace)
ON_BN_CLICKED(IDC_BTN_SPLICING, &CDlgCurveImpAsk::OnBnClickedBtnSplicing)
ON_BN_CLICKED(IDC_BTN_KEEP, &CDlgCurveImpAsk::OnBnClickedBtnKeep)
END_MESSAGE_MAP()
void CDlgCurveImpAsk::OnBnClickedBtnReplace()
{
SetResult( CurveImpAsk::Replace );
jgBaseDialog::OnOK();
}
使用:
AFX_MANAGE_STATE( AfxGetStaticModuleState() );
CDlgCurveImpAsk dlgAsk;
dlgAsk.m_well = m_wellID;
dlgAsk.m_curve = totalCurveData.at( j )->Name;
if( IDOK == dlgAsk.DoModal() )
{
askTmp = dlgAsk.m_result;
if( 1 == dlgAsk.m_iAll )
{
askResult = dlgAsk.m_result; //后续循环不再询问
}
}
else
{
askTmp = askResult = CurveImpAsk::Cancel;
}