对话框只是属于用户界面(表示层)。当在对话框中确定之后,将对话框中的数据传到下一层:业务层。业务层调用算法来进行计算。示例代码如下:
class CDataInputDlg : public CDialog
{
public:
   int m_iParamA;
   ...
}class CCalcManager
{
    int m_iParam[3];
    int m_iResult;
public:
    BOOL SetParam(int iParam, int iIndex) // 输入参数到本类中。
    {  
        if(iIndex > 3 || iIndex < 0) return FALSE;
        m_iParam[iIndex] = iParam;
        return TRUE;
    };
    int MakeCalculate() // 调用响应算法进行计算,下面是简化版
    {
        m_iResult = 0;
        for(int i=0; i<3; i++){
            m_iResult += m_iParam[i];
        }
        return m_iResult; // 返回计算结果
    };
    int GetResult(void){return m_iResult;} // 其它时刻取得计算结果
    BOOL Create(){ return TRUE; }; // 创建函数
   ...
}class CMyFrame : public CFrameWnd // 用户界面
{
   CCalcManager m_CalcManager; // 声明一个CCalcManager的成员变量,
                               // 该变量也可以声明为全局。
   ...
}
void CMyFrame::OnCreate(...)
{
    m_CalcManager.Create(); // 初始化该成员变量。
   ...
}void CMyFrame::OnMenuDataInput(void) // 其中一个数据输入对话框
{                                    // 其他对话框代码和这个类似。
    int iParam = 0;
    CDataInputDlg dlg;
    if( IDOK == dlg.DoModel() ){
        iParam = dlg.m_iParamA;
        m_CalcManager.SetParam(iParam, 0); // 设置(存储)该变量。
    }
}
void CMyFrame::OnMenuCalc(void) // 计算
{
    m_CalcManager.MakeCalculate();
    DisplayResult(); // 立即显示结果
}
void CMyFrame::DisplayResult(void) // 显示结果
{
    CString str;
    int iResult = m_CalcManager.GetResult();
    str.Format("Result is %d",iResult);
    AfxMessageBox(str);
}