vc++消息映射/初始化对话框/数据库/弹出各种窗口/精确查询/模糊查询相关操作示例代码是小编为大家整理的一个VC++ 函数集文件,这并不是一个完成某种功能的文件,而是一些函数集,包括了消息映射 初始化对话框 数据库 在标题栏显示记录条数 弹出各种窗口 以文本格式保存记录 精确查询 模糊查询 单击列表时显示高亮等操作,有喜欢的朋友可以先收藏起来,以备以后编程所需,代码分享如下,,赶紧来详细了解一下吧:
//类名:CMainDlg //功能:通讯录主界面 #include "stdafx.h" #include "Address.h" #include "MainDlg.h" #include "PersonSet.h" #include "ChangePswDlg.h" #include "AddInfoDlg.h" #include "Aboutdlg.h" #include "ModifyDlg.h" #include "SearchDlg.h" // Download by http://www.srcfans.com #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif // CMainDlg dialog //名称:构造函数 //功能:对象产生则调用此函数 CMainDlg::CMainDlg(CWnd* pParent /*=NULL*/) : CDialog(CMainDlg::IDD, pParent) { m_input = _T(""); m_field = _T(""); } //功能:实现数据交换 void CMainDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMainDlg) DDX_Control(pDX, IDC_FIELD_COMBO, m_ctrlfield); DDX_Control(pDX, IDC_LIST1, m_ctrlperson); DDX_Text(pDX, IDC_INPUT_EDIT, m_input); DDX_CBString(pDX, IDC_FIELD_COMBO, m_field); //}}AFX_DATA_MAP } //功能:消息映射 BEGIN_MESSAGE_MAP(CMainDlg, CDialog) //{{AFX_MSG_MAP(CMainDlg) ON_COMMAND(ID_MENU_MODPSW, OnMenuModpsw) ON_COMMAND(ID_MENU_ABOUT, OnMenuAbout) ON_BN_CLICKED(IDC_RADIO_ADD, OnRadioAdd) ON_COMMAND(ID_MENU_DEL, OnMenuDel) ON_BN_CLICKED(IDC_RADIO_DEL, OnRadioDel) ON_COMMAND(ID_MENU_ADD, OnMenuAdd) ON_COMMAND(ID_MENU_HELP, OnMenuHelp) ON_COMMAND(ID_MENU_EXIT, OnMenuExit) ON_BN_CLICKED(IDC_RADIO_MOD, OnRadioMod) ON_BN_CLICKED(IDC_RADIO_SEARCH, OnRadioSearch) ON_COMMAND(ID_MENU_MOD, OnMenuMod) ON_COMMAND(ID_MENU_SAVE, OnMenuSave) ON_COMMAND(ID_MENU_SEARCH, OnMenuSearch) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_BN_CLICKED(IDC_RADIO1, OnRadio1) ON_BN_CLICKED(IDC_RADIO2, OnRadio2) //}}AFX_MSG_MAP END_MESSAGE_MAP() /////////////////////////////////////////////////////////////////////// // CMainDlg message handlers ////////////////////////////////////////////////////////////////////// //名称:OnInitDialog //功能:初始化对话框图 ////////////////////////////////////////////////////////////////////// BOOL CMainDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here //默认为“精确查询”按钮被选中 CDialog::CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1); //默认“姓名”项被选中 m_ctrlfield.SetCurSel(0); //让窗口出现时居中 CenterWindow(); //为标题栏加图标 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); this->SetIcon(m_hIcon,TRUE); //设定列的颜色 m_ctrlperson.SetTextColor(RGB(100,0,100)); m_ctrlperson.SetTextBkColor(RGB(240,247,233)); //确定列名 m_ctrlperson.InsertColumn(0,"序号"); m_ctrlperson.InsertColumn(1,"姓名"); m_ctrlperson.InsertColumn(2,"性别"); m_ctrlperson.InsertColumn(3,"关系"); m_ctrlperson.InsertColumn(4,"联系电话"); m_ctrlperson.InsertColumn(5,"手机号码"); m_ctrlperson.InsertColumn(6,"家庭住址"); m_ctrlperson.InsertColumn(7,"工作单位"); m_ctrlperson.InsertColumn(8,"E_mail地址"); m_ctrlperson.InsertColumn(9,"OICQ号码"); //重新分配列宽 m_ctrlperson.SetColumnWidth(0,40); m_ctrlperson.SetColumnWidth(1,60); m_ctrlperson.SetColumnWidth(2,40); m_ctrlperson.SetColumnWidth(3,80); m_ctrlperson.SetColumnWidth(4,100); m_ctrlperson.SetColumnWidth(5,100); m_ctrlperson.SetColumnWidth(6,150); m_ctrlperson.SetColumnWidth(7,150); m_ctrlperson.SetColumnWidth(8,150); m_ctrlperson.SetColumnWidth(9,80); //扩展风格 m_ctrlperson.SetExtendedStyle(LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES);//|LVS_SHOWSELALWAYS); //查找记录并按ID升序排列 m_query.Format("select * from person order by ID ASC"); RefreshData(); //为操作区增加工具条提示 m_addTip.Create(this); CButton* m_radio_add=(CButton*)GetDlgItem(IDC_RADIO_ADD); m_addTip.AddTool(m_radio_add,"单击此按钮,可以为通讯录增加记录。"); m_modTip.Create(this); CButton* m_radio_mod=(CButton*)GetDlgItem(IDC_RADIO_MOD); m_modTip.AddTool(m_radio_mod,"先选取列表框中要修改的记录,再单击此按钮就可以修改相应的记录。"); m_delTip.Create(this); CButton* m_radio_del=(CButton*)GetDlgItem(IDC_RADIO_DEL); m_delTip.AddTool(m_radio_del,"先选取列表框中要删除的记录,再单击此按钮就可以彻底将此记录删除。"); m_searchTip.Create(this); CButton* m_radio_search=(CButton*)GetDlgItem(IDC_RADIO_SEARCH); m_searchTip.AddTool(m_radio_search,"单击此按钮可以查到你想要的记录。"); //使对话框居中显示 CRect dlgrect; GetWindowRect(&dlgrect); CRect desktoprect; GetDesktopWindow()->GetWindowRect(&desktoprect); CRect rect1,rect2; GetDlgItem(IDC_SEARCH_STATIC)->GetWindowRect(&rect1); GetDlgItem(IDC_FLAG_STATIC)->GetWindowRect(&rect2); m_nReduceHeight=rect1.Height()+(rect1.top-rect2.bottom)/2;//收缩后窗体的高度 dlgrect.bottom-=(rect1.Height()-(rect1.top-rect2.bottom)/2); MoveWindow(&dlgrect); m_bflag=false; m_bsearchflag=true; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } ////////////////////////////////////////////////////////////////////// //名称:RefreshData //功能:刷新数据显示 ////////////////////////////////////////////////////////////////////// void CMainDlg::RefreshData() { //首先确保数据库打开 if(!m_database.IsOpen()) { m_database.Open(_T("addresslist")); } //对列表控件的内容更新,清空原来的内容 m_ctrlperson.DeleteAllItems(); //创建记录集 CPersonSet m_personset(&m_database); m_personset.Open(AFX_DB_USE_DEFAULT_TYPE,m_query); CDBVariant varValue; char buf[20]; //用来记录当前记录的序号 int i=0; //如果表中有记录,打开后将游标定在第一位,使记录集中的第一条记录成为当前记录 if(m_personset.GetRecordCount()!=0) m_personset.MoveFirst(); while(!m_personset.IsEOF()) { int temp=0; //对整型数字的处理 m_personset.GetFieldValue(temp,varValue); sprintf(buf,"%d",varValue.m_lVal);m_ctrlperson.InsertItem(i,buf); //对字符串显示处理 //m_personset.GetFieldValue(0,varValue); //m_ctrlperson.SetItemText(i,0,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(1,varValue); m_ctrlperson.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(2,varValue); m_ctrlperson.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(3,varValue); m_ctrlperson.SetItemText(i,3,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(4,varValue); m_ctrlperson.SetItemText(i,4,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(5,varValue); m_ctrlperson.SetItemText(i,5,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(6,varValue); m_ctrlperson.SetItemText(i,6,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(7,varValue); m_ctrlperson.SetItemText(i,7,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(8,varValue); m_ctrlperson.SetItemText(i,8,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(9,varValue); m_ctrlperson.SetItemText(i,9,varValue.m_pstring->GetBuffer(1)); m_personset.MoveNext(); i++; } //在标题栏中显示共有记录条数 int counts=m_personset.GetRecordCount(); CString str; str.Format("通讯录 V1.0 试用版 目前共有记录数: %d",counts); this->SetWindowText(str); } ////////////////////////////////////////////////////////////////////// //功能:弹出更改口令窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuModpsw() { // TODO: Add your command handler code here CChangePswDlg dlg; dlg.DoModal(); } ////////////////////////////////////////////////////////////////////// //功能:弹出"关于"窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuAbout() { // TODO: Add your command handler code here CAboutdlg dlg; dlg.DoModal(); } ////////////////////////////////////////////////////////////////////// //功能:弹出增加记录窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnRadioAdd() { //本对话框对应的数据库连接关闭 m_database.Close(); //新建一个CAddInfoDlg的对象 CAddInfoDlg dlg; //新对话框建立到数据库连接 dlg.m_database.Open(_T("addresslist")); //弹出新对话框 dlg.DoModal(); //新对话框关闭后,在原对话框中刷新数据显示 RefreshData(); } ////////////////////////////////////////////////////////////////////// //功能:弹出删除记录窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuDel() { // TODO: Add your command handler code here //i是记录中所选的记录号,如果没有则返回 int i=m_ctrlperson.GetSelectionMark(); CString strSQL,msg,strname; strname=m_ctrlperson.GetItemText(i,1); msg.Format("第 %d 项,姓名为“%s”的记录将被删除!是否继续?",i+1,strname); //如果用户没有选择记录,则提示选取一条记录 if(i==-1) { MessageBox("请选择一条要删除的记录!","提示",MB_OK|MB_ICONINFORMATION); } else { if(MessageBox(msg,"提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { CString strname=m_ctrlperson.GetItemText(i,1); //从表中删除对应的记录 strSQL.Format("delete from person where NAME='%s'",strname); m_database.ExecuteSQL(strSQL); m_database.Close(); RefreshData(); } } } ////////////////////////////////////////////////////////////////////// //功能:弹出删除记录窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnRadioDel() { //i是记录中所选的记录号,如果没有则返回 int i=m_ctrlperson.GetSelectionMark(); CString strSQL,msg,strname; strname=m_ctrlperson.GetItemText(i,1); msg.Format("第 %d 项,姓名为“%s”的记录将被删除!是否继续?",i+1,strname); //如果用户没有选择记录,则提示选取一条记录 if(i==-1) { MessageBox("请选择一条要删除的记录!","提示",MB_OK|MB_ICONINFORMATION); } else { if(MessageBox(msg,"提示",MB_YESNO|MB_ICONINFORMATION)==IDYES) { CString strname=m_ctrlperson.GetItemText(i,1); //从表中删除对应的记录 strSQL.Format("delete from person where NAME='%s'",strname); m_database.ExecuteSQL(strSQL); m_database.Close(); RefreshData(); } } } ////////////////////////////////////////////////////////////////////// //功能:弹出增加数据窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuAdd() { // TODO: Add your command handler code here //本对话框对应的数据库连接关闭 m_database.Close(); //新建一个CAddInfoDlg的对象 CAddInfoDlg dlg; //新对话框建立到数据库连接 dlg.m_database.Open(_T("addresslist")); //弹出新对话框 dlg.DoModal(); //新对话框关闭后,在原对话框中刷新数据显示 RefreshData(); } ////////////////////////////////////////////////////////////////////// //功能:弹出help窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuHelp() { // TODO: Add your command handler code here } ////////////////////////////////////////////////////////////////////// //功能:退出系统 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuExit() { // TODO: Add your command handler code here CMainDlg::OnCancel(); } ////////////////////////////////////////////////////////////////////// //功能:弹出修改记录窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnRadioMod() { m_database.Close();//本对话框断开与数据库的连接 CModifyDlg dlg; dlg.m_database.Open(_T("addresslist")); int i=m_ctrlperson.GetSelectionMark(); CString strSQL; int id=atoi(m_ctrlperson.GetItemText(i,0)); CPersonSet m_recordset; CDBVariant varValue; if(i==-1) { MessageBox("请选择一条要修改的记录!","提示",MB_OK|MB_ICONINFORMATION); } else { int temp=0; strSQL.Format("select * from person where ID=%d",id); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); m_recordset.GetFieldValue(temp,varValue); dlg.m_modid=varValue.m_lVal; m_recordset.GetFieldValue(1,varValue); dlg.m_modname=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(2,varValue); dlg.m_modsex=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(3,varValue); dlg.m_modrelation=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(4,varValue); dlg.m_modtelephone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(5,varValue); dlg.m_modhandphone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(6,varValue); dlg.m_modaddress=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(7,varValue); dlg.m_modworkplace=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(8,varValue); dlg.m_modemail=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(9,varValue); dlg.m_modoicq=varValue.m_pstring->GetBuffer(1); //m_database.Close();//此处不能断开与数据库的连接 dlg.DoModal(); RefreshData(); } } ////////////////////////////////////////////////////////////////////// //功能:展开查询记录窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnRadioSearch() { m_bflag=!m_bflag; if(m_bflag==false)//没有展开对话框(退出查询) { GetDlgItem(IDC_RADIO_SEARCH)->SetWindowText(_T("查询记录")); SizeWindow(m_nReduceHeight,true); RefreshData(); } else { GetDlgItem(IDC_RADIO_SEARCH)->SetWindowText(_T("退出查询")); //在“关键字”框中设置光标 GetDlgItem(IDC_INPUT_EDIT)->SetFocus(); SizeWindow(m_nReduceHeight,false); } } ////////////////////////////////////////////////////////////////////// //功能:弹出修改记录窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuMod() { // TODO: Add your command handler code here m_database.Close();//本对话框断开与数据库的连接 CModifyDlg dlg; dlg.m_database.Open(_T("addresslist")); int i=m_ctrlperson.GetSelectionMark(); CString strSQL; int id=atoi(m_ctrlperson.GetItemText(i,0)); CPersonSet m_recordset; CDBVariant varValue; if(i==-1) { MessageBox("请选择一条要修改的记录!","提示",MB_OK|MB_ICONINFORMATION); } else { int temp=0; strSQL.Format("select * from person where ID=%d",id); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); m_recordset.GetFieldValue(temp,varValue); dlg.m_modid=varValue.m_lVal; m_recordset.GetFieldValue(1,varValue); dlg.m_modname=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(2,varValue); dlg.m_modsex=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(3,varValue); dlg.m_modtelephone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(4,varValue); dlg.m_modtelephone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(5,varValue); dlg.m_modhandphone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(6,varValue); dlg.m_modaddress=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(7,varValue); dlg.m_modworkplace=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(8,varValue); dlg.m_modemail=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(9,varValue); dlg.m_modoicq=varValue.m_pstring->GetBuffer(1); //m_database.Close();//此处不能断开与数据库的连接 dlg.DoModal(); RefreshData(); } } ////////////////////////////////////////////////////////////////////// //功能:以文本格式保存记录 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuSave() { // TODO: Add your command handler code here CFileDialog filedlg(FALSE,_T("txt"),_T("*.txt")); filedlg.DoModal(); } ////////////////////////////////////////////////////////////////////// //功能:展开查询窗口 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnMenuSearch() { // TODO: Add your command handler code here m_bflag=!m_bflag; if(m_bflag==false) { GetDlgItem(IDC_RADIO_SEARCH)->SetWindowText(_T("查询记录")); SizeWindow(m_nReduceHeight,true); RefreshData(); } else { GetDlgItem(IDC_RADIO_SEARCH)->SetWindowText(_T("退出查询")); //在“关键字”框中设置光标 GetDlgItem(IDC_INPUT_EDIT)->SetFocus(); SizeWindow(m_nReduceHeight,false); } } BOOL CMainDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->message==WM_MOUSEMOVE) { m_addTip.RelayEvent(pMsg); m_delTip.RelayEvent(pMsg); m_modTip.RelayEvent(pMsg); m_searchTip.RelayEvent(pMsg); } return CDialog::PreTranslateMessage(pMsg); } ////////////////////////////////////////////////////////////////////// //功能:单击列表时显示高亮 ////////////////////////////////////////////////////////////////////// void CMainDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { //得到所选取项的标号 int i=m_ctrlperson.GetSelectionMark(); //为所选的项设为高亮 m_ctrlperson.SetHotItem(i); *pResult = 0; } ///////////////////////////////////////////////////////////////////////// //名称:SizeWindow//自定义函数 //功能:展开对话框,出现查询对话框 ///////////////////////////////////////////////////////////////////////// void CMainDlg::SizeWindow(int ReduceHeight, bool bflag) { CRect rect; GetWindowRect(&rect); if(bflag) { for(int i=0;i<ReduceHeight;i++) { rect.bottom--; MoveWindow(&rect); } } else { for(int i=0;i<ReduceHeight;i++) { rect.bottom++; MoveWindow(&rect); } } UpdateWindow(); } ///////////////////////////////////////////////////////////////////////// //名称:OnOk //功能:提交通讯录果询结果 //////////////////////////////////////////////////////////////////////// void CMainDlg::OnOK() { // TODO: Add extra validation here if(m_bsearchflag)//如果flag=true,则调用精确查询 { ExactSearch(); } else//否则调用模糊查询 { BlurSearch(); } //CDialog::OnOK(); } ////////////////////////////////////// //名称:ExactSearch //功能:实现精确查询 /////////////////////////////////////// void CMainDlg::ExactSearch() { //如果数据库没有打开,先将其打开 if(!m_database.IsOpen()) { m_database.Open(_T("addresslist")); } UpdateData(TRUE); CPersonSet m_personset;//定义CPersonset类的对象 CString m_tablefield; if(m_field.Compare("姓名")==0) { m_tablefield.Format("NAME"); } if(m_field.Compare("所在城市")==0) { m_tablefield.Format("ADDRESS"); } if(m_field.Compare("手机号码")==0) { m_tablefield.Format("HANDPHONE"); } if(m_field.Compare("OICQ号码")==0) { m_tablefield.Format("OICQ"); } if(!m_input.IsEmpty()) { m_searchSQL.Format("select * from person where %s='%s'",m_tablefield,m_input); SearchData(); } else { MessageBox("请填写查询关键字","提示",MB_OK|MB_ICONINFORMATION); GetDlgItem(IDC_INPUT_EDIT)->SetFocus(); } } ////////////////////////////////////// //名称:BlurSearch //功能:实现模糊查询 /////////////////////////////////////// void CMainDlg::BlurSearch() { //如果数据库没有打开,先将其打开 if(!m_database.IsOpen()) { m_database.Open(_T("addresslist")); } UpdateData(TRUE); CPersonSet m_personset;//定义CPersonset类的对象 CString m_tablefield,m_str="%"; m_str=m_str+m_input+"%"; if(!m_input.IsEmpty()) { if(m_field.Compare("姓名")==0) { m_tablefield.Format("NAME"); } if(m_field.Compare("所在城市")==0) { m_tablefield.Format("ADDRESS"); } if(m_field.Compare("手机号码")==0) { m_tablefield.Format("HANDPHONE"); } if(m_field.Compare("OICQ号码")==0) { m_tablefield.Format("OICQ"); } m_searchSQL.Format("select * from person where %s like '%s'",m_tablefield,m_str); SearchData(); } else { MessageBox("请填写查询关键字","提示",MB_OK|MB_ICONINFORMATION); GetDlgItem(IDC_INPUT_EDIT)->SetFocus(); } } /////////////////////////////////////////////////////////////////////////// //功能:精确查询按钮 ////////////////////////////////////////////////////////////////////////// void CMainDlg::OnRadio1() { m_bsearchflag=true; } /////////////////////////////////////////////////////////////////////////// //功能:模糊查询按钮 ////////////////////////////////////////////////////////////////////////// void CMainDlg::OnRadio2() { m_bsearchflag=!m_bsearchflag; } /////////////////////////////////////////////////////////////////////////// //名称:SearchData //功能:实现记录查询 ////////////////////////////////////////////////////////////////////////// void CMainDlg::SearchData() { //首先确保数据库打开 if(!m_database.IsOpen()) { m_database.Open(_T("addresslist")); } //对列表控件的内容更新,清空原来的内容 m_ctrlperson.DeleteAllItems(); //创建记录集 CPersonSet m_personset(&m_database); m_personset.Open(AFX_DB_USE_DEFAULT_TYPE,m_searchSQL); CDBVariant varValue; char buf[20]; //用来记录当前记录的序号 int i=0; //如果表中有记录,打开后将游标定在第一位,使记录集中的第一条记录成为当前记录 if(m_personset.GetRecordCount()!=0) m_personset.MoveFirst(); while(!m_personset.IsEOF()) { int temp=0; //对整型数字的处理 m_personset.GetFieldValue(temp,varValue); sprintf(buf,"%d",varValue.m_lVal);m_ctrlperson.InsertItem(i,buf); //对字符串显示处理 m_personset.GetFieldValue(1,varValue); m_ctrlperson.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(2,varValue); m_ctrlperson.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(3,varValue); m_ctrlperson.SetItemText(i,3,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(4,varValue); m_ctrlperson.SetItemText(i,4,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(5,varValue); m_ctrlperson.SetItemText(i,5,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(6,varValue); m_ctrlperson.SetItemText(i,6,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(7,varValue); m_ctrlperson.SetItemText(i,7,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(8,varValue); m_ctrlperson.SetItemText(i,8,varValue.m_pstring->GetBuffer(1)); m_personset.GetFieldValue(9,varValue); m_ctrlperson.SetItemText(i,9,varValue.m_pstring->GetBuffer(1)); m_personset.MoveNext(); i++; } //在标题栏中显示共有记录条数 int counts=m_personset.GetRecordCount(); CString str; str.Format("通讯录 V1.0 试用版 符合条件的记录数: %d",counts); this->SetWindowText(str); }