关于VC++ 2005下开发ActiveX控件时,属性和属性页控件值关联的困惑

以下内容如果不明白,可以看一下孙鑫<<VC深入详解>>教程第18课的"clock"控件实例,内容摘自网友帖,因本人亦有此困惑,故记之。


我刚开始学习ActiveX开发,使用MFC。我对ActiveX控件新增一个名为"Caption",类型为int的属性.我在ActiveX的属性页上新增一个Edit control,想通过该Edit control来直接设置"Caption"属性的值.
现在问题来了:
在VC6.0中开发时可以通过class wizard的"增加成员变量"来直接将该Edit control与"Caption"属性关联.生成的代码在DoDataExchange方法中如下:

void CCircPropPage::DoDataExchange(CDataExchange* pDX)
{
//{{AFX_DATA_MAP(CCircPropPage)
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption") );//(1)
DDX_Text(pDX, IDC_CAPTION, m_caption);
//}}AFX_DATA_MAP
DDP_PostProcessing(pDX);
}

其中(1)行的最一个参数:_T("Caption") ,就是该Edit control所关联的属性名.

但 在VC++ 2005中,却没有直接将Edit control与属性相关联的功能.在VC++ 2005中在Edit control上右击,选择"添加变量",打开"添加成员变量向导",但该向导只能添加与Edit control关联的"成员变量",无法将该Edit control 与"Caption"属性关联.VC++ 2005生成的代码如下:

void CCircPropPage::DoDataExchange(CDataExchange* pDX)
{
//{{AFX_DATA_MAP(CCircPropPage)
//DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption") );//(1)//这是VC6生成的代码,这里留作参照
//DDX_Text(pDX, IDC_CAPTION, m_caption);//这也是VC6生成的
//}}AFX_DATA_MAP
DDP_PostProcessing(pDX); //(2)
DDX_Text(pDX, IDC_CAPTION1, m_caption1);//<--(3) VC++产生的代码.
}

其 中第(3)行为VC++ 2005产生的代码.它并没有调用DDP_系列的函数,也将代码放在了AFX_DATA_MAP宏的外面、第(2)行的下面(第2行函数的功能为:结束属 性值与Control的转换),也就是说VC++ 2005并没有将Edit control与属性关联的功能!??
虽然可以通过手动添加方式解决,但我总觉得VC++ 2005应该提供如此功能,不知道有没有朋友遇到过与我相同的问题,如何解决之?

难道,正如别人所说,VC2005比VC6是一个退步。

posted on 2007-07-05 10:03 王光平 阅读(3328) 评论(4)  编辑 收藏 引用 所属分类: 编程技术

评论

# re: 关于VC++ 2005下开发ActiveX控件时,属性和属性页控件值关联的困惑 2009-06-28 12:29 一个好人

只能说明你不会用 你是门外汉  回复  更多评论   

# re: 关于VC++ 2005下开发ActiveX控件时,属性和属性页控件值关联的困惑 2010-03-11 16:45 艾丝凡

他根本不懂MFC@一个好人
  回复  更多评论   

# re: 关于VC++ 2005下开发ActiveX控件时,属性和属性页控件值关联的困惑 2010-06-28 17:44 javaecho

确实需要手动添加,vs2008中亦是如此  回复  更多评论   

# re: 关于VC++ 2005下开发ActiveX控件时,属性和属性页控件值关联的困惑 2012-03-05 15:32 嗖嗖嗖

回复都特么是SB么?这明显是新手刚学,知道就说,不知道就滚,谁特么不是从门外汉过来的?  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

留言簿(4)

随笔分类

随笔档案

搜索

最新评论