弹出提示对话框

来源:互联网 发布:自动化出国转编程 编辑:程序博客网 时间:2024/04/29 01:32


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;
}