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

📄 editpg1.cpp

📁 一个完整的编辑器的代码(很值得参考
💻 CPP
字号:
// editpg1.cpp : implementation file
//

#include "stdafx.h"
#include "editcmd.h"
#include "editpg1.h"

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

/////////////////////////////////////////////////////////////////////////////
// CEditorPage1 property page

IMPLEMENT_DYNCREATE(CEditorPage1, CPropertyPage)

CEditorPage1::CEditorPage1(CCrystalEditView *pParent /*= NULL*/) : CPropertyPage(CEditorPage1::IDD), m_pParent (pParent), m_curdef (NULL), m_processed (0)
{
	//{{AFX_DATA_INIT(CEditorPage1)
    m_nInsertTabs = 0;
    m_nTabSize = 4;
    m_bShowTabs = FALSE;
    m_nBraces = 0;
    m_bAutoIndent = TRUE;
	//}}AFX_DATA_INIT
}

CEditorPage1::~CEditorPage1()
{
}

void CEditorPage1::UpdateStatus ()
{
  if (m_curdef)
    {
      m_nInsertTabs = (m_curdef->flags & SRCOPT_INSERTTABS) == FALSE;
      m_nTabSize = m_curdef->tabsize;
      m_bShowTabs = (m_curdef->flags & SRCOPT_SHOWTABS) != FALSE;
      m_bAutoIndent = (m_curdef->flags & SRCOPT_AUTOINDENT) != FALSE;
      if (m_curdef->flags & SRCOPT_BRACEANSI)
        {
          m_nBraces = 1;
        }
      else if (m_curdef->flags & SRCOPT_BRACEGNU)
        {
          m_nBraces = 2;
        }
      else /*no braces indent */
        {
          m_nBraces = 0;
        }
    }
  GetDlgItem (IDC_INSERT_TABS)->EnableWindow (m_processed);
  GetDlgItem (IDC_INSERT_SPACES)->EnableWindow (m_processed);
  GetDlgItem (IDC_TAB_SIZE)->EnableWindow (m_curdef != NULL);
  GetDlgItem (IDC_SHOW_TABS)->EnableWindow (m_processed);
  GetDlgItem (IDC_AUTOINDENT)->EnableWindow (m_processed);
  GetDlgItem (IDC_BRACES_NO)->EnableWindow (m_processed);
  GetDlgItem (IDC_BRACES_ANSI)->EnableWindow (m_processed);
  GetDlgItem (IDC_BRACES_GNU)->EnableWindow (m_processed);
  UpdateData (FALSE);
  if (m_processed > 1)
    {
      ((CButton*) GetDlgItem (IDC_INSERT_TABS))->SetCheck (0);
      ((CButton*) GetDlgItem (IDC_INSERT_SPACES))->SetCheck (0);
      ((CEdit*) GetDlgItem (IDC_TAB_SIZE))->SetWindowText (_T ("0"));
      ((CButton*) GetDlgItem (IDC_SHOW_TABS))->SetCheck (2);
      ((CButton*) GetDlgItem (IDC_AUTOINDENT))->SetCheck (2);
      ((CButton*) GetDlgItem (IDC_BRACES_NO))->SetCheck (0);
      ((CButton*) GetDlgItem (IDC_BRACES_ANSI))->SetCheck (0);
      ((CButton*) GetDlgItem (IDC_BRACES_GNU))->SetCheck (0);
    }
  UpdateData (TRUE);
}

void CEditorPage1::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEditorPage1)
  DDX_Radio (pDX, IDC_INSERT_TABS, m_nInsertTabs);
  DDX_Radio (pDX, IDC_BRACES_NO, m_nBraces);
  DDX_Text (pDX, IDC_TAB_SIZE, m_nTabSize);
  DDX_Check (pDX, IDC_SHOW_TABS, m_bShowTabs);
  DDX_Check (pDX, IDC_AUTOINDENT, m_bAutoIndent);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CEditorPage1, CPropertyPage)
	//{{AFX_MSG_MAP(CEditorPage1)
ON_BN_CLICKED (IDC_INSERT_TABS, OnModified)
ON_BN_CLICKED (IDC_INSERT_SPACES, OnModified)
ON_BN_CLICKED (IDC_BRACES_NO, OnModified)
ON_BN_CLICKED (IDC_BRACES_ANSI, OnModified)
ON_BN_CLICKED (IDC_BRACES_GNU, OnModified)
ON_BN_CLICKED (IDC_AUTOINDENT, OnModified)
ON_BN_CLICKED (IDC_SHOW_TABS, OnModified)
ON_EN_CHANGE (IDC_TAB_SIZE, OnModified)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEditorPage1 message handlers

BOOL CEditorPage1::
OnInitDialog ()
{
  if (m_pParent)
    {
      m_nInsertTabs = m_pParent->GetInsertTabs () ? 0 : 1;
      m_nTabSize = m_pParent->GetTabSize ();
      m_bShowTabs = m_pParent->GetViewTabs ();
      m_bAutoIndent = m_pParent->GetAutoIndent ();
      if (m_pParent->GetFlags () & SRCOPT_BRACEANSI)
        {
          m_nBraces = 1;
        }
      else if (m_pParent->GetFlags () & SRCOPT_BRACEGNU)
        {
          m_nBraces = 2;
        }
      else
        {
          m_nBraces = 0;
        }
    }
  else
    {
      CCrystalEditView::TextDefinition *def = CCrystalEditView::m_SourceDefs;
      m_nInsertTabs  = def->flags & SRCOPT_INSERTTABS ? 0 : 1;
      m_bShowTabs = def->flags & SRCOPT_SHOWTABS;
      m_bAutoIndent = def->flags & SRCOPT_AUTOINDENT;
      m_nBraces = def->flags & SRCOPT_BRACEANSI ? 1 : (def->flags & SRCOPT_BRACEGNU ? 2 : 0);
      m_nTabSize = def->tabsize;
    }

  CPropertyPage::OnInitDialog ();
  UpdateStatus ();

  return TRUE;
}

void CEditorPage1::
OnModified ()
{
  ((CPropertyPage*) (GetParent ()->GetParent ()))->SetModified ();
}

⌨️ 快捷键说明

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