请高手帮忙改VC程序

我在改别人的程序,其中有一处不会改。在对话框资源中有个inputdialog。inputdialog.h中://CInputDialogdialogclassCInput... 我在改别人的程序,其中有一处不会改。在对话框资源中有个inputdialog。
inputdialog.h中:
// CInputDialog dialog

class CInputDialog : public CDialog
{
// Construction
public:
CInputDialog(CWnd* pParent = NULL); // standard constructor

// Dialog Data
//{{AFX_DATA(CInputDialog)
……
//}}AFX_DATA

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CInputDialog)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(CInputDialog)
functions here
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
BYTE m_nValueType;
CString m_sCaption;
public:
BOOL ShowInputDialog(CString& sInputValue,BYTE& nPidNum,CString sText="请输入值",CString sNum="请输入新的PID号:",CString sCaption="请输入值");
BOOL ShowInputDialog(double& nInputValue,BYTE& nSP,CString sText="请输入值",CString sNum="请输入新的设置点:",CString sCaption="请输入值");
};

//{{AFX_INSERT_LOCATION}}

#endif // !defined

inputdialog.cpp中:
// InputDialog.cpp : implementation file
//

#include "stdafx.h"
#include "mocvd.h"
#include "InputDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

// CInputDialog dialog

CInputDialog::CInputDialog(CWnd* pParent /*=NULL*/)
: CDialog(CInputDialog::IDD, pParent)
{
}

void CInputDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CInputDialog)
DDX_Text(pDX, IDC_TEXT, m_sText);
DDX_Text(pDX, IDC_NUM, m_sNum);
if (0==m_nValueType) //数字型文本框
{
DDX_Text(pDX, IDC_EDIT_VALUE, m_nValue);
DDX_Text(pDX, IDC_EDIT_NUM, m_nSP);
}
else //字符型文本框
{
DDX_Text(pDX, IDC_EDIT_VALUE, m_sValue);
DDX_Text(pDX, IDC_EDIT_NUM, m_nPidNum);
}
//}}AFX_DATA_MAP
}

BOOL CInputDialog::ShowInputDialog(CString& sInputValue,BYTE& nPidNum,CString sText,CString sNum,CString sCaption)
{
m_nValueType = 1; //字符型文本框
……
if (IDOK == this->DoModal()){
sInputValue = m_sValue;
nPidNum = m_nPidNum;
return TRUE;
}
else
return FALSE;
}

BOOL CInputDialog::ShowInputDialog(double& nInputValue,BYTE& nSP,CString sText,CString sNum,CString sCaption)
{
m_nValueType = 0; //数字型文本框
……
if (IDOK == this->DoModal()){
nInputValue = m_nValue;
nSP = m_nSP;
return TRUE;
}
else
return FALSE;
}

BEGIN_MESSAGE_MAP(CInputDialog, CDialog)
//{{AFX_MSG_MAP(CInputDialog)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

希望实现由m_nValueType=0 或1控制,响应CString sInputValue和double nInputValue的change消息。

急,解决者给200分。联系方式:qq176114049
由于baidu发贴字数要求不能把全部代码发上来。如有人能解决可以加qq。下面有我写的一部分,但是报错,请高手修改:
inputdialog.h里加入:
public:
BOOL EditExchangeV(CString& sInputValue,BYTE& nPidNum);
BOOL EditExchangeP(double& nInputValue,BYTE& nSP);

protected:
virtual void CheckEditExchange(BYTE& m_nValueType,double& nInputValue,BYTE& nSP,CString& sInputValue,BYTE& nPidNum);

inputdialog.cpp里加入:
void CInputDialog::CheckEditExchange(BYTE& m_nValueType,double& nInputValue,BYTE& nSP,CString& sInputValue,BYTE& nPidNum)
{
BEGIN_MESSAGE_MAP(CInputDialog)
//{{AFX_MSG_MAP(CInputDialog)
if (0==m_nValueType) //数字型文本框
{
ON_EN_CHANGE(IDC_EDIT_VALUE, EditExchangeP);
}
else //字符型文本框
{
ON_EN_CHANGE(IDC_EDIT_VALUE, EditExchangeV);
}
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

}

void EditExchangeP(double& nInputValue,BYTE& nSP);
{
AfxMessageBox("SP!");
}
void EditExchangeV(CString& sInputValue,BYTE& nPidNum);
{
AfxMessageBox("SV!");
}
展开
 我来答
xtjmdw
2007-08-22 · TA获得超过278个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:232万
展开全部
可以用sendmessage函数实现...
消息映射里似乎不能有if...else其中它语句...
建立两个消息处理函数...一个是m_nValueType=0执行的..
一个是m_nValueType=1...在另一个响应中然后判断m_nValueType值...根据1或0发送sendmessage消息...激活对应的函数..!!

愚见!
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
干兀31
2007-08-22 · TA获得超过301个赞
知道小有建树答主
回答量:818
采纳率:0%
帮助的人:532万
展开全部
最近VC学习中~~~,VC学会了,那软件可就好玩了~~
不过要学的东西实在太多,顺便问一下这哥们有MSDN系统不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友32cdd9945
2007-08-22 · TA获得超过1374个赞
知道大有可为答主
回答量:2429
采纳率:100%
帮助的人:1909万
展开全部
BEGIN_MESSAGE_MAP
可以在自己的函数里面随便乱用?
我对MFC不熟。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0ae8ffba6
2007-08-22 · 超过10用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:45.7万
展开全部
好厉害啊,我不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式