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

📄 sheet.cpp

📁 微型文本编辑器. 多文档界面
💻 CPP
字号:
// Sheet.cpp : implementation file
//

#include "stdafx.h"
#include "Wediter.h"
#include "Sheet.h"


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

/////////////////////////////////////////////////////////////////////////////
// CSheet

IMPLEMENT_DYNAMIC(CSheet, CPropertySheet)

CSheet::CSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
	Setpages();
}

CSheet::CSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
	Setpages();
}

CSheet::~CSheet()
{
}


BEGIN_MESSAGE_MAP(CSheet, CPropertySheet)
	//{{AFX_MSG_MAP(CSheet)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSheet message handlers

BOOL CSheet::OnCommand(WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	switch(wParam)
	{
		case IDOK:  //确定
		{
			int n,reidx;
			reidx=GetActiveIndex();
			for(n=0;n<GetPageCount();n++)
			{
				SetActivePage(n);
				Getpagedata(GetActivePage());
			}
			SetActivePage(reidx);
			return CPropertySheet::OnCommand(wParam, lParam);
		}
		case IDCANCEL: //取消
			return CPropertySheet::OnCommand(wParam, lParam);
		case ID_APPLY_NOW: //应用
		{
			Getpagedata(GetActivePage());
			return CPropertySheet::OnCommand(wParam, lParam);
		}
		case IDHELP:  //帮助
		{
			AfxGetApp()->m_pMainWnd->OnHelpFinder();
			return TRUE; 
		}
		default: //其它
			return CPropertySheet::OnCommand(wParam, lParam);
	}
}

void CSheet::Setpages()
{
	m_pagedata.m_char=gapp.charname;
	m_pagedata.m_word=gapp.wordname;
	m_pagestate.m_icon=gapp.icon;
	m_pagestate.m_rowcol=gapp.rowcol;
	m_pagestate.m_stats=gapp.stats;
	m_pagestate.m_time=gapp.time;
	m_pagestate.m_tool=gapp.tool;
	m_pagetabs.m_tabs=gapp.tabs/4;

	AddPage(&m_pagedata);
  AddPage(&m_pagestate);
	AddPage(&m_pagetabs);
}

void CSheet::Getpagedata(CPropertyPage* pag)
{
	pag->UpdateData();
	switch(GetPageIndex(pag))
	{
		case 0:  //库文件
		{
			m_pagedata.m_char.TrimLeft();
			m_pagedata.m_char.TrimRight();
			m_pagedata.m_word.TrimLeft();
			m_pagedata.m_word.TrimRight();
			if(!m_pagedata.m_char.IsEmpty())
				gapp.charname=m_pagedata.m_char;
			if(!m_pagedata.m_word.IsEmpty())
				gapp.wordname=m_pagedata.m_word;
		}
		case 1:  //显示
		{
			gapp.icon=m_pagestate.m_icon;
			gapp.rowcol=m_pagestate.m_rowcol;
			gapp.stats=m_pagestate.m_stats;
			gapp.time=m_pagestate.m_time;
			gapp.tool=m_pagestate.m_tool;
			CToolBar* ptolbar=(CToolBar*)
				AfxGetApp()->m_pMainWnd->GetDescendantWindow(AFX_IDW_TOOLBAR);
			if(ptolbar)
			{
				if(gapp.tool==1)
				{
					ptolbar->ShowWindow(SW_SHOW);
					Setmanwindows();
				}
				else
				{
					ptolbar->ShowWindow(SW_HIDE);
					Setmanwindows();
				}
			}
			ptolbar=NULL;
			delete ptolbar;

			CStatusBar* pStatus=(CStatusBar*)
				AfxGetApp()->m_pMainWnd->GetDescendantWindow(AFX_IDW_STATUS_BAR);
			if(pStatus)
			{
				if(gapp.stats==1)
				{
					pStatus->ShowWindow(SW_SHOW);
					Setmanwindows();
					if(gapp.time==1)
						pStatus->SetPaneStyle(pStatus->CommandToIndex(ID_INDICATOR_CLOCK),SBPS_NORMAL);
					else
						pStatus->SetPaneStyle(pStatus->CommandToIndex(ID_INDICATOR_CLOCK),SBPS_DISABLED);
					if(gapp.rowcol==1)
					{
						pStatus->SetPaneStyle(1,SBPS_NORMAL);
						pStatus->SetPaneStyle(2,SBPS_NORMAL);
					}
					else
					{
						pStatus->SetPaneStyle(1,SBPS_DISABLED);
						pStatus->SetPaneStyle(2,SBPS_DISABLED);
					}
				}
				else
				{
					pStatus->ShowWindow(SW_HIDE);
					Setmanwindows();
				}
			}
			pStatus=NULL;
			delete pStatus;
		}
		case 2:  //缩进
		{
			gapp.tabs=m_pagetabs.m_tabs*4;
			pview->SetTabStops(gapp.tabs);
		}
	}
}

void CSheet::Setmanwindows()
{
	CRect rect;
	AfxGetApp()->m_pMainWnd->GetWindowRect(rect);
	AfxGetApp()->m_pMainWnd->MoveWindow(rect.TopLeft().x,rect.TopLeft().y,rect.Width(),rect.Height()-1);
	AfxGetApp()->m_pMainWnd->MoveWindow(rect.TopLeft().x,rect.TopLeft().y,rect.Width(),rect.Height());
}

⌨️ 快捷键说明

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