editlinkformat.cpp
来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C++ 代码 · 共 154 行
CPP
154 行
// EditLinkFormat.cpp : implementation file
//
#include "stdafx.h"
#include "EditLinkFormat.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEditLinkFormatDlg dialog
CEditLinkFormatDlg::CEditLinkFormatDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEditLinkFormatDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEditLinkFormatDlg)
m_strLinkFormat = _T("");
m_strWebName = _T("");
//}}AFX_DATA_INIT
}
void CEditLinkFormatDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEditLinkFormatDlg)
DDX_Control(pDX, IDC_LISTCTRL, m_listCtrl);
DDX_Text(pDX, IDC_LINK_FORMAT, m_strLinkFormat);
DDX_Text(pDX, IDC_WEB_NAME, m_strWebName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEditLinkFormatDlg, CDialog)
//{{AFX_MSG_MAP(CEditLinkFormatDlg)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LISTCTRL, OnItemchangedListctrl)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditLinkFormatDlg message handlers
BOOL CEditLinkFormatDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_listCtrl.InsertColumn(0,"网站名称",LVCFMT_LEFT,60);
m_listCtrl.InsertColumn(1,"链接格式",LVCFMT_LEFT,253);
CWebInfoSet rs ;
rs.Open();
while(!rs.IsEOF())
{
int nItem = m_listCtrl.InsertItem(0,rs.m_WebName);
m_listCtrl.SetItemText(nItem,1,rs.m_LinkFormat);
m_listCtrl.SetItemData(nItem,(DWORD)rs.m_ID);
if(1 == m_listCtrl.GetItemCount())
{
m_strWebName = rs.m_WebName ;
m_strLinkFormat = rs.m_LinkFormat;
UpdateData(false);
}
rs.MoveNext();
}
rs.Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEditLinkFormatDlg::OnAdd()
{
UpdateData(true);
long nID ;
if(!CWebInfoSet::AddLinkFormat(m_strWebName,m_strLinkFormat,nID))
{//更改数据库内容
AfxMessageBox("数据库添加记录失败");
return ;
}
//更新界面
int nItem = m_listCtrl.InsertItem(0,m_strWebName);
m_listCtrl.SetItemText(nItem,1,m_strLinkFormat);
m_listCtrl.SetItemData(nItem,(DWORD)nID);
}
void CEditLinkFormatDlg::OnEdit()
{
UpdateData(true);
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
if(NULL == pos)
AfxMessageBox("请选择一条记录,再点删除");
int nItem = m_listCtrl.GetNextSelectedItem(pos);
long nID = m_listCtrl.GetItemData(nItem);
if(!CWebInfoSet::EditLinkFormat(nID,m_strWebName,m_strLinkFormat))
{//修改数据库内容
AfxMessageBox("数据库中修改记录失败");
return ;
}
//修改界面
m_listCtrl.SetItemText(nItem,0,m_strWebName);
m_listCtrl.SetItemText(nItem,1,m_strLinkFormat);
UpdateWindow();
Invalidate();
}
void CEditLinkFormatDlg::OnDelete()
{
UpdateData(true);
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
if(NULL == pos)
AfxMessageBox("请选择一条记录,再点删除");
int nItem = m_listCtrl.GetNextSelectedItem(pos);
long nID = m_listCtrl.GetItemData(nItem);
if(!CWebInfoSet::DeleteLinkFormat(nID))
{//修改数据库
AfxMessageBox("从数据库中删除记录失败");
return ;
}
m_listCtrl.DeleteItem(nItem);//修改界面
}
void CEditLinkFormatDlg::OnItemchangedListctrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int nItem = pNMListView->iItem ;
m_strWebName = m_listCtrl.GetItemText(nItem,0);
m_strLinkFormat = m_listCtrl.GetItemText(nItem,1);
UpdateData(false);
*pResult = 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?