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

📄 browseserversdlg.cpp

📁 MSSQL备份及恢复的VC++源代码。提供给大家学习。
💻 CPP
字号:
// BrowseServersDlg.cpp : implementation file
//

#include "stdafx.h"
#include "RcMSSQL.h"
#include "BrowseServersDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBrowseServersDlg dialog


CBrowseServersDlg::CBrowseServersDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBrowseServersDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBrowseServersDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_strErrorMessage=_T("");

	m_parrServersList=NULL;
	m_strServerName=_T("");
}


void CBrowseServersDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBrowseServersDlg)
	DDX_Control(pDX, IDC_LIST_SERVERS, m_listServers);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBrowseServersDlg, CDialog)
	//{{AFX_MSG_MAP(CBrowseServersDlg)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_SERVERS, OnDblclkListServers)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBrowseServersDlg message handlers

BOOL CBrowseServersDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if (m_parrServersList == NULL)			/* Cannot be NULL */
	{
		m_strErrorMessage.Format("%s", "无法得到SQL SERVER服务器列表!");
		MessageBox(m_strErrorMessage, "信息...", MB_OK);
		CDialog::OnCancel();
	}

//	|LVS_EX_GRIDLINES(网格)
//	|LVS_SHOWSELALWAYS(高亮)
//	|LVS_EX_FLATSB(滑动条透明)
//	|LVS_EX_CHECKBOXES
	DWORD dwStyle;
	dwStyle=m_listServers.GetExtendedStyle();
	m_listServers.SetExtendedStyle(dwStyle|LVS_EX_FULLROWSELECT);

//	CFont font;
//	font.CreateFont(14,0,0,0,9,FALSE,FALSE,9,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"Microsoft Sans Serif ");	//宋体
//	CFont font;
//	font.CreatePointFont(100,"Microsoft Sans Serif"); 
//	m_listServers.SetFont(&font,TRUE);
/*	LOGFONT lf;
	memset(&lf, 0, sizeof(LOGFONT));
	lf.lfHeight = 14;
	lf.lfWeight = 9;
	strcpy(lf.lfFaceName, "Microsoft Sans Serif");
	HFONT hfont = ::CreateFontIndirect(&lf);
	CFont* font = CFont::FromHandle(hfont);
	m_listServers.SetFont(font);*/
   
	m_listServers.InsertColumn(0,"活动服务器",LVCFMT_LEFT,238);	
	long lServersAmount = m_parrServersList->GetSize();
	for ( int i = 0; i < lServersAmount; i++ )
	{
		m_listServers.InsertItem(m_listServers.GetItemCount(), m_parrServersList->ElementAt(i));
	}
	m_listServers.SetSelectionMark(0);
	m_listServers.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);

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

void CBrowseServersDlg::PostNcDestroy() 
{
	CDialog::PostNcDestroy();
}

void CBrowseServersDlg::OnOK() 
{
	if(!SetServerName())
	{
		MessageBox("请选择一个活动服务器名!", "信息...", MB_OK);
		return;
	}	
	CDialog::OnOK();
}

void CBrowseServersDlg::OnCancel() 
{
	CDialog::OnCancel();
}

//////////////////////////////////////////////////////////////////////////////////////
// custom added

BOOL CBrowseServersDlg::SetServersList(CArray<CString, CString&>* parrServersList)
{
	if (parrServersList == NULL)			/* Cannot be NULL */
	{
		m_strErrorMessage.Format("%s", "无法得到SQL SERVER服务器列表!");
		MessageBox(m_strErrorMessage, "信息...", MB_OK);
		CDialog::OnCancel();
	}
	m_parrServersList = parrServersList;
	return TRUE;
}

BOOL CBrowseServersDlg::SetServerName()
{
	int nItem=m_listServers.GetSelectionMark();
	if (nItem != -1)
		m_strServerName=m_listServers.GetItemText(nItem,0);
	else
		return FALSE;
	return TRUE;
}

void CBrowseServersDlg::OnDblclkListServers(NMHDR* pNMHDR, LRESULT* pResult) 
{
//	*pResult = 0;
	if (!SetServerName())
	{
		MessageBox("请选择一个活动服务器名!", "信息...", MB_OK);
		return;
	}	
	CDialog::OnOK();
}

⌨️ 快捷键说明

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