【VC开源代码栏目提醒】:网学会员,鉴于大家对VC开源代码十分关注,论文会员在此为大家搜集整理了“Associator.cpp”一文,供大家参考学习!
// Associator.cpp : implementation file
//
#include "stdafx.h"
#include "BookFriend.h"
#include "Associator.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAssociator dialog
CAssociator::CAssociator(CWnd* pParent /*=NULL*/)
: CDialog(CAssociator::IDD, pParent)
{
//{{AFX_DATA_INIT(CAssociator)
//}}AFX_DATA_INIT
m_Insert = FALSE;
}
void CAssociator::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAssociator)
DDX_Control(pDX, IDC_EDIT3, m_Phone);
DDX_Control(pDX, IDC_EDIT4, m_Text);
DDX_Control(pDX, IDC_EDIT2, m_Name);
DDX_Control(pDX, IDC_EDIT1, m_ID);
DDX_Control(pDX, IDC_COMBO1, m_Sex);
DDX_Control(pDX, IDC_LIST1, m_Grid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAssociator, CDialog)
//{{AFX_MSG_MAP(CAssociator)
ON_COMMAND(ID_ADD, OnAdd)
ON_COMMAND(ID_MOD, OnMod)
ON_COMMAND(ID_SAVE, OnSave)
ON_COMMAND(ID_DEL, OnDel)
ON_COMMAND(ID_EXIT, OnExit)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAssociator message handlers
BOOL CAssociator::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//创建图像列表
m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
//向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON11));
m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_TOOLTIPS |CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//关联图像列表
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_ToolBar.SetButtons(NULL, 5); //共4个按钮
// 设置每个工具按钮文字
m_ToolBar.SetButtonInfo(0, ID_ADD, TBSTYLE_BUTTON, 1);
m_ToolBar.SetButtonText(0, "添加");
m_ToolBar.SetButtonInfo(1, ID_MOD, TBSTYLE_BUTTON, 2);
m_ToolBar.SetButtonText(1, "修改");
m_ToolBar.SetButtonInfo(2, ID_SAVE, TBSTYLE_BUTTON, 3);
m_ToolBar.SetButtonText(2, "保存");
m_ToolBar.SetButtonInfo(3, ID_DEL, TBSTYLE_BUTTON, 4);
m_ToolBar.SetButtonText(3, "删除");
m_ToolBar.SetButtonInfo(4, ID_EXIT, TBSTYLE_BUTTON, 0);
m_ToolBar.SetButtonText(4, "退出");
m_ToolBar.SetSizes(CSize(50,50), CSize(32,32)); //设置按钮的大小
//显示工具栏窗口
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
//设置列表视图的扩展风格
m_Grid.SetExtendedStyle(LVS_EX_FLATSB //扁平风格显示滚动条
|LVS_EX_FULLROWSELECT //允许整行选中
|LVS_EX_HEADERDRAGDROP //允许整列拖动
|LVS_EX_ONECLICKACTIVATE //单击选中项
|LVS_EX_GRIDLINES); //画出网格线
//设置表头
m_Grid.InsertColumn(0,"会员编号",LVCFMT_LEFT,70,0);
m_Grid.InsertColumn(1,"会员昵称",LVCFMT_LEFT,70,1);
m_Grid.InsertColumn(2,"会员性别",LVCFMT_LEFT,70,2);
m_Grid.InsertColumn(3,"会员电话",LVCFMT_LEFT,70,3);
m_Grid.InsertColumn(4,"备注信息",LVCFMT_LEFT,70,4);
AddToGrid();
EnableWindow(FALSE);
m_ID.EnableWindow(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAssociator::OnAdd()
{
CString sql,ph,id;
sql.Format("select * from tb_Associator"); //设置SQL语句
ADOConn m_ADOConn; // ADOConn对象
m_ADOConn.OnInitADOConn(); //连接数据库
m_ADOConn.m_pRecordset = m_ADOConn.GetRecordSet((_bstr_t)sql); //根据SQL语句进行查询
if(!m_ADOConn.m_pRecordset->adoEOF) //判断是否有符合条件的记录
{
while(!m_ADOConn.m_pRecordset->adoEOF)
{
ph = (char*)(_bstr_t)m_ADOConn.m_pRecordset->GetCollect("会员编号"); //获得数据表中的会员编号
m_ADOConn.m_pRecordset->MoveNext(); //将记录集指针移动到下一条记录
}
id.Format("Ass%04d",atoi(ph.Right(4))+1); //将获得的做大记录加1生成新的会员编号
}
else//如果没有符合的记录
id.Format("Ass0001"); //则会员编号为Ass0001
m_ADOConn.ExitConnect(); //关闭记录集并断开数据库连接
m_Insert = TRUE;
m_ID.SetWindowText(id);
m_Name.SetWindowText("");
m_Sex.SetCurSel(0);
m_Phone.SetWindowText("");
m_Text.SetWindowText("");
EnableWindow(TRUE);
}
void CAssociator::OnMod()
{
EnableWindow(TRUE);
m_Insert = FALSE;
}
void CAssociator::OnSave()
{
CString id,name,sex,phone,text;
m_ID.GetWindowText(id); //获取编辑框中的数据
m_Name.GetWindowText(name); //获取编辑框中的数据
m_Sex.GetWindowText(sex); //获取性别组合框中选中的数据
m_Phone.GetWindowText(phone); //获取编辑框中的数据
m_Text.GetWindowText(text); //获取编辑框中的数据
if(id.IsEmpty() || name.IsEmpty() || phone.IsEmpty() || text.IsEmpty())
{
MessageBox("信息不能为空!");
return;
}
ADOConn m_ADOConn; // ADOConn类对象
m_ADOConn.OnInitADOConn(); //连接数据库
CString sql;
if(m_Insert)
{
sql.Format("insert into tb_Associator(会员编号,会员昵称,会员性别,会员电话,\
备注信息)values ('%s','%s','%s','%s','%s')",id,name,sex,phone,text);
}
else
{
sql.Format("update tb_Associator set 会员昵称='%s',会员性别='%s',会员电话\
='%s',备注信息='%s' where 会员编号='%s'",name,sex,phone,text,id);
}
m_ADOConn.ExecuteSQL((_bstr_t)sql); //运行SQL语句添加记录
m_ADOConn.ExitConnect(); //断开数据库连接
m_Grid.DeleteAllItems(); //删除列表视图控件中的数据
AddToGrid(); //向列表视图控件中添加数据
}
void CAssociator::OnDel()
{
ADOConn m_ADOConn;
m_ADOConn.OnInitADOConn();
CString sql,id;
m_ID.GetWindowText(id); //获取编辑框中的数据
sql.Format("delete from tb_Associator where 会员编号='%s'",id);
m_ADOConn.ExecuteSQL((_bstr_t)sql);
m_ADOConn.ExitConnect();
m_Grid.DeleteAllItems();
AddToGrid();
}
void CAssociator::OnExit()
{
CDialog::OnCancel();
}
void CAssociator::AddToGrid()
{
ADOConn m_ADOConn; // ADOConn类对象
m_ADOConn.OnInitADOConn(); //连接数据库
CString sql;
int i = 0;
sql.Format("select * from tb_Associator"); //设置查询语句
m_ADOConn.m_pRecordset = m_ADOConn.GetRecordSet((_bstr_t)sql); //查询
while(!m_ADOConn.m_pRecordset->adoEOF)
{
//向列表视图控件中插入行
m_Grid.InsertItem(i,"");
//向列表视图控件中插入列
m_Grid.SetItemText(i,0,(char*)(_bstr_t)m_ADOConn.m_pRecordset->GetCollect("会员编号"));
m_Grid.SetItemText(i,1,
上一篇:
AssetsSelectDlg.cpp
下一篇:
电咖汽车入选2018独角兽企业榜百强 发布“天际”品牌将推高估值