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

📄 quicksearchdlg.cpp

📁 myie2.4版本的源代码
💻 CPP
字号:
// QuickSearchDlg.cpp : implementation file
//

#include "stdafx.h"
#include "myie.h"
#include "QuickSearchDlg.h"
#include "MainFrm.h"
#include "InputQuickSearch.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CQuickSearchDlg dialog


CQuickSearchDlg::CQuickSearchDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CQuickSearchDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CQuickSearchDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CQuickSearchDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CQuickSearchDlg)
	DDX_Control(pDX, IDC_SEACHLIST, m_EngineList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CQuickSearchDlg, CDialog)
	//{{AFX_MSG_MAP(CQuickSearchDlg)
	ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
	ON_BN_CLICKED(IDC_INSERT, OnInsert)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_NOTIFY(NM_DBLCLK, IDC_SEACHLIST, OnDblclkSeachlist)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQuickSearchDlg message handlers

BOOL CQuickSearchDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_EngineList.SetExtendedStyle(m_EngineList.GetExtendedStyle()| LVS_EX_FULLROWSELECT);

	//setup list ctrl
	CRect rect;
	int i=0;

	m_EngineList.InsertColumn(0,"Name");
	m_EngineList.GetWindowRect(rect);
	m_EngineList.SetColumnWidth(0, 60);
	m_EngineList.InsertColumn(1,"Search Engine");
	m_EngineList.SetColumnWidth(1, rect.Width()-73);

	POSITION pos = ((CMainFrame*)pMainFrame)->m_QuickSearchMap.GetStartPosition();
	CString name, url;
	while(pos!=NULL)
	{
		((CMainFrame*)pMainFrame)->m_QuickSearchMap.GetNextAssoc(pos, name, url);
		m_EngineList.InsertItem(i, name);
		m_EngineList.SetItemText(i, 1, url);
		i++;
	}

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CQuickSearchDlg::OnOK() 
{
	// TODO: Add extra validation here
	((CMainFrame*)pMainFrame)->m_QuickSearchMap.RemoveAll();
	int n = m_EngineList.GetItemCount();
	CString alias;
	CString filename = ((CMyIEApp*)AfxGetApp())->m_strQuickSearchPath;
	char key[9];
	WritePrivateProfileSection("QuickSearch", NULL, filename);
	//save quick search
	for( int i=0; i<n; i++)
	{
		alias = m_EngineList.GetItemText(i,0);
		alias.TrimLeft(); alias.TrimRight();
		((CMainFrame*)pMainFrame)->m_QuickSearchMap.SetAt(alias,m_EngineList.GetItemText(i,1));
		key[0]='N';
		itoa(i, key+1, 10);
		WritePrivateProfileString("QuickSearch", key, alias, filename);
		key[0]='S';
		itoa(i, key+1, 10);
		WritePrivateProfileString("QuickSearch", key, m_EngineList.GetItemText(i,1), filename);
	}
	
	CDialog::OnOK();
}

void CQuickSearchDlg::OnUpdate() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_EngineList.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int i = m_EngineList.GetNextSelectedItem(pos);
		CInputQuickSearch dlg;
		dlg.m_strName = m_EngineList.GetItemText(i,0);
		dlg.m_strEngine = m_EngineList.GetItemText(i,1);
		if(dlg.DoModal() == IDOK)
		{
			CString alias = dlg.m_strName;
			CString url = dlg.m_strEngine;
			alias.TrimLeft();
			url.TrimLeft();
			if(alias !="" && !alias.IsEmpty() && url!="" && !url.IsEmpty())
			{
				m_EngineList.SetItemText(i, 0, alias);
				m_EngineList.SetItemText(i, 1, url);
			}
		}
	}	
}

void CQuickSearchDlg::OnInsert() 
{
	// TODO: Add your control notification handler code here
	CInputQuickSearch dlg;
	if(dlg.DoModal() == IDOK)
	{
		CString alias = dlg.m_strName;
		CString url = dlg.m_strEngine;
		alias.TrimLeft(); alias.TrimRight();
		url.TrimLeft();
		int i = m_EngineList.GetItemCount();
		if(alias !="" && !alias.IsEmpty() && url!="" && !url.IsEmpty())
		{
			m_EngineList.InsertItem(i, alias);
			m_EngineList.SetItemText(i, 1, url);
		}
	}	
}

void CQuickSearchDlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_EngineList.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int i = m_EngineList.GetNextSelectedItem(pos);
		m_EngineList.DeleteItem(i);
	}	
	
}

void CQuickSearchDlg::OnDblclkSeachlist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	OnUpdate();

	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -