DragonNest/Third/XTToolkitPro/Samples/SkinFramework/SkinSDISample/SampleView.cpp

186 lines
4 KiB
C++
Raw Normal View History

2024-12-19 09:48:26 +08:00
// SampleView.cpp : implementation file
//
#include "stdafx.h"
#include "SkinSDISample.h"
#include "SampleView.h"
#include "Mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSampleView
IMPLEMENT_DYNCREATE(CSampleView, CFormView)
CSampleView::CSampleView()
: CFormView(CSampleView::IDD)
{
//{{AFX_DATA_INIT(CSampleView)
m_nSkin = 0;
m_nTheme = 1;
m_strFind = _T("");
m_bMatchCase = FALSE;
m_bMatchWord = FALSE;
m_bFlat = FALSE;
m_bShowGripper = TRUE;
//}}AFX_DATA_INIT
}
CSampleView::~CSampleView()
{
}
void CSampleView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSampleView)
DDX_Radio(pDX, IDC_RADIO_LE5, m_nSkin);
DDX_Radio(pDX, IDC_RADIO_OFFICE2003, m_nTheme);
DDX_Text(pDX, IDC_EDIT_FIND, m_strFind);
DDX_Check(pDX, IDC_CHECK_MATCHCASE, m_bMatchCase);
DDX_Check(pDX, IDC_CHECK_MATCHWORD, m_bMatchWord);
DDX_Check(pDX, IDC_CHECK_FLAT, m_bFlat);
DDX_Check(pDX, IDC_CHECK_GRIPPER, m_bShowGripper);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSampleView, CFormView)
//{{AFX_MSG_MAP(CSampleView)
ON_BN_CLICKED(IDC_BUTTON_FIND, OnButtonFind)
ON_BN_CLICKED(IDC_BUTTON_COLORDIALOG, OnButtonColordialog)
ON_BN_CLICKED(IDC_BUTTON_FONTDIALOG, OnButtonFontdialog)
ON_BN_CLICKED(IDC_BUTTON_PRINTDIALOG, OnButtonPrintdialog)
ON_BN_CLICKED(IDC_BUTTON_OPENDIALOG, OnButtonOpendialog)
ON_BN_CLICKED(IDC_RADIO_LE5, OnSkinChanged)
ON_BN_CLICKED(IDC_RADIO_OFFICE2003, OnThemeChanged)
ON_BN_CLICKED(IDC_CHECK_FLAT, OnThemeChanged)
ON_BN_CLICKED(IDC_RADIO_ITUNES, OnSkinChanged)
ON_BN_CLICKED(IDC_RADIO_DEFAULT, OnSkinChanged)
ON_BN_CLICKED(IDC_RADIO_WINXP, OnThemeChanged)
ON_EN_CHANGE(IDC_EDIT_FIND, OnChangeEditFind)
ON_BN_CLICKED(IDC_CHECK_GRIPPER, OnCheckGripper)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSampleView diagnostics
#ifdef _DEBUG
void CSampleView::AssertValid() const
{
CFormView::AssertValid();
}
void CSampleView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CSampleView message handlers
void CSampleView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
}
void CSampleView::OnButtonFind()
{
UpdateData();
CMainFrame* pWnd = (CMainFrame*)AfxGetMainWnd();
CRichEditView* pView = (CRichEditView*)pWnd->m_wndSplitter.GetPane(0, 1);
if (!pView->FindText(m_strFind, m_bMatchCase, m_bMatchWord))
{
pView->TextNotFound(m_strFind);
}
}
void CSampleView::OnChangeEditFind()
{
UpdateData();
GetDlgItem(IDC_BUTTON_FIND)->EnableWindow(!m_strFind.IsEmpty());
}
void CSampleView::OnButtonColordialog()
{
CColorDialog cd;
cd.DoModal();
}
void CSampleView::OnButtonFontdialog()
{
CFontDialog fd;
fd.DoModal();
}
void CSampleView::OnButtonPrintdialog()
{
CPrintDialog pd(TRUE);
pd.DoModal();
}
void CSampleView::OnButtonOpendialog()
{
CFileDialog fd(TRUE);
if (XTOSVersionInfo()->IsWin2KOrGreater() && sizeof(OPENFILENAME) < 88 && fd.m_ofn.lStructSize < 88)
{
// Windows 2000 version of OPENFILENAME has three extra members,
// this was copied from newer version of commdlg.h...
struct OPENFILENAMEEX
{
void* pvReserved; // 4 bytes
DWORD dwReserved; // 4 bytes
DWORD FlagsEx; // 4 bytes
};
fd.m_ofn.lStructSize += sizeof(OPENFILENAMEEX); // should equal an additional 12 bytes;
}
fd.DoModal();
}
void CSampleView::OnSkinChanged()
{
UpdateData();
CMainFrame* pWnd = (CMainFrame*)AfxGetMainWnd();
pWnd->LoadSkin(m_nSkin);
}
void CSampleView::OnThemeChanged()
{
UpdateData();
CMainFrame* pWnd = (CMainFrame*)AfxGetMainWnd();
pWnd->SetTheme(m_nTheme, m_bFlat);
}
void CSampleView::OnCheckGripper()
{
UpdateData();
CMainFrame* pWnd = (CMainFrame*)AfxGetMainWnd();
pWnd->GetCommandBars()->GetAt(0)->SetShowGripper(m_bShowGripper);
pWnd->GetCommandBars()->GetAt(1)->SetShowGripper(m_bShowGripper);
pWnd->GetCommandBars()->RedrawCommandBars();
}