📄 brow.cpp
字号:
// Brow.cpp : implementation file
#include "stdafx.h"
#include "Tele.h"
#include "Brow.h"
#include "ado.h"
#include "update.h"
#include "TeleDlg.h"
#include "XPMenu.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBrow dialog
#define WM_ICON_NOTIFY (WM_USER + 100)
CString CBrow::g_strItem;
CBrow::CBrow(CWnd* pParent /*=NULL*/)
: CDialog(CBrow::IDD, pParent)
{
//{{AFX_DATA_INIT(CBrow)
m_strItem = _T("");
m_strSelect = _T("");
m_strI = _T("");
m_strSQL = _T("");
//}}AFX_DATA_INIT
m_strSelectCom = "name" ;
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_bMinToTray = FALSE;
m_bTray = TRUE;
m_DataTableType = telelist;
m_strSQL = "填入欲执行的SQL语句,可以用上面的按钮选择" ;
m_bSQL = 0;
}
void CBrow::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBrow)
DDX_Control(pDX, IDC_STATIC_QUERY, m_StaticCtl);
DDX_Control(pDX, IDC_COMBO_SELECT, m_ComboxSelect);
DDX_Control(pDX, IDC_LIST, m_ListCtrl);
DDX_Text(pDX, IDC_EDIT_ITEM, m_strItem);
DDX_Text(pDX, IDC_EDIT_SELECT, m_strSelect);
DDX_Text(pDX, IDC_STATIC_I, m_strI);
DDX_Text(pDX, IDC_EDIT_SQL, m_strSQL);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBrow, CDialog)
//{{AFX_MSG_MAP(CBrow)
ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
ON_BN_CLICKED(IDC_BUTTON_SELECT, QueryAll)
ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify)
ON_NOTIFY(NM_CLICK, IDC_LIST, OnClickList)
ON_NOTIFY(NM_RDBLCLK, IDC_LIST, OnRdblclkList)
ON_WM_SYSCOMMAND()
ON_CBN_SELCHANGE(IDC_COMBO_SELECT, OnSelchangeComboSelect)
ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotification)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(ID_SHOW, OnShow)
ON_WM_SIZE()
ON_COMMAND(ID_P2P, OnP2p)
ON_COMMAND(ID_TELELIST, OnTelelist)
ON_COMMAND(ID_FORUM, OnForum)
ON_COMMAND(ID_MAIL, OnMail)
ON_BN_CLICKED(IDC_BUTTON_RECENT, OnButtonRecent)
ON_WM_RBUTTONUP()
ON_BN_CLICKED(IDC_BUTTON_SQL, OnButtonSql)
ON_BN_CLICKED(IDC_BUTTON_ADDSQL, OnButtonAddsql)
ON_BN_CLICKED(IDC_BUTTON_DELSQL, OnButtonDelsql)
ON_BN_CLICKED(IDC_BUTTON_UPDATESQL, OnButtonUpdatesql)
ON_BN_CLICKED(IDC_BUTTON_SELECTSQL, OnButtonSelectsql)
ON_COMMAND(ID_MENUITEM_HELP, OnMenuitemHelp)
ON_COMMAND(ID_NAME, OnName)
ON_COMMAND(ID_NO, OnNo)
ON_COMMAND(ID_DATE, OnDate)
ON_COMMAND(ID_RECENT, OnRecent)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBrow message handlers
BOOL CBrow::OnInitDialog()
{
CDialog::OnInitDialog();
HeaderTele();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
OnMinToTray();
CreateTrayIcon();
m_ComboxSelect.AddString("姓名");
m_ComboxSelect.AddString("备注");
m_ComboxSelect.SetCurSel(1);
Select("SELECT * FROM telelist Order By [recent] DESC");
//建立ToolTip
m_tooltip.Create(this);
m_tooltip.SetDelayTime(800);
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON_SELECT), "填入右边的查询条件");
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON_DEL), "请先选择要删除的记录");
m_tooltip.Activate(TRUE);
return TRUE;
}
void CBrow::OnButtonDel()
{
if (AfxMessageBox("确定要删除的记录吗?", MB_OKCANCEL, 0) == IDOK)
{
UpdateData(TRUE);
if ( strcmp(m_strItem,"") == 0 )
{
AfxMessageBox("请选择删除的记录");
return;
}
CString strSql
// = "UPDATE tblTest SET Description = 'hi, Mars, this is from the earth' WHERE ID = 21"; //update
= "DELETE FROM telelist WHERE ID = " + m_strItem ;
m_strSQL = strSql;
UpdateData(FALSE);
((static_cast<CTeleApp *>(AfxGetApp()))->g_pDb)->Execute(strSql);
Select("SELECT * FROM telelist Order By [date] DESC");
}
return ;
}
void CBrow::OnButtonAdd()
{
switch(m_DataTableType)
{
case telelist :
AddTeleList();
break;
case mail:
break;
default:
;
}
}
void CBrow::QueryAll()
{
switch(m_DataTableType)
{
case telelist:
QueryTeleList();
break;
case mail:
QueryMail();
break;
case p2p:
break;
case forum:
break;
default:
;
}
}
void CBrow::OnButtonModify()
{
UpdateData(TRUE);
if ( strcmp(m_strItem,"") == 0 )
{
AfxMessageBox("请填写标记号");
return;
}
CBrow::g_strItem = m_strItem;
CUpdate test;
test.m_pListCtrl = &m_ListCtrl;
test.DoModal();
}
void CBrow::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
//-- Get the number of selected rows
int nSelRows = m_ListCtrl.GetSelectedCount();
if(!nSelRows) //-- If there are no rows selected,jump out here
return;
//-- Get the position of the first selected row
POSITION pos =m_ListCtrl.GetFirstSelectedItemPosition();
//-- Get the index of next selected row
int i = m_ListCtrl.GetNextSelectedItem(pos);
TRACE("First Item %d\n",i);
if (i != -1) //-- Execute this loop as long as GetNextSelectedItem() returns -1
m_strItem = m_ListCtrl.GetItemText(i, 4);
UpdateData(FALSE);
return;
*pResult = 0;
}
void CBrow::OnRdblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
//m_strItem = itoa(HitTestEx(CPoint &point, int *col) const);
//-- Get the number of selected rows
int nSelRows = m_ListCtrl.GetSelectedCount();
if(!nSelRows) //-- If there are no rows selected,jump out here
return;
//-- Get the position of the first selected row
POSITION pos =m_ListCtrl.GetFirstSelectedItemPosition();
//-- Get the index of next selected row
int i = m_ListCtrl.GetNextSelectedItem(pos);
TRACE("First Item %d\n",i);
while (i != -1) //-- Execute this loop as long as GetNextSelectedItem() returns -1
{
m_ListCtrl.DeleteItem(i);
i = m_ListCtrl.GetNextSelectedItem(pos); //-- Get the index of the next selected row
TRACE("Next Item %d\n",i);
}
return;
*pResult = 0;
}
void CBrow::OnOK()
{
}
void CBrow::OnSelchangeComboSelect()
{
CString strTemp;
m_ComboxSelect.GetLBText(m_ComboxSelect.GetCurSel(),strTemp);
if (strTemp=="姓名")
{
m_strSelectCom = "name";
}
else if (strTemp=="备注")
{
m_strSelectCom = "remarks";
}
else
AfxMessageBox("请选择!");
return;
}
void CBrow::CreateTrayIcon()
{
CString strCaption;
strCaption.LoadString(AFX_IDS_APP_TITLE);
m_TrayIcon.Create(this, WM_ICON_NOTIFY, strCaption, m_hIcon, IDR_POPUP_MENU);
m_TrayIcon.HideIcon();
}
LRESULT CBrow::OnTrayNotification(WPARAM wParam, LPARAM lParam)
{
return m_TrayIcon.OnTrayNotification(wParam, lParam);
}
void CBrow::OnMinToTray()
{
if (!m_bMinToTray)
{
m_bTray = TRUE;
m_bMinToTray = TRUE;
}
else
{
m_bTray = FALSE;
m_bMinToTray = FALSE;
}
}
void CBrow::OnSysCommand(UINT nID, LPARAM lParam)
{
CDialog::OnSysCommand(nID, lParam);
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
switch(nID)
{
case SC_MINIMIZE:
if(m_bTray)
{
ShowWindow(SW_HIDE);
m_TrayIcon.ShowIcon();
}
break;
//case
default:
break;
}
}
/*
void CBrow::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}*/
void CBrow::OnAppAbout()
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
void CBrow::OnShow()
{
m_TrayIcon.HideIcon();
ShowWindow(SW_RESTORE);
}
void CBrow::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
}
BOOL CBrow::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
if(pMsg->message == WM_KEYDOWN)
{
int nVirtKey = (int)(pMsg->wParam);
if(nVirtKey==13)
{
if(pMsg->hwnd == GetDlgItem(IDC_EDIT_SELECT)->m_hWnd)
QueryAll();
return TRUE;
}
switch(pMsg->wParam)
{
case VK_RETURN://截获回车
return TRUE;
case VK_ESCAPE://截获ESC
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
return CDialog::PreTranslateMessage(pMsg);
}
/*
BOOL CEDemoDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
int nVirtKey = (int)(pMsg->wParam);
if(nVirtKey==13)
{
if(pMsg->hwnd == GetDlgItem(IDC_EDIT1)->m_hWnd)
OnButton1();
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}*/
void CBrow::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)
{
CDialog::CalcWindowRect(lpClientRect, nAdjustType);
}
void CBrow::OnP2p()
{
HeaderP2p();
m_DataTableType = p2p;
m_ListCtrl.DeleteAllItems();
}
void CBrow::HeaderTele()
{
int i;
for(i = 0; i < 10 ; i++)
m_ListCtrl.DeleteColumn(0);
LONG lStyle = m_ListCtrl.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE);
lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP;
m_ListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)lStyle);
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/;
lvc.iSubItem = 0;
lvc.pszText = (char *)"序号";
lvc.cx = 40;
m_ListCtrl.InsertColumn(0,&lvc);
lvc.iSubItem = 1;
lvc.pszText = (char *)"姓名";
lvc.cx = 85;
m_ListCtrl.InsertColumn(1,&lvc);
lvc.iSubItem = 2;
lvc.pszText = (char *)"电话";
lvc.cx =85;
m_ListCtrl.InsertColumn(2,&lvc);
lvc.iSubItem = 3;
lvc.pszText = (char *)"备注";
lvc.cx = 100;
m_ListCtrl.InsertColumn(3,&lvc);
lvc.iSubItem = 4;
lvc.pszText = (char *)"标记号";
lvc.cx = 50;
m_ListCtrl.InsertColumn(4,&lvc);
lvc.iSubItem = 5;
lvc.pszText = (char *)"浏览次数";
lvc.cx = 60;
m_ListCtrl.InsertColumn(5, &lvc);
lvc.iSubItem = 6;
lvc.pszText = (char *)"记录时间";
lvc.cx = 150;
m_ListCtrl.InsertColumn(6, &lvc);
}
void CBrow::HeaderP2p()
{
int i;
for(i = 0; i < 10 ; i++)
m_ListCtrl.DeleteColumn(0);
LONG lStyle = m_ListCtrl.SendMessage
(LVM_GETEXTENDEDLISTVIEWSTYLE);
lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |
LVS_EX_HEADERDRAGDROP;
m_ListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
(LPARAM)lStyle);
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/;
lvc.iSubItem = 0;
lvc.pszText = (char *)"序号";
lvc.cx = 50;
m_ListCtrl.InsertColumn(0,&lvc);
lvc.iSubItem = 1;
lvc.pszText = (char *)"软件名";
lvc.cx = 100;
m_ListCtrl.InsertColumn(1,&lvc);
lvc.iSubItem = 2;
lvc.pszText = (char *)"网址";
lvc.cx =150;
m_ListCtrl.InsertColumn(2,&lvc);
lvc.iSubItem = 3;
lvc.pszText = (char *)"用户名";
lvc.cx = 100;
m_ListCtrl.InsertColumn(3,&lvc);
lvc.iSubItem = 3;
lvc.pszText = (char *)"密码";
lvc.cx = 60;
m_ListCtrl.InsertColumn(4,&lvc);
lvc.iSubItem = 4;
lvc.pszText = (char *)"日期";
lvc.cx = 100;
m_ListCtrl.InsertColumn(5,&lvc);
lvc.iSubItem = 5;
lvc.pszText =(char*)"备注";
lvc.cx = 100;
m_ListCtrl.InsertColumn(6,&lvc);
}
void CBrow::BrowP2P()
{
m_ListCtrl.DeleteAllItems();
CADORecordset* pRs = new CADORecordset(CTeleApp::g_pDb);
CString TempSql;
int i = -1;
if(pRs->Open((LPCTSTR)"SELECT * FROM p2p "))
//Order By name ASC
//if(pRs->Open("SELECT * FROM telelist WHERE name like '%张%' "))
{
while(!pRs->IsEof())
{
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvitem.state = 0;
lvitem.stateMask = 0;
char temp[50];
lvitem.iItem = ++i;
lvitem.iSubItem = 0;
lvitem.pszText =itoa(i, temp, 10);
m_ListCtrl.InsertItem(&lvitem);
pRs->GetFieldValue("softname",TempSql);
m_ListCtrl.SetItemText(i, 1, (LPCTSTR)TempSql);
pRs->GetFieldValue("URL",TempSql);
m_ListCtrl.SetItemText(i, 2, (LPCTSTR)TempSql);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -