vc小程序---右键菜单栏的建立以及简单的数据库连接的基本知识(PopMenu)

1:新建一个基于对话框的mfc应用程序,添加个列表框,并对其进行报告顶端的设置,

添加个菜单子菜单为降序升序, 并为其添加响应函数

void CMyPopMenuDlg::OnMenuitemasc()
{
 // TODO: Add your command handler code here
 LoadBookInfo(false);
}

void CMyPopMenuDlg::OnMenuitemdesc()
{
 // TODO: Add your command handler code here
 LoadBookInfo(TRUE);
}

增加消息响应函数:(响应鼠标右键)

void CMyPopMenuDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 CMenu m_popmenu;
 m_popmenu.LoadMenu(IDR_POPMENU);
 CMenu* m_submenu = m_popmenu.GetSubMenu(0);
 
 m_submenu->TrackPopupMenu(TPM_LEFTBUTTON |TPM_LEFTALIGN ,point.x,point.y,this);
 
 m_popmenu.DestroyMenu();
 CDialog::OnRButtonDown(nFlags, point);
}

添加函数LoADBookInfo();

void CMyPopMenuDlg::LoadBookInfo(BOOL IsDesc)
{
 m_list.DeleteAllItems();
 CString sql;
 if(!IsDesc)
  sql="Select *from tb_bookinfo ORDER BY PRICE ASC";
 else
  sql="Select *from tb_bookinfo ORDER BY PRICE desc";
 CString fieldvalue;
 m_pRecord=m_pCon->Execute((_bstr_t)sql,NULL,adCmdText);
 int i=0;
 while( ! m_pRecord->ADOEOF && ! m_pRecord->BOF)
 {
  m_list.InsertItem(100,"");
  fieldvalue = (TCHAR*)(_bstr_t)m_pRecord->GetFields()->GetItem("bookname")->Value;

 m_list.SetItemText(i,0,fieldvalue);
  fieldvalue = (TCHAR*)(_bstr_t)m_pRecord->GetFields()->GetItem("barcode")->Value;
  m_list.SetItemText(i,1,fieldvalue);
  
  fieldvalue =(TCHAR*) (_bstr_t)m_pRecord->GetFields()->GetItem("author")->Value;
  m_list.SetItemText(i,2,fieldvalue);
  
  fieldvalue = (TCHAR*)(_bstr_t)m_pRecord->GetFields()->GetItem("bookconcern")->Value;
  m_list.SetItemText(i,3,fieldvalue);
  
  fieldvalue =(TCHAR*) (_bstr_t)m_pRecord->GetFields()->GetItem("price")->Value;
  m_list.SetItemText(i,4,fieldvalue);
  i+=1;
  m_pRecord->MoveNext();
 }
 
}

在OnInitDialog()中进行相应的初始化如列表框的初始化,关联变量

//添加外部变量:

extern _ConnectionPtr m_pCon;
extern _RecordsetPtr m_pRecord;

 m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FLATSB|LVS_EX_FULLROWSELECT);
 m_list.InsertColumn(0,"书籍名称",LVCFMT_LEFT,150);
 m_list.InsertColumn(1,"条形码",LVCFMT_LEFT,120);
 m_list.InsertColumn(2,"作者",LVCFMT_LEFT,80);
 m_list.InsertColumn(3,"出版社",LVCFMT_LEFT,80);
 m_list.InsertColumn(4,"价格",LVCFMT_LEFT,80);
 在APP 中添加智能指针:

_ConnectionPtr m_pCon;
_RecordsetPtr m_pRecord;

并在InitInstance进行必要的初始化:

AfxOleInit();
 m_pCon.CreateInstance(__uuidof(Connection));
 m_pRecord.CreateInstance(__uuidof(Recordset));
 
 m_pCon->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; \
  Data Source=./Menu.mdb;Persist Security Info=False";
 try
 {
  m_pCon->Open("","","",-1);
 }
 catch(...)
 {
  AfxMessageBox("数据库连接错误",0,0);
  exit;
 }

 

 

 

 

 

 

转载于:https://www.cnblogs.com/rrll/archive/2011/07/29/2120588.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值