工控编程吧
标题:
55上位机VC MFC编辑框写入内容到列表选择框
[打印本页]
作者:
qq263946146
时间:
2015-12-5 22:52
标题:
55上位机VC MFC编辑框写入内容到列表选择框
(, 下载次数: 0)
上传
点击文件名下载附件
55上位机VC MFC编辑框写入内容到列表选择框
功能展示
在编辑框输入文件,进行查找操作时,如果相同内容过多,一一的输入内容查找,显得非常麻烦,如果用户仅输入一次,我们就将全部相似内容都罗列出来供用户选择,就会十分方便和人性化,我们当前例程就来实现这功能,效果如图
要点提示
用户往编辑框每输入一个数据时都会触发一个消息EN_CHANGE,比如输入了数字0,字母o,中文啊,系统都会发EN_CHANGE消息,所以我们只要处理这个消息便可以方便实现对用户输入内容的查找
实现功能
1.新建基于对话框的应用程序
2.拖拽一编辑框和列表框控件并关联变量CListCtrl m_List;CEdit m_Edit;并初始化控件 m_List.ModifyStyle(0L,LVS_REPORT);
m_List.ModifyStyle(0L,LVS_SHOWSELALWAYS);
m_List.ModifyStyle(0L,LVS_NOSORTHEADER);
m_List.SetExtendedStyle(LVS_EX_GRIDLINES);
m_List.InsertColumn(0,"网站名");
m_List.InsertColumn(1,"网站类型");
m_List.InsertColumn(2,"网址");
m_List.SetColumnWidth(0,100);
m_List.SetColumnWidth(1,100);
m_List.SetColumnWidth(2,300);
3.实现数据库文件的加载:先复制我们例程的数据库文件到工程根目录;//导入 ADO动态链接库msado15.dll
#import "c:\Program Files\CommonFiles\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
再添加几个变量用于数据库文件的操作private://数据库操作变量
_ConnectionPtr m_pConnection; _RecordsetPtrm_pRecordset; CString xm,xb,csrq,gzdw,yddh,gddh ;
4.双击列表控件,添加函数实现EN_CHANGE消息的处理 CString sText; m_Edit.GetWindowText(sText);
m_List.DeleteAllItems(); if(!sText.IsEmpty()){ SetDataBase(sText); }
SetDataBase(sText()是我们自定义的函数用来实现数据库文件的加载的设置列表框内容
void CGkbc8Dlg::SetDataBase(CString sql)
{
::CoInitialize(NULL);
m_pConnection=NULL;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=mrdb.mdb;";
m_pConnection->Open(L"",L"",L"",adCmdUnspecified);
CString text;
text.Format("select * from info where xm like '%s%%'",sql);
m_pRecordset=m_pConnection->Execute((_bstr_t)text,NULL,adCmdText);
int i=0;
while(!m_pRecordset->adoEOF)
{
xm=(char*)(_bstr_t)m_pRecordset->GetCollect("xm");
xb=(char*)(_bstr_t)m_pRecordset->GetCollect("xb");
csrq=(char*)(_bstr_t)m_pRecordset->GetCollect("csrq");
gzdw=(char*)(_bstr_t)m_pRecordset->GetCollect("gzdw");
yddh=(char*)(_bstr_t)m_pRecordset->GetCollect("yddh");
gddh=(char*)(_bstr_t)m_pRecordset->GetCollect("gddh");
m_List.InsertItem(i,"");
m_List.SetItemText(i,0,xm);
m_List.SetItemText(i,1,xb);
m_List.SetItemText(i,2,csrq);
m_List.SetItemText(i,3,gzdw);
m_List.SetItemText(i,4,yddh);
m_List.SetItemText(i,5,gddh);
i+=1;
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
m_pRecordset=NULL;
m_pConnection=NULL;
::CoUninitialize();
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/f68f26840c5af0d25747599b3ddd319f/0/0/w_19rt6i1oad.swf-albumId=4974546009-tvId=4974546009-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4