http://www.cnblogs.com/panweishadow/archive/2013/07/25/3214629.html

参考:http://blog.csdn.net/fddqfddq/article/details/7874706

详细介绍如何在MFC中使用DataGrid控件实现数据绑定。

1:新建一个MFC应用程序:DataGridDemo

  

2:选择基于对话框,然后一直下一步,直到完成。

  

3:为了简单,清除多于的东西。

  

4:现在要插入一个DataGrid控件,前提是你已经将控件添加到工具箱了。

  VS2010默认没有这个控件。添加办法如下:

  在工具栏空白处右键,选中选择项,弹出一个选择工具项的对话框,选中“COM组件”选 项卡

  点击“选择”按钮,因为我是win7 64位的系统,所以路径为SysWOW64,如果为32位请找system32。如下图:

  

5:选择MSDATGRD.OCX。选择后,确定。工具箱中应该有了DataGrid控件了。

  

6:现在要注册这个组件。

  这一步非常重要!

  需要下载文件:MSDATGRD.OCX

  下载地址:http://download.csdn.net/detail/shijiufeng/3198530

  注册方法:命令行  regsvr32.exe C:\Windows\System32\MSDATGRD.OCX

  注意:如果出现"can not initialize data binding“的错误,则还需要注册MSSTDFMT.DLL文件

7:成功注册后现在就来添加DataGrid控件了。

在DataGridDemo界面右键选择:"插入Acitve控件"然后选择DataGrid,或者直接从工具箱上拖上来。

  

8:将DataGrid的ID和Caption的属性修改为IDC_DATAGRID_TEST  如图:

  

  9:关键的一步:在解决方案上右键,添加-类-ActiveX控件中的MFC类

  

10:点击“添加”按钮后在选择“文件”找到刚才的控件的位置,这里选择Column和Columns两个接口,其它的也可以选择,但是不要选择IDataGrid接口:

  因为IDataGrid接口选择后生成的类CDataGrid继承的是COleDispatchDriver类,我们需要的是CDataGrid继承CWnd类。

  至于类CDataGrid的文件CDataGrid.h我们想其它办法解决。

  

11:我们从另外的地方将DataGrid.h、DataGrid.cpp复制到项目中。

其它 的设置如在DataGridDemoDlg.h : 头文件中添加引用与代码

 // DataGridDemoDlg.h : 头文件
#include "DataGrid.h"
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
CDataGrid m_dbTest;
//数据库连接与数据集

ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;

  在 DataGridDemoDlg.cpp : 实现文件中添加引用与代码

#include "CColumn.h"
#include "CColumns0.h"
#include "DataGrid.h"
// TODO: 在此添加额外的初始化代码
//------初始化数据库------//
//AfxOleInit();
m_pConnection.CreateInstance("ADODB.Connection");
//------------------------//
try
{
m_pConnection->ConnectionTimeout = 8;
m_pConnection->PutCursorLocation(adUseClient);
m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data     Source=D:\\DataBase\\LoginDemo.accdb;","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败");
return FALSE;
}
//---------初始化记录集对象---------------//
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
//打开记录集
m_pRecordset->Open("SELECT * FROM BALANCE",_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("aaa连接数据库错误信息:%s",e.ErrorMessage());
AfxMessageBox(temp);
return 0;
}
m_dbTest.SetRefDataSource(NULL);
m_dbTest.SetRefDataSource((LPUNKNOWN)m_pRecordset);
m_dbTest.Refresh();
//另外要注意如下方法内红色部分。
void CData_Disp2Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX,IDC_DATAGRID_TEST,m_dbTest);
}

最后结果如下:

12:可能出错的地方:

  m_dbTest.SetRefDataSource(NULL); 
  m_dbTest.SetRefDataSource((LPUNKNOWN)m_pRecordset);

  如果用生成的CDataGrid.h,里面的方法为putref_DataSource

  DDX_Control(pDX,IDC_DATAGRID_TEST,m_dbTest); 这句话可能也会报错,

  因为VS2010生成的类CDataGrid继承的是COleDispatchDriver类,我们需要的是CDataGrid继承CWnd类。

所以最好还是用其它地方的DataGrid.h和DataGrid.cpp文件来替换Vs2010生成的。

最后提供这个例子的代码下载:

在我的下载资源里面:http://download.csdn.net/detail/fddqfddq/4505306

------------------------------

我按照如上方法操作之后 在添加控件的时候弹出对话框 "能实例化控件******,因为这需要设计时授权"

解决方法:摘自http://blog.csdn.net/drbinzhao/article/details/6667986

VS2008向工具箱中添加串口控件,步骤为工具——选择工具箱项,在出现的选择工具箱项窗体中选择COM组件勾选Microsoft Communications Control, version 6.0,点击确定,你的工具箱中就会出现一个小电话标识的控件,这个控件就是串口控件,
如果是初次使用,可能会遇到一个问题“未能实例化ActiveX控件 因为这需要设计时授权”。

控件时出现“未能实例化控件******,因为这需要设计时授权”,请拿 出VS.NET 2003的安装盘,在 \VisualStudio2003Inst\Extras\VB6 Controls目录下应该能找到vb6controls.reg这个文件,双击它,把这个信息 添加到注册表中去,就可以了

没有设计期授权,所以无法在设计器中使用,你需要一个授权文件。
把下面的文本保存为VB6Controls.reg文件,包含所有 VB 6.0 控件设计时的授权信息。你可以通过 RegEdit.exe 将 .reg 中的控件注册信息添加到你的注册表中,从而注册这些控件。

如果你在打开对话框时弹出 "The ActiveX control "Grid Control" could not be instantiated because it requires a design-time license"这个对话框时,在VC安装盘中找到vb6controls.reg,双击导入注册表就OK了,没有这个文件的可以COPY下面的代码另存 为*.reg,导入注册表就行了

REGEDIT
HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights.

// Masked Edit Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\BC96F860-9928-11cf-8AFA-00AA00C00905 = mmimfflflmqmlfffrlnmofhfkgrlmmfmqkqj

// Chart Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\12B142A4-BD51-11d1-8C08-0000F8754DA1 = aadhgafabafajhchnbchehfambfbbachmfmb

// Common Dialog Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905 = gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj

// ADO Data Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\C4145310-469C-11d1-B182-00A0C922E820 = konhqhioohihphkouimonhqhvnwiqhhhnjti

// Common Controls-3 6.0 license key
HKEY_CLASSES_ROOT\Licenses\38911DA0-E448-11D0-84A3-00DD01104159 = mcpckchcdchjcjcclidcgcgchdqdcjhcojpd

// Windows Common Controls-2 5.0 (SP2) license key
HKEY_CLASSES_ROOT\Licenses\9E799BF1-8817-11cf-958F-0020AFC28C3B = uqpqnqkjujkjjjjqwktjrjkjtkupsjnjtoun

// Windows Common Controls license key
HKEY_CLASSES_ROOT\Licenses\57CBF9E0-6AA7-11cf-8ADB-00AA00C00905 = aahakhchghkhfhaamghhbhbhkbpgfhahlfle

// Data Bound Grid Control 5.0(SP3) license key
HKEY_CLASSES_ROOT\Licenses\556C75F1-EFBC-11CF-B9F3-00A0247033C4 = xybiedobrqsprbijaegcbislrsiucfjdhisl

// Data Bound List Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\096EFC40-6ABF-11cf-850C-08002B30345D = knsgigmnmngnmnigthmgpninrmumhgkgrlrk

// Internet Transfer Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\78E1BDD1-9941-11cf-9756-00AA00C00908 = yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun

// Multimedia Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\B1EFCCF0-6AC1-11cf-8ADB-00AA00C00905 = qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun

// Chart Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\7C35CA30-D112-11cf-8E72-00A0C90F26F8 = whmhmhohmhiorhkouimhihihwiwinhlosmsl

// Windows Common Controls-2 6.0 license key
HKEY_CLASSES_ROOT\Licenses\4F86BADF-9F77-11d1-B1B7-0000F8753F5D = iplpwpnippopupiivjrioppisjsjlpiiokuj

// Windows Common Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1 = knlggnmntgggrninthpgmnngrhqhnnjnslsh

// Comm Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

// DataGrid Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\CDE57A55-8B86-11D0-b3C6-00A0C90AEA82 = ekpkhddkjkekpdjkqemkfkldoeoefkfdjfqe

// DataList Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\A133F000-CCB0-11d0-A316-00AA00688B10 = cibbcimbpihbbbbbnhdbeidiocmcbbdbgdoc

// DBWin license key
HKEY_CLASSES_ROOT\Licenses\D015B071-D2ED-11d0-A31A-00AA00688B10 = gjdcfjpcmjicjcdcoihcechjlioiccechepd

// MSDBRPT license key
HKEY_CLASSES_ROOT\Licenses\9DF1A470-BA8E-11D0-849C-00A0C90DC8A9 = cchcqjejhcgcqcfjpdfcdjkckiqikchcojpd

// FlexGrid Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\72E67120-5959-11cf-91F6-C2863C385E30 = ibcbbbebqbdbciebmcobmbhifcmciibblgmf

// MAPI Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\899B3E80-6AC6-11cf-8ADB-00AA00C00905 = wjsjjjlqmjpjrjjjvpqqkqmqukypoqjquoun

// MSRDO 2.0 license key
HKEY_CLASSES_ROOT\Licenses\B1692F60-23B0-11D0-8E95-00A0C90F26F8 = mjjjccncgjijrcfjpdfjfcejpdkdkcgjojpd

// RemoteData Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\43478d75-78e0-11cf-8e78-00a0d100038e = imshohohphlmnhimuinmphmmuiminhlmsmsl

// Windowless Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\80E80EF0-DBBE-11D0-BCE2-00A0C90DCA10 = qijimitpmpnpxplpvjnikpkpqoxjmpkpoivj

// PictureClip Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\6FB38640-6AC7-11cf-8ADB-00AA00C00905 = gdjkokgdldikhdddpjkkekgknesjikdkoioh

// Rich TextBox Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\DC4D7920-6AC8-11cf-8ADB-00AA00C00905 = iokouhloohrojhhhtnooiokomiwnmohosmsl

// Sheridan Tab Control license key
HKEY_CLASSES_ROOT\Licenses\190B7910-992A-11cf-8AFA-00AA00C00905 = gclclcejjcmjdcccoikjlcecoioijjcjnhng

// SysInfo Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\E32E2733-1BC5-11d0-B8C3-00A0C90DCA10 = kmhfimlflmmfpffmsgfmhmimngtghmoflhsg

// Winsock Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d = mlrljgrlhltlngjlthrligklpkrhllglqlrk

VS2010环境下MFC使用DataGrid绑定数据源以及控件注册问题解决相关推荐

  1. VS2010环境下MFC使用DataGrid绑定数据源

    如果MFC的软件中 使用DataGrid控件后,在别的电脑上不能运行行,需要拷贝一个 MSDATGRD.ocx 和msstdfmt.dll  文件在软件的目录中,并写一个批处理文件 reg.dat 文 ...

  2. java实现控件绑定数据源_控件(三)——TreeView控件以XmlDataSource控件为数据源实现简单的绑定...

    TreeView控件功能非常强大,今天,我们只是窥其一角. 我们实现的例子是:TreeView控件与XmlDataSource控件绑定,然后在网页显示选中项. 首先我们添加一个xml,取名为tv.xm ...

  3. MFC学习--下拉框、列表、树控件、选项卡

    下拉框.列表.树控件.选项卡 下拉框 属性 代码操作 列表控件 属性 代码操作 树控件 属性 代码操作 选项卡 属性 代码操作 文化建设 下拉框 属性 Data: 下拉可选项,用分号分隔( ; ) T ...

  4. 孙鑫MFC笔记之十六--Active控件

    基本概念: 容器和服务器程序 容器应用程序时可以嵌入或链接对象的应用程序.Word 就是容器应用程序.服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序.Excel 就是服务器应用程序. ...

  5. asp.net中将数据库绑定到DataList控件的实现方法与实例代码

    解决方法1: datalist databind() 解决方法2: 查看MSDN上的详细说明资料 解决方法3: 在DataList的模板中用table表格,如: 复制代码 代码如下: <asp: ...

  6. vs2010 学习Silverlight学习笔记(8):使用用户控件

    概要: 这个类似于封装控件样式.不过封装的是整个或是多个控件罢了,然后用的时候就可以直接引用过来了. 创建用户控: 这个也很简单,不过有几个地方需要注意下.这个就不照抄了,咱们也自己写一个. 步骤: ...

  7. MVC3学习第十三章 佟掌柜第二弹——MVC3下利用陕北吴旗娃的分页控件实现数据分页...

    本章学习内容 1.了解陕北吴旗娃的Mvc分页控件 2.利用分页控件实现MVC3下的商品分页 3.利用分页控件实现MVC3下一个页面多个分页以及ajax分页效果 1.了解陕北吴旗娃的Mvc分页控件 在w ...

  8. mfc中在vector里添加控件类型的数据时出现C2248错误

    @mfc中在vector里添加控件类型的数据时出现C2248错误 这是我在.h文件中定义的2个容器 public:vector<CComboBox*> cbx;vector <CSt ...

  9. MFC之图像绘制---高速绘图控件(High-speed Charting Control)应用(一)

    High-speed Charting Control的下载.配置及创建 一.介绍 必须吹一波这个大佬,我觉得这个可能是MFC中最好用的绘图控件了,相关下载链接如下: 官方下载地址https://ww ...

最新文章

  1. python tableview_在PyQ中清除TableView
  2. 计算机处理信息的方式
  3. css截断长文本显示
  4. 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的
  5. linux win7 默认启动,请教:我的grub.cfg里面的内容如下,请教怎样改代码才能让WIN7设为默认启动...
  6. react中@withrouter_为什么 withRouter 高阶组件应该 处于最外层?
  7. 不知道选择多云还是混合云?先把概念弄清楚吧
  8. Jenkins+maven(testng)项目(本地项目配置)
  9. 2021-09-10 转载: 软件开发类项目关键文档
  10. 家庭记账本开发记录(4)
  11. 中国大学MOOC(慕课)离线下载视频支持电脑播放
  12. Simpler - 轻量级的微博客户端(开源)
  13. 项目: 生命游戏(C语言)
  14. 转载|领英开源TonY:构建在Hadoop YARN上的TensorFlow框架
  15. Android scroller控件,Android Scroller完全解析
  16. 用python编程、假设一年期定期利率_Python习题选编 -
  17. 全新在线制作banner网站广告横幅源码
  18. 2017总结与2018规划
  19. 【Puppeteer】基于Puppeteer采集网页图片资源
  20. css抄页面,如何正确的抄网页

热门文章

  1. CSS3旋转(Rotate)
  2. HoloLens2基础交互功能开发(二):交互界面创建
  3. 今生无爱,君子以自强不息.
  4. 零跑汽车财报解读:短跑“增程”双动力,长跑“自研”加速度
  5. docker 开启2375端口
  6. v4l2-framework.txt中文翻译
  7. solr 安装和使用
  8. 用友U8登录界面显示红叉叉
  9. 【隐马尔可夫模型】维特比算法matlab实现
  10. having与聚合函数