539 lines
No EOL
14 KiB
C++
539 lines
No EOL
14 KiB
C++
// SmartLayoutView.cpp : implementation of the CSmartLayoutView class
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "SmartLayout.h"
|
|
|
|
#include "SmartLayoutDoc.h"
|
|
#include "CntrItem.h"
|
|
#include "SmartLayoutView.h"
|
|
|
|
#include "ControlSelector.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSmartLayoutView
|
|
|
|
IMPLEMENT_DYNCREATE(CSmartLayoutView, CRichEditView)
|
|
|
|
BEGIN_MESSAGE_MAP(CSmartLayoutView, CRichEditView)
|
|
//{{AFX_MSG_MAP(CSmartLayoutView)
|
|
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
// DO NOT EDIT what you see in these blocks of generated code!
|
|
ON_WM_DESTROY()
|
|
//}}AFX_MSG_MAP
|
|
// Standard printing commands
|
|
ON_COMMAND(ID_FILE_PRINT, CRichEditView::OnFilePrint)
|
|
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRichEditView::OnFilePrint)
|
|
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRichEditView::OnFilePrintPreview)
|
|
|
|
ON_COMMAND(ID_CHAR_BOLD, OnCharBold)
|
|
ON_UPDATE_COMMAND_UI(ID_CHAR_BOLD, OnUpdateCharBold)
|
|
ON_COMMAND(ID_CHAR_ITALIC, OnCharItalic)
|
|
ON_UPDATE_COMMAND_UI(ID_CHAR_ITALIC, OnUpdateCharItalic)
|
|
ON_COMMAND(ID_CHAR_UNDERLINE, OnCharUnderline)
|
|
ON_UPDATE_COMMAND_UI(ID_CHAR_UNDERLINE, OnUpdateCharUnderline)
|
|
ON_COMMAND(ID_PARA_CENTER, OnParaCenter)
|
|
ON_UPDATE_COMMAND_UI(ID_PARA_CENTER, OnUpdateParaCenter)
|
|
ON_COMMAND(ID_PARA_LEFT, OnParaLeft)
|
|
ON_UPDATE_COMMAND_UI(ID_PARA_LEFT, OnUpdateParaLeft)
|
|
ON_COMMAND(ID_PARA_RIGHT, OnParaRight)
|
|
ON_UPDATE_COMMAND_UI(ID_PARA_RIGHT, OnUpdateParaRight)
|
|
|
|
ON_COMMAND(ID_INSERT_BULLET, CRichEditView::OnBullet)
|
|
ON_UPDATE_COMMAND_UI(ID_INSERT_BULLET, CRichEditView::OnUpdateBullet)
|
|
|
|
|
|
ON_NOTIFY(XTP_FN_GETFORMAT, ID_COMBO_SIZE, OnGetCharFormat)
|
|
ON_NOTIFY(XTP_FN_SETFORMAT, ID_COMBO_SIZE, OnSetCharFormat)
|
|
ON_UPDATE_COMMAND_UI(ID_COMBO_SIZE, OnUpdateComboSize)
|
|
|
|
ON_NOTIFY(XTP_FN_SETFORMAT, ID_COMBO_FONT, OnSetCharFormat)
|
|
ON_UPDATE_COMMAND_UI(ID_COMBO_FONT, OnUpdateComboFont)
|
|
|
|
ON_XTP_EXECUTE(ID_SELECTOR_TEXT, OnSelectorText)
|
|
ON_UPDATE_COMMAND_UI(ID_SELECTOR_TEXT, OnUpdateSelectorText)
|
|
|
|
ON_COMMAND(ID_BUTTON_TEXT, OnButtonText)
|
|
ON_UPDATE_COMMAND_UI(ID_BUTTON_TEXT, OnUpdateText)
|
|
|
|
ON_COMMAND(XTP_IDS_AUTOMATIC, OnTextAuto)
|
|
ON_UPDATE_COMMAND_UI(XTP_IDS_AUTOMATIC, OnUpdateTextAuto)
|
|
|
|
ON_COMMAND(XTP_IDS_MORE_COLORS, OnTextMore)
|
|
|
|
ON_XTP_EXECUTE(ID_EDIT_UNDO, OnEditUndo)
|
|
ON_NOTIFY(XTP_LBN_SELCHANGE, ID_EDIT_UNDO, OnListBoxControlSelChange)
|
|
ON_NOTIFY(XTP_LBN_POPUP, ID_EDIT_UNDO, OnListBoxControlPoup)
|
|
|
|
ON_NOTIFY(XTP_SLN_SELCHANGE, ID_INSERT_COLUMNS, OnColumnsSelChange)
|
|
ON_NOTIFY(XTP_SLN_SELCHANGE, ID_INSERT_TABLE, OnTableSelChange)
|
|
|
|
ON_XTP_EXECUTE(ID_INSERT_TABLE, OnInsertTable)
|
|
ON_XTP_EXECUTE(ID_INSERT_COLUMNS, OnInsertColumns)
|
|
ON_UPDATE_COMMAND_UI(ID_INSERT_TABLE, OnEnableCommand)
|
|
ON_UPDATE_COMMAND_UI(ID_INSERT_COLUMNS, OnEnableCommand)
|
|
|
|
ON_COMMAND_RANGE(ID_BDR_OUTSIDE, ID_BDR_INSIDE_VERT, OnBorders)
|
|
ON_UPDATE_COMMAND_UI_RANGE(ID_BDR_OUTSIDE, ID_BDR_INSIDE_VERT, OnUpdateBorders)
|
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSmartLayoutView construction/destruction
|
|
|
|
CSmartLayoutView::CSmartLayoutView()
|
|
{
|
|
m_clr = 0;
|
|
m_dwBorders = 0;
|
|
|
|
}
|
|
|
|
CSmartLayoutView::~CSmartLayoutView()
|
|
{
|
|
}
|
|
|
|
BOOL CSmartLayoutView::PreCreateWindow(CREATESTRUCT& cs)
|
|
{
|
|
// TODO: Modify the Window class or styles here by modifying
|
|
// the CREATESTRUCT cs
|
|
|
|
return CRichEditView::PreCreateWindow(cs);
|
|
}
|
|
|
|
void CSmartLayoutView::OnInitialUpdate()
|
|
{
|
|
CRichEditView::OnInitialUpdate();
|
|
|
|
|
|
// Set the printing margins (720 twips = 1/2 inch).
|
|
SetMargins(CRect(720, 720, 720, 720));
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSmartLayoutView printing
|
|
|
|
BOOL CSmartLayoutView::OnPreparePrinting(CPrintInfo* pInfo)
|
|
{
|
|
// default preparation
|
|
return DoPreparePrinting(pInfo);
|
|
}
|
|
|
|
|
|
void CSmartLayoutView::OnDestroy()
|
|
{
|
|
CRichEditView::OnDestroy();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSmartLayoutView diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CSmartLayoutView::AssertValid() const
|
|
{
|
|
CRichEditView::AssertValid();
|
|
}
|
|
|
|
void CSmartLayoutView::Dump(CDumpContext& dc) const
|
|
{
|
|
CRichEditView::Dump(dc);
|
|
}
|
|
|
|
CSmartLayoutDoc* CSmartLayoutView::GetDocument() // non-debug version is inline
|
|
{
|
|
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSmartLayoutDoc)));
|
|
return (CSmartLayoutDoc*)m_pDocument;
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSmartLayoutView message handlers
|
|
|
|
|
|
void CSmartLayoutView::OnGetCharFormat(NMHDR* pNMHDR, LRESULT* pRes)
|
|
{
|
|
ASSERT(pNMHDR != NULL);
|
|
ASSERT(pRes != NULL);
|
|
((NMXTPCHARHDR*)pNMHDR)->cf = GetCharFormatSelection();
|
|
*pRes = 1;
|
|
}
|
|
|
|
void CSmartLayoutView::OnSetCharFormat(NMHDR* pNMHDR, LRESULT* pRes)
|
|
{
|
|
ASSERT(pNMHDR != NULL);
|
|
ASSERT(pRes != NULL);
|
|
|
|
#if (_MSC_VER < 1300)
|
|
CHARFORMAT& cf = ((NMXTPCHARHDR*)pNMHDR)->cf;
|
|
#else
|
|
CHARFORMAT2 cf;
|
|
MEMCPY_S(&cf, &((NMXTPCHARHDR*)pNMHDR)->cf, sizeof(((NMXTPCHARHDR*)pNMHDR)->cf));
|
|
#endif
|
|
SetCharFormat(cf);
|
|
*pRes = 1;
|
|
}
|
|
|
|
void CSmartLayoutView::OnUpdateComboFont(CCmdUI* pCmd)
|
|
{
|
|
CXTPCommandBar* pToolBar = (CXTPToolBar*)pCmd->m_pOther;
|
|
if (pToolBar)
|
|
{
|
|
CXTPControlFontComboBox* pFontCombo = (CXTPControlFontComboBox*)pToolBar->GetControls()->GetAt(pCmd->m_nIndex);
|
|
|
|
if (pFontCombo->GetType() == xtpControlComboBox)
|
|
{
|
|
pFontCombo->SetCharFormat((CHARFORMAT&)GetCharFormatSelection());
|
|
}
|
|
}
|
|
pCmd->Enable(TRUE);
|
|
}
|
|
|
|
void CSmartLayoutView::OnUpdateComboSize(CCmdUI* pCmd)
|
|
{
|
|
CXTPCommandBar* pToolBar = (CXTPToolBar*)pCmd->m_pOther;
|
|
if (pToolBar)
|
|
{
|
|
CXTPControlSizeComboBox* pSizeCombo = (CXTPControlSizeComboBox*)pToolBar->GetControls()->GetAt(pCmd->m_nIndex);
|
|
|
|
if (pSizeCombo->GetType() == xtpControlComboBox)
|
|
{
|
|
CHARFORMAT& cf = GetCharFormatSelection();
|
|
pSizeCombo->SetTwipSize( (cf.dwMask & CFM_SIZE) ? cf.yHeight : -1);
|
|
}
|
|
}
|
|
pCmd->Enable(TRUE);
|
|
}
|
|
|
|
|
|
|
|
void CSmartLayoutView::OnUpdateSelectorText(CCmdUI* pCmd)
|
|
{
|
|
CXTPCommandBar* pToolBar = (CXTPToolBar*)pCmd->m_pOther;
|
|
if (pToolBar)
|
|
{
|
|
CHARFORMAT& cfm = GetCharFormatSelection( );
|
|
CXTPControlColorSelector* pSelector = (CXTPControlColorSelector*)pToolBar->GetControls()->GetAt(pCmd->m_nIndex);
|
|
pSelector->SetColor(cfm.dwEffects & CFE_AUTOCOLOR? -1: cfm.crTextColor);
|
|
}
|
|
pCmd->Enable(TRUE);
|
|
}
|
|
|
|
void CSmartLayoutView::OnButtonText()
|
|
{
|
|
CHARFORMAT& cfm = GetCharFormatSelection( );
|
|
cfm.dwMask |= CFM_COLOR;
|
|
cfm.dwEffects &= ~CFE_AUTOCOLOR ;
|
|
cfm.crTextColor = m_clr;
|
|
GetRichEditCtrl().SetSelectionCharFormat(cfm);
|
|
|
|
}
|
|
void CSmartLayoutView::OnSelectorText(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
|
|
|
|
CXTPControlColorSelector* pControl = (CXTPControlColorSelector*)tagNMCONTROL->pControl;
|
|
m_clr = pControl->GetColor();
|
|
|
|
OnButtonText();
|
|
|
|
*pResult = 1;
|
|
}
|
|
|
|
|
|
void CSmartLayoutView::OnUpdateText(CCmdUI* pCmd)
|
|
{
|
|
|
|
CXTPCommandBar* pToolBar = (CXTPToolBar*)pCmd->m_pOther;
|
|
if (pToolBar)
|
|
{
|
|
CXTPControlPopupColor* pPopup = (CXTPControlPopupColor*)pToolBar->GetControls()->GetAt(pCmd->m_nIndex);
|
|
pPopup->SetColor(m_clr);
|
|
}
|
|
|
|
pCmd->Enable(TRUE);
|
|
}
|
|
|
|
|
|
|
|
void CSmartLayoutView::OnTextAuto()
|
|
{
|
|
CHARFORMAT& cfm = GetCharFormatSelection( );
|
|
cfm.dwMask |= CFM_COLOR;
|
|
cfm.dwEffects |= CFE_AUTOCOLOR ;
|
|
GetRichEditCtrl().SetSelectionCharFormat(cfm);
|
|
m_clr = GetSysColor(COLOR_BTNTEXT);
|
|
}
|
|
|
|
void CSmartLayoutView::OnUpdateTextAuto(CCmdUI* pCmd)
|
|
{
|
|
CHARFORMAT& cfm = GetCharFormatSelection( );
|
|
pCmd->SetCheck(cfm.dwEffects & CFE_AUTOCOLOR? TRUE: FALSE);
|
|
}
|
|
|
|
|
|
|
|
void CSmartLayoutView::OnTextMore()
|
|
{
|
|
CColorDialog cd(m_clr);
|
|
if (cd.DoModal())
|
|
{
|
|
m_clr = cd.GetColor();
|
|
OnButtonText();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CSmartLayoutView::OnEditUndo(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
if (((NMXTPCONTROL*)pNMHDR)->pControl->GetType() == xtpControlSplitButtonPopup)
|
|
{
|
|
CRichEditView::OnEditUndo();
|
|
|
|
*pResult = 1; // Handled;
|
|
}
|
|
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlListBox)
|
|
{
|
|
CString str;
|
|
str.Format(_T("Undo last %i actions"), pControlListBox->GetListCtrl()->GetSelCount());
|
|
|
|
AfxMessageBox(str);
|
|
|
|
*pResult = 1; // Handled;
|
|
}
|
|
}
|
|
|
|
CXTPControlStatic* CSmartLayoutView::FindInfoControl(CXTPControl* pControl)
|
|
{
|
|
CXTPCommandBar* pCommandBar = pControl->GetParent();
|
|
|
|
for (int i = 0; i < pCommandBar->GetControls()->GetCount(); i++)
|
|
{
|
|
CXTPControlStatic* pControlStatic = DYNAMIC_DOWNCAST(CXTPControlStatic, pCommandBar->GetControl(i));
|
|
if (pControlStatic && pControlStatic->GetID() == pControl->GetID())
|
|
{
|
|
return pControlStatic;
|
|
}
|
|
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
|
|
void CSmartLayoutView::OnListBoxControlSelChange(NMHDR* pNMHDR, LRESULT* pRes)
|
|
{
|
|
ASSERT(pNMHDR != NULL);
|
|
ASSERT(pRes != NULL);
|
|
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlListBox)
|
|
{
|
|
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlListBox);
|
|
if (pInfo)
|
|
{
|
|
CString str;
|
|
str.Format(_T("Undo %i Actions"), pControlListBox->GetListCtrl()->GetSelCount());
|
|
pInfo->SetCaption(str);
|
|
pInfo->DelayRedrawParent();
|
|
}
|
|
|
|
|
|
|
|
*pRes = 1;
|
|
}
|
|
}
|
|
|
|
void CSmartLayoutView::OnListBoxControlPoup(NMHDR* pNMHDR, LRESULT* pRes)
|
|
{
|
|
ASSERT(pNMHDR != NULL);
|
|
ASSERT(pRes != NULL);
|
|
CXTPControlListBox* pControlListBox = DYNAMIC_DOWNCAST(CXTPControlListBox, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlListBox)
|
|
{
|
|
CListBox* pListBox = pControlListBox->GetListCtrl();
|
|
pListBox->ResetContent();
|
|
|
|
int nCount = RAND_S() % 20 + 3;
|
|
|
|
for (int i = 0; i < nCount; i++)
|
|
{
|
|
CString str;
|
|
str.Format(_T("Undo String %i"), i + 1);
|
|
pListBox->AddString(str);
|
|
}
|
|
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlListBox);
|
|
if (pInfo)
|
|
{
|
|
CString str;
|
|
pInfo->SetCaption(_T("Undo 0 Actions"));
|
|
pInfo->DelayRedrawParent();
|
|
}
|
|
|
|
|
|
*pRes = 1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void CSmartLayoutView::OnColumnsSelChange(NMHDR* pNMHDR, LRESULT* pRes)
|
|
{
|
|
ASSERT(pNMHDR != NULL);
|
|
ASSERT(pRes != NULL);
|
|
|
|
CControlColumns* pControlColumns = DYNAMIC_DOWNCAST(CControlColumns, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlColumns)
|
|
{
|
|
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlColumns);
|
|
if (pInfo)
|
|
{
|
|
int nCount = pControlColumns->m_szItemsActive.cx;
|
|
|
|
CString str = _T("Cancel");
|
|
if (nCount != 0)
|
|
{
|
|
str.Format(_T("%i Columns"), nCount);
|
|
}
|
|
|
|
pInfo->SetWidth(pControlColumns->m_szItem.cx * pControlColumns->m_szItemsVisible.cx);
|
|
|
|
|
|
pInfo->SetCaption(str);
|
|
pInfo->DelayRedrawParent();
|
|
}
|
|
|
|
*pRes = 1;
|
|
}
|
|
|
|
}
|
|
void CSmartLayoutView::OnInsertTable(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
|
|
CControlTable* pControlTable = DYNAMIC_DOWNCAST(CControlTable, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlTable)
|
|
{
|
|
CSize szActive = pControlTable->m_szResult;
|
|
|
|
CString str;
|
|
str.Format(_T("<%i x %i Table>"), szActive.cx, szActive.cy);
|
|
|
|
GetRichEditCtrl().ReplaceSel(str);
|
|
|
|
*pResult = 1; // Handled;
|
|
}
|
|
}
|
|
void CSmartLayoutView::OnInsertColumns(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
|
|
CControlColumns* pControlColumns = DYNAMIC_DOWNCAST(CControlColumns, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlColumns)
|
|
{
|
|
int nCount = pControlColumns->m_szResult.cx;
|
|
|
|
CString str;
|
|
str.Format(_T("<%i Columns>"), nCount);
|
|
|
|
GetRichEditCtrl().ReplaceSel(str);
|
|
|
|
*pResult = 1; // Handled;
|
|
}
|
|
}
|
|
|
|
|
|
void CSmartLayoutView::OnTableSelChange(NMHDR* pNMHDR, LRESULT* pRes)
|
|
{
|
|
|
|
ASSERT(pNMHDR != NULL);
|
|
ASSERT(pRes != NULL);
|
|
|
|
CControlTable* pControlTable = DYNAMIC_DOWNCAST(CControlTable, ((NMXTPCONTROL*)pNMHDR)->pControl);
|
|
if (pControlTable)
|
|
{
|
|
|
|
CXTPControlStatic* pInfo = FindInfoControl(pControlTable);
|
|
if (pInfo)
|
|
{
|
|
CSize szActive = pControlTable->m_szItemsActive;
|
|
|
|
CString str = _T("Cancel");
|
|
if (szActive != CSize(0))
|
|
{
|
|
str.Format(_T("%i x %i Table"), szActive.cx, szActive.cy);
|
|
}
|
|
|
|
pInfo->SetWidth(pControlTable->m_szItem.cx * pControlTable->m_szItemsVisible.cx);
|
|
|
|
pInfo->SetCaption(str);
|
|
pInfo->DelayRedrawParent();
|
|
}
|
|
|
|
*pRes = 1;
|
|
}
|
|
}
|
|
|
|
enum Borders {borderTop = 1, borderLeft = 2, borderRight = 4, borderBottom = 8, borderInsideVert = 16, borderInsideHorz = 32,
|
|
borderOutside = borderBottom | borderTop | borderLeft | borderRight,
|
|
borderInside = borderInsideVert | borderInsideHorz,
|
|
borderAll = borderInside | borderOutside};
|
|
|
|
|
|
void CSmartLayoutView::SwitchBorders(DWORD dwState)
|
|
{
|
|
if (m_dwBorders & dwState) m_dwBorders &= ~dwState; else m_dwBorders |= dwState;
|
|
|
|
}
|
|
|
|
|
|
void CSmartLayoutView::OnBorders(UINT nID)
|
|
{
|
|
switch (nID)
|
|
{
|
|
case ID_BDR_TOP: SwitchBorders(borderTop); break;
|
|
case ID_BDR_LEFT: SwitchBorders(borderLeft); break;
|
|
case ID_BDR_RIGHT: SwitchBorders(borderRight); break;
|
|
case ID_BDR_BOTTOM: SwitchBorders(borderBottom); break;
|
|
case ID_BDR_NONE: m_dwBorders = 0; break;
|
|
case ID_BDR_OUTSIDE: SwitchBorders(borderOutside); break;
|
|
case ID_BDR_ALL: SwitchBorders(borderAll); break;
|
|
case ID_BDR_INSIDE_VERT: SwitchBorders(borderInsideVert); break;
|
|
case ID_BDR_INSIDE_HORZ: SwitchBorders(borderInsideHorz); break;
|
|
case ID_BDR_INSIDE: SwitchBorders(borderInside); break;
|
|
}
|
|
|
|
}
|
|
|
|
void CSmartLayoutView::OnUpdateBorders(CCmdUI* pCmdUI)
|
|
{
|
|
switch (pCmdUI->m_nID)
|
|
{
|
|
case ID_BDR_TOP: pCmdUI->SetCheck(m_dwBorders & borderTop? TRUE: FALSE); break;
|
|
case ID_BDR_LEFT: pCmdUI->SetCheck(m_dwBorders & borderLeft? TRUE: FALSE); break;
|
|
case ID_BDR_RIGHT: pCmdUI->SetCheck(m_dwBorders & borderRight? TRUE: FALSE); break;
|
|
case ID_BDR_BOTTOM: pCmdUI->SetCheck(m_dwBorders & borderBottom? TRUE: FALSE); break;
|
|
case ID_BDR_OUTSIDE : pCmdUI->SetCheck((m_dwBorders & borderOutside) == borderOutside? TRUE: FALSE); break;
|
|
case ID_BDR_ALL : pCmdUI->SetCheck((m_dwBorders & borderAll) == borderAll? TRUE: FALSE); break;
|
|
case ID_BDR_INSIDE_VERT: pCmdUI->SetCheck(m_dwBorders & borderInsideVert? TRUE: FALSE); break;
|
|
case ID_BDR_INSIDE_HORZ: pCmdUI->SetCheck(m_dwBorders & borderInsideHorz? TRUE: FALSE); break;
|
|
case ID_BDR_INSIDE: pCmdUI->SetCheck((m_dwBorders & borderInside) == borderInside? TRUE: FALSE); break;
|
|
}
|
|
}
|
|
|
|
|
|
void CSmartLayoutView::OnEnableCommand(CCmdUI* pCmdUI)
|
|
{
|
|
pCmdUI->Enable();
|
|
|
|
} |