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

📄 externalutils.cpp

📁 myie的源程序是用VC++写自已可以扩搌使用
💻 CPP
字号:
// ExternalUtils.cpp : implementation file
//

#include "stdafx.h"
#include "MyIE.h"
#include "ExternalUtils.h"
#include "MainFrm.h"
#include "InputUtil.h"

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

/////////////////////////////////////////////////////////////////////////////
// CExternalUtils dialog


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


void CExternalUtils::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CExternalUtils)
	DDX_Control(pDX, IDC_EXTERN_UTIL, m_UtilList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CExternalUtils, CDialog)
	//{{AFX_MSG_MAP(CExternalUtils)
	ON_BN_CLICKED(IDC_ADD_UTIL, OnAddUtil)
	ON_BN_CLICKED(IDC_MOD_UTIL, OnModUtil)
	ON_BN_CLICKED(IDC_DEL_UTIL, OnDelUtil)
	ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1, OnDeltaposSpin1)
	ON_NOTIFY(LVN_ENDLABELEDIT, IDC_EXTERN_UTIL, OnEndlabeleditExternUtil)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CExternalUtils message handlers

BOOL CExternalUtils::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_UtilList.SetExtendedStyle(m_UtilList.GetExtendedStyle()|LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);

	POSITION pos = ((CMainFrame*)pMainFrame)->m_lstrUtilNames.GetHeadPosition();
	POSITION pos1 = ((CMainFrame*)pMainFrame)->m_lstrUtilCmds.GetHeadPosition();
	POSITION pos2 = ((CMainFrame*)pMainFrame)->m_lbUtilStart.GetHeadPosition();
	int i=0;
	CRect rect;
	m_UtilList.InsertColumn(0,"Name");
	m_UtilList.GetWindowRect(rect);
	m_UtilList.SetColumnWidth(0, 70);
	m_UtilList.InsertColumn(1,"Command");
	m_UtilList.SetColumnWidth(1, rect.Width()-75);

	while(pos!=NULL)
	{
		m_UtilList.InsertItem(i, ((CMainFrame*)pMainFrame)->m_lstrUtilNames.GetAt(pos));
		((CMainFrame*)pMainFrame)->m_lstrUtilNames.GetNext(pos);
		m_UtilList.SetItemText(i, 1, ((CMainFrame*)pMainFrame)->m_lstrUtilCmds.GetAt(pos1));
		((CMainFrame*)pMainFrame)->m_lstrUtilCmds.GetNext(pos1);
		if(((CMainFrame*)pMainFrame)->m_lbUtilStart.GetAt(pos2))
			m_UtilList.SetCheck(i);
		((CMainFrame*)pMainFrame)->m_lbUtilStart.GetNext(pos2);
		i++;
	}

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

void CExternalUtils::OnOK() 
{
	// TODO: Add extra validation here
	((CMainFrame*)pMainFrame)->m_lstrUtilNames.RemoveAll();
	((CMainFrame*)pMainFrame)->m_lstrUtilCmds.RemoveAll();
	((CMainFrame*)pMainFrame)->m_lbUtilStart.RemoveAll();
	int n = m_UtilList.GetItemCount();
	for( int i=0; i<n; i++)
	{
		((CMainFrame*)pMainFrame)->m_lstrUtilNames.AddTail(m_UtilList.GetItemText(i,0));
		((CMainFrame*)pMainFrame)->m_lstrUtilCmds.AddTail(m_UtilList.GetItemText(i,1));
		((CMainFrame*)pMainFrame)->m_lbUtilStart.AddTail(m_UtilList.GetCheck(i));
	}
	
	CDialog::OnOK();
}

void CExternalUtils::OnAddUtil() 
{
	// TODO: Add your control notification handler code here
	CInputUtil dlg;
	if(dlg.DoModal()==IDOK)
	{
		if(!dlg.m_Command.IsEmpty())
		{
			if(dlg.m_Name.IsEmpty())
				dlg.m_Name = dlg.m_Command;
	
			int i = m_UtilList.GetItemCount();

			i = m_UtilList.InsertItem(i, dlg.m_Name);
	
			m_UtilList.SetItemText(i, 1, dlg.m_Command);

			m_UtilList.SetCheck(i,dlg.m_bStartup);

		}
	}
}

void CExternalUtils::OnModUtil() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_UtilList.GetFirstSelectedItemPosition();
	int nItem;
	CInputUtil dlg;
	if(pos!=NULL)
	{
		nItem = m_UtilList.GetNextSelectedItem(pos);
		dlg.m_Name = m_UtilList.GetItemText(nItem, 0);
		dlg.m_Command = m_UtilList.GetItemText(nItem, 1);
		dlg.m_bStartup  = m_UtilList.GetCheck(nItem);
	}
	else
		return;

	if(dlg.DoModal()==IDOK)
	{
		if(!dlg.m_Command.IsEmpty())
		{
			if(dlg.m_Name.IsEmpty())
				dlg.m_Name = dlg.m_Command;
	
			m_UtilList.SetItemText(nItem, 0, dlg.m_Name);
	
			m_UtilList.SetItemText(nItem, 1, dlg.m_Command);

			m_UtilList.SetCheck(nItem,dlg.m_bStartup);

		}
	}
	
}

void CExternalUtils::OnDelUtil() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_UtilList.GetFirstSelectedItemPosition();
	int nItem;
	if(pos!=NULL)
	{
		nItem = m_UtilList.GetNextSelectedItem(pos);
		m_UtilList.DeleteItem(nItem);
	}
	else
		return;

}

void CExternalUtils::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here
	POSITION pos = m_UtilList.GetFirstSelectedItemPosition();
	int nItem = -1, newItem;
	if(pos!=NULL)
	{
		nItem = m_UtilList.GetNextSelectedItem(pos);
		if(pNMUpDown->iDelta<0)
			newItem = nItem -1;
		else
			newItem = nItem + 1;
		int n = m_UtilList.GetItemCount();
		if(newItem>=0 && newItem<n)
		{
			CString str = m_UtilList.GetItemText(nItem,0);
			CString str1 = m_UtilList.GetItemText(nItem,1);
			BOOL bs = m_UtilList.GetCheck(nItem);
			m_UtilList.DeleteItem(nItem);

			m_UtilList.InsertItem(newItem, str);
			m_UtilList.SetItemText(newItem, 1, str1);
			m_UtilList.SetCheck(newItem, bs);
			m_UtilList.SetItemState(newItem, LVIS_SELECTED, LVIS_SELECTED);
			m_UtilList.EnsureVisible(newItem, FALSE);

		}
	}	
	*pResult = 0;
}

void CExternalUtils::OnEndlabeleditExternUtil(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
	// TODO: Add your control notification handler code here
	CString str;
	m_UtilList.GetEditControl()->GetWindowText(str);
	str.TrimLeft();
	str.TrimRight();
	m_UtilList.SetItemText(pDispInfo->item.iItem,0,str);
	
	*pResult = 0;
}

⌨️ 快捷键说明

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