⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brow.cpp

📁 ado操作数据库。oracle,sql2000只需更换连接字符串即可。 另外说明 我是原创作者。 欢迎大家和我交流 msn:hans_38@163.net
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -