📄 rootpage.cpp
字号:
// RootPage.cpp : implementation of the CRootPage class
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1997-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "stdafx.h"
#include "HttpSvr.h"
#include "RootPage.h"
#include "HttpDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRootPage property page
IMPLEMENT_DYNCREATE(CRootPage, CPropertyPage)
CRootPage::CRootPage() : CPropertyPage(CRootPage::IDD)
{
}
CRootPage::CRootPage( CHttpSvrDoc* pDoc )
: CPropertyPage(CRootPage::IDD)
{
//{{AFX_DATA_INIT(CRootPage)
m_strRoot = _T("");
//}}AFX_DATA_INIT
m_pDoc = pDoc;
}
CRootPage::~CRootPage()
{
}
void CRootPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRootPage)
DDX_Text(pDX, IDC_ROOTDIR, m_strRoot);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRootPage, CPropertyPage)
//{{AFX_MSG_MAP(CRootPage)
ON_BN_CLICKED(IDC_RESET, OnReset)
ON_EN_CHANGE(IDC_ROOTDIR, OnChangeRootDir)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRootPage message handlers
void CRootPage::OnReset()
{
SetDlgItemText( IDC_ROOTDIR, m_pDoc->m_strRoot );
SetModified( FALSE );
}
void CRootPage::OnChangeRootDir()
{
SetModified( TRUE );
}
BOOL CRootPage::OnKillActive()
{
BOOL bOk = CPropertyPage::OnKillActive();
if ( bOk )
{
// make sure it doesn't end in a separator char....
if ( m_strRoot[ m_strRoot.GetLength()-1 ] == SEPCHAR )
m_strRoot = m_strRoot.Left( m_strRoot.GetLength() - 1 );
// resolve to complete file path....
CString strFull;
GetFullPathName( m_strRoot, MAX_PATH, strFull.GetBuffer(MAX_PATH+1), NULL );
strFull.ReleaseBuffer();
// set the control to this complete, fixed path....
SetDlgItemText( IDC_ROOTDIR, strFull );
m_strRoot = strFull;
// make sure the directory is valid....
DWORD dwAttr = GetFileAttributes( strFull );
if ( dwAttr == -1 ||
(dwAttr & FILE_ATTRIBUTE_DIRECTORY) == 0 )
{
CString strText;
strText.LoadString( IDS_BAD_ROOT );
MessageBox( strText, NULL, MB_OK|MB_ICONSTOP );
bOk = FALSE;
}
}
return bOk;
}
void CRootPage::OnOK()
{
// make sure it doesn't end in a sepchar....
if ( m_strRoot[ m_strRoot.GetLength()-1 ] == SEPCHAR )
m_strRoot = m_strRoot.Left( m_strRoot.GetLength()-1 );
// copy it over....
if ( m_pDoc->m_strRoot.CompareNoCase( m_strRoot ) )
{
m_pDoc->m_strRoot = m_strRoot;
m_pDoc->SetModifiedFlag( TRUE );
}
CPropertyPage::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -