Error: no data exchange control with ID xx”案例

来源:互联网 发布:淘宝哪家猫粮靠谱 编辑:程序博客网 时间:2024/05/29 02:15

“Error: no data exchange control with ID xx”案例

(2010-03-11 19:44:11)

转载

标签:

no

data

exchange

it

分类: Windows用户界面

前两天修改程序,调试时出现“Error: no data exchange control with ID xx”的报错。

查了一下ID,发现resource.h中有此ID。

再查看DoDataExchange中,也有此ID的DDX_Control。

这就怪了。

上网查也没找到解决问题的答案。

晚上睡觉前突然灵光一闪,发现了问题。

我的程序是这样的:1个主对话框,2个子对话框(Style为Child)。开始我为每个子对话框创建了一个Dialog资源,后来发现这两个子字对话框有很多相似的地方,所以决定只用一个Dialog资源的创建类作为父类,2个子对话框都从该父类继承。这是没有问题的,可由于修改代码的疏忽,详细看下面的代码描述。

修改前:CDialog* pDlg1 =new CDialog1(this);
       pDlg1-Create(IDD_DIALOG1, this);
       CDialog* pDlg2 = new CDialog2(this);
       pDlg2->Create(IDD_DIALOG2, this);

修改后:CDialog1和CDialog2都从同一个IDD的Dialog资源类继承而来,Create时第一个参数应该都是IDD_DIALOG1(假设都从IDD_DIALOG1继承而来)。但由于疏忽,我忘了修改pDlg2 Create的第一个参数,因此就出现“Error: no data exchange...”错误。

原创粉丝点击