home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic 4 Unleashed
/
Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso
/
tedevkit
/
ter_view.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1995-09-11
|
35KB
|
1,038 lines
// ter_view.cpp : Implementaion for the CTerView Class
//
// This class is derived from the CView class. Therefore, if your
// application derives a class from the CTerView class and adds it
// to the template using CWinApp::AddDocTemplate, the framework
// will call both the constructor and the 'Create' function.
//
// Sub Systems, Inc.
// Copyright 1994.
// 159 Main Street, #8C
// Stoneham, MA 02180
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ter_view.h"
#include "ter_cmd.h"
#include "ter_view.rch"
#include "resource.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
// CTerView
IMPLEMENT_DYNCREATE(CTerView,CView)
BEGIN_MESSAGE_MAP(CTerView, CView)
//{{AFX_MSG_MAP(CTerView)
ON_WM_PAINT()
ON_WM_CREATE()
ON_COMMAND(TID_COPY, OnEditCopy)
ON_COMMAND(TID_CUT, OnEditCut)
ON_COMMAND(TID_PASTE, OnEditPaste)
ON_UPDATE_COMMAND_UI(TID_COPY, OnUpdateEditCopy)
ON_UPDATE_COMMAND_UI(TID_CUT, OnUpdateEditCut)
ON_UPDATE_COMMAND_UI(TID_PASTE, OnUpdateEditPaste)
ON_COMMAND(TID_UNDO, OnEditUndo)
ON_UPDATE_COMMAND_UI(TID_UNDO, OnUpdateEditUndo)
ON_COMMAND(TID_EDIT_HDR_FTR, OnEditHdrFtr)
ON_UPDATE_COMMAND_UI(TID_EDIT_HDR_FTR, OnUpdateEditHdrFtr)
ON_COMMAND(TID_PRINT, OnFilePrint)
ON_UPDATE_COMMAND_UI(TID_PRINT, OnUpdateFilePrint)
ON_COMMAND(TID_PRINT_PREVIEW, CView::OnFilePrintPreview)
ON_UPDATE_COMMAND_UI(TID_PRINT_PREVIEW, OnUpdateFilePrintPreview)
ON_COMMAND(TID_BOLD_ON, OnFontBold)
ON_UPDATE_COMMAND_UI(TID_BOLD_ON, OnUpdateFontBold)
ON_COMMAND(TID_ULINED_ON, OnFontDoubleunderline)
ON_UPDATE_COMMAND_UI(TID_ULINED_ON, OnUpdateFontDoubleunderline)
ON_COMMAND(TID_FONTS, OnFontFonts)
ON_UPDATE_COMMAND_UI(TID_FONTS, OnUpdateFontFonts)
ON_COMMAND(TID_HIDDEN_ON, OnFontHidden)
ON_UPDATE_COMMAND_UI(TID_HIDDEN_ON, OnUpdateFontHidden)
ON_COMMAND(TID_ITALIC_ON, OnFontItalic)
ON_UPDATE_COMMAND_UI(TID_ITALIC_ON, OnUpdateFontItalic)
ON_COMMAND(TID_CHAR_NORMAL, OnFontNormal)
ON_UPDATE_COMMAND_UI(TID_CHAR_NORMAL, OnUpdateFontNormal)
ON_COMMAND(TID_PROTECT_ON, OnFontProtect)
ON_UPDATE_COMMAND_UI(TID_PROTECT_ON, OnUpdateFontProtect)
ON_COMMAND(TID_STRIKE_ON, OnFontStrikethrough)
ON_UPDATE_COMMAND_UI(TID_STRIKE_ON, OnUpdateFontStrikethrough)
ON_COMMAND(TID_SUBSCR_ON, OnFontSubscript)
ON_UPDATE_COMMAND_UI(TID_SUBSCR_ON, OnUpdateFontSubscript)
ON_COMMAND(TID_SUPSCR_ON, OnFontSuperscript)
ON_UPDATE_COMMAND_UI(TID_SUPSCR_ON, OnUpdateFontSuperscript)
ON_COMMAND(TID_ULINE_ON, OnFontUnderline)
ON_UPDATE_COMMAND_UI(TID_ULINE_ON, OnUpdateFontUnderline)
ON_COMMAND(TID_COLOR, OnFontColor)
ON_UPDATE_COMMAND_UI(TID_COLOR, OnUpdateFontColor)
ON_COMMAND(TID_BK_COLOR, OnFontBkColor)
ON_UPDATE_COMMAND_UI(TID_BK_COLOR, OnUpdateFontBkColor)
ON_COMMAND(TID_SHOW_HIDDEN, OnViewHiddentext)
ON_UPDATE_COMMAND_UI(TID_SHOW_HIDDEN, OnUpdateViewHiddentext)
ON_COMMAND(TID_PAGE_MODE, OnViewPagemode)
ON_UPDATE_COMMAND_UI(TID_PAGE_MODE, OnUpdateViewPagemode)
ON_COMMAND(TID_SHOW_PARA_MARK, OnViewParagraphmarker)
ON_UPDATE_COMMAND_UI(TID_SHOW_PARA_MARK, OnUpdateViewParagraphmarker)
ON_COMMAND(TID_RULER, OnViewRuler)
ON_UPDATE_COMMAND_UI(TID_RULER, OnUpdateViewRuler)
ON_COMMAND(TID_SHOW_HYPERLINK_CURSOR, OnViewHyperlinkCursor)
ON_UPDATE_COMMAND_UI(TID_SHOW_HYPERLINK_CURSOR, OnUpdateViewHyperlinkCursor)
ON_COMMAND(TID_VIEW_HDR_FTR, OnViewHdrFtr)
ON_UPDATE_COMMAND_UI(TID_VIEW_HDR_FTR, OnUpdateViewHdrFtr)
ON_COMMAND(TID_COL_BREAK, OnInsertColumnbreak)
ON_UPDATE_COMMAND_UI(TID_COL_BREAK, OnUpdateInsertColumnbreak)
ON_COMMAND(TID_PAGE_BREAK, OnInsertPagebreak)
ON_UPDATE_COMMAND_UI(TID_PAGE_BREAK, OnUpdateInsertPagebreak)
ON_COMMAND(TID_SECT_BREAK, OnInsertSectionbreak)
ON_UPDATE_COMMAND_UI(TID_SECT_BREAK, OnUpdateInsertSectionbreak)
ON_COMMAND(TID_INSERT_OBJECT, OnInsertObject)
ON_UPDATE_COMMAND_UI(TID_INSERT_OBJECT, OnUpdateInsertObject)
ON_COMMAND(TID_PICT_FROM_FILE, OnInsertPicture)
ON_UPDATE_COMMAND_UI(TID_PICT_FROM_FILE, OnUpdateInsertPicture)
ON_COMMAND(TID_BLOCK_COPY, OnBlockCopy)
ON_UPDATE_COMMAND_UI(TID_BLOCK_COPY, OnUpdateBlockCopy)
ON_COMMAND(TID_BLOCK_MOVE, OnBlockMove)
ON_UPDATE_COMMAND_UI(TID_BLOCK_MOVE, OnUpdateBlockMove)
ON_COMMAND(TID_DEL_LINE, OnDelLine)
ON_UPDATE_COMMAND_UI(TID_DEL_LINE, OnUpdateDelLine)
ON_COMMAND(TID_EDIT_PICT, OnEditPict)
ON_UPDATE_COMMAND_UI(TID_EDIT_PICT, OnUpdateEditPict)
ON_COMMAND(TID_INS_AFT, OnInsAft)
ON_UPDATE_COMMAND_UI(TID_INS_AFT, OnUpdateInsAft)
ON_COMMAND(TID_INS_BEF, OnInsBef)
ON_UPDATE_COMMAND_UI(TID_INS_BEF, OnUpdateInsBef)
ON_COMMAND(TID_JOIN_LINE, OnJoinLine)
ON_UPDATE_COMMAND_UI(TID_JOIN_LINE, OnUpdateJoinLine)
ON_COMMAND(TID_PASTE_SPEC, OnPasteSpec)
ON_UPDATE_COMMAND_UI(TID_PASTE_SPEC, OnUpdatePasteSpec)
ON_COMMAND(TID_REPAGINATE, OnRepaginate)
ON_UPDATE_COMMAND_UI(TID_REPAGINATE, OnUpdateRepaginate)
ON_COMMAND(TID_SECT_OPTIONS, OnSectOptions)
ON_UPDATE_COMMAND_UI(TID_SECT_OPTIONS, OnUpdateSectOptions)
ON_COMMAND(TID_SELECT_ALL, OnSelectAll)
ON_UPDATE_COMMAND_UI(TID_SELECT_ALL, OnUpdateSelectAll)
ON_COMMAND(TID_SPLIT_LINE, OnSplitLine)
ON_UPDATE_COMMAND_UI(TID_SPLIT_LINE, OnUpdateSplitLine)
ON_COMMAND(TID_CENTER, OnCenter)
ON_UPDATE_COMMAND_UI(TID_CENTER, OnUpdateCenter)
ON_COMMAND(TID_DOUBLE_SPACE, OnDoubleSpace)
ON_UPDATE_COMMAND_UI(TID_DOUBLE_SPACE, OnUpdateDoubleSpace)
ON_COMMAND(TID_HANGING_INDENT, OnHangingIndent)
ON_UPDATE_COMMAND_UI(TID_HANGING_INDENT, OnUpdateHangingIndent)
ON_COMMAND(TID_PARA_BORDER, OnParaBorder)
ON_UPDATE_COMMAND_UI(TID_PARA_BORDER, OnUpdateParaBorder)
ON_COMMAND(TID_PARA_NORMAL, OnParaNormal)
ON_UPDATE_COMMAND_UI(TID_PARA_NORMAL, OnUpdateParaNormal)
ON_COMMAND(TID_RIGHT_INDENT, OnRightIndent)
ON_UPDATE_COMMAND_UI(TID_RIGHT_INDENT, OnUpdateRightIndent)
ON_COMMAND(TID_RIGHT_JUSTIFY, OnRightJustify)
ON_UPDATE_COMMAND_UI(TID_RIGHT_JUSTIFY, OnUpdateRightJustify)
ON_COMMAND(TID_JUSTIFY, OnJustify)
ON_UPDATE_COMMAND_UI(TID_JUSTIFY, OnUpdateJustify)
ON_COMMAND(TID_TAB_CLEAR, OnTabClear)
ON_UPDATE_COMMAND_UI(TID_TAB_CLEAR, OnUpdateTabClear)
ON_COMMAND(TID_TAB_CLEAR_ALL, OnTabClearAll)
ON_UPDATE_COMMAND_UI(TID_TAB_CLEAR_ALL, OnUpdateTabClearAll)
ON_COMMAND(TID_LEFT_INDENT, OnLeftIndent)
ON_UPDATE_COMMAND_UI(TID_LEFT_INDENT, OnUpdateLeftIndent)
ON_COMMAND(TID_TABLE_INSERT, OnTableInsert)
ON_UPDATE_COMMAND_UI(TID_TABLE_INSERT, OnUpdateTableInsert)
ON_COMMAND(TID_TABLE_INSERT_ROW, OnTableInsertRow)
ON_UPDATE_COMMAND_UI(TID_TABLE_INSERT_ROW, OnUpdateTableInsertRow)
ON_COMMAND(TID_TABLE_SPLIT_CELL, OnTableSplitCell)
ON_UPDATE_COMMAND_UI(TID_TABLE_SPLIT_CELL, OnUpdateTableSplitCell)
ON_COMMAND(TID_TABLE_MERGE_CELLS, OnTableMergeCells)
ON_UPDATE_COMMAND_UI(TID_TABLE_MERGE_CELLS, OnUpdateTableMergeCells)
ON_COMMAND(TID_TABLE_DEL_CELLS, OnTableDelCells)
ON_UPDATE_COMMAND_UI(TID_TABLE_DEL_CELLS, OnUpdateTableDelCells)
ON_COMMAND(TID_TABLE_SHOW_GRID, OnTableShowGrid)
ON_UPDATE_COMMAND_UI(TID_TABLE_SHOW_GRID, OnUpdateTableShowGrid)
ON_COMMAND(TID_TABLE_ROW_POS, OnTableRowPos)
ON_UPDATE_COMMAND_UI(TID_TABLE_ROW_POS, OnUpdateTableRowPos)
ON_COMMAND(TID_TABLE_CELL_BORDER, OnTableCellBorder)
ON_UPDATE_COMMAND_UI(TID_TABLE_CELL_BORDER, OnUpdateTableCellBorder)
ON_COMMAND(TID_TABLE_CELL_SHADE, OnTableCellShade)
ON_UPDATE_COMMAND_UI(TID_TABLE_CELL_SHADE, OnUpdateTableCellShade)
ON_COMMAND(TID_FILE_BEGIN, OnFileBegin)
ON_UPDATE_COMMAND_UI(TID_FILE_BEGIN, OnUpdateFileBegin)
ON_COMMAND(TID_FILE_END, OnFileEnd)
ON_UPDATE_COMMAND_UI(TID_FILE_END, OnUpdateFileEnd)
ON_COMMAND(TID_JUMP, OnJump)
ON_UPDATE_COMMAND_UI(TID_JUMP, OnUpdateJump)
ON_COMMAND(TID_LINE_BEGIN, OnLineBegin)
ON_UPDATE_COMMAND_UI(TID_LINE_BEGIN, OnUpdateLineBegin)
ON_COMMAND(TID_LINE_END, OnLineEnd)
ON_UPDATE_COMMAND_UI(TID_LINE_END, OnUpdateLineEnd)
ON_COMMAND(TID_NEXT_WORD, OnNextWord)
ON_UPDATE_COMMAND_UI(TID_NEXT_WORD, OnUpdateNextWord)
ON_COMMAND(TID_PREV_WORD, OnPrevWord)
ON_UPDATE_COMMAND_UI(TID_PREV_WORD, OnUpdatePrevWord)
ON_COMMAND(TID_PROTECTION_LOCK, OnProtectionLock)
ON_UPDATE_COMMAND_UI(TID_PROTECTION_LOCK, OnUpdateProtectionLock)
ON_COMMAND(TID_REPLACE, OnReplace)
ON_UPDATE_COMMAND_UI(TID_REPLACE, OnUpdateReplace)
ON_COMMAND(TID_SEARCH, OnSearch)
ON_UPDATE_COMMAND_UI(TID_SEARCH, OnUpdateSearch)
ON_COMMAND(TID_SEARCH_BACK, OnSearchBack)
ON_UPDATE_COMMAND_UI(TID_SEARCH_BACK, OnUpdateSearchBack)
ON_COMMAND(TID_SEARCH_FOR, OnSearchFor)
ON_UPDATE_COMMAND_UI(TID_SEARCH_FOR, OnUpdateSearchFor)
ON_COMMAND(TID_HELP, OnHelp)
ON_UPDATE_COMMAND_UI(TID_HELP, OnUpdateHelp)
//}}AFX_MSG_MAP
// Message map defined outside of ClassWizard
ON_EN_CHANGE(AFX_IDW_PANE_FIRST,OnEditChange)
// Uncomment the following message to overide the default
// implementation of toolbar and status bar
//ON_COMMAND(TID_STATUS_RIBBON, OnViewStatusBar)
//ON_UPDATE_COMMAND_UI(TID_STATUS_RIBBON, OnUpdateViewStatusBar)
//ON_COMMAND(TID_TOOL_BAR, OnViewToolbar)
//ON_UPDATE_COMMAND_UI(TID_TOOL_BAR, OnUpdateViewToolbar)
END_MESSAGE_MAP()
// CTerView construction/destruction
CTerView::CTerView()
{
// Variable initialization
m_hBuffer=0;
m_BufLen=0;
}
CTerView::~CTerView()
{
}
// Specify the Window class: TerClass for window creation
BOOL CTerView::PreCreateWindow(CREATESTRUCT& cs)
{
LoadTerControl();
ASSERT(cs.lpszClass == NULL);
cs.lpszClass = TER_CLASS;
cs.style = cs.style | EditStyles(); // add edit styles
return TRUE;
}
// Specify address where mfc should store the address for the window process
WNDPROC* CTerView::GetSuperWndProcAddr()
{
static WNDPROC NEAR pfnSuper;
return &pfnSuper;
}
// Call TER menu option
void CTerView::TerMenu(WPARAM MenuOption)
{
if (MenuEnable(MenuOption)) TerWindowProc(WM_COMMAND,MenuOption,0L);
}
// Call TER window process
LRESULT CTerView::TerWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam)
{
WNDPROC pfnWndProc = *GetSuperWndProcAddr();
#ifdef STRICT
return ::CallWindowProc(pfnWndProc, m_hWnd, nMsg, wParam, lParam);
#else
return ::CallWindowProc((FARPROC)pfnWndProc, m_hWnd, nMsg, wParam, lParam);
#endif
}
// Return edit styles to be used with the window
WORD CTerView::EditStyles()
{
return TER_WORD_WRAP|TER_PAGE_MODE|TER_VSCROLL|TER_BORDER_MARGIN; // control style
}
/////////////////////////////////////////////////////////////////////////////
// OnDraw: do nothing on draw
void CTerView::OnDraw(CDC * /*pDC*/)
{
}
// printing preparation - used only for print preview
BOOL CTerView::OnPreparePrinting(CPrintInfo * pInfo)
{
struct StrTerField field;
::GetTerFields(m_hWnd,&field);
pInfo->SetMinPage(0); // first page
pInfo->SetMaxPage(field.TotalPagesW-1); // last page
pInfo->m_nCurPage=field.CurPageW; // first page to print
// default preparation
return DoPreparePrinting(pInfo);
}
// printing -- used only for print preview
void CTerView::OnPrint(CDC * pDC, CPrintInfo * pInfo)
{
struct StrTerField field;
::TerPrintPreview(m_hWnd,pDC->m_hDC,pInfo->m_rectDraw,pInfo->m_nCurPage,FALSE);
// update the last page
::GetTerFields(m_hWnd,&field);
pInfo->SetMaxPage(field.TotalPagesW-1); // last page
}
// OnPaint: Call CWnd paint
void CTerView::OnPaint()
{
// do not call CView::OnPaint since it will call OnDraw
CWnd::OnPaint();
}
/////////////////////////////////////////////////////////////////////////////
// File io functions
void CTerView::DeleteContents()
{
HGLOBAL hMem;
LPSTR pMem;
ASSERT_VALID(this);
ASSERT(m_hWnd!=NULL);
// allocate an empty buffer
hMem=::GlobalAlloc(GMEM_MOVEABLE,1);
pMem=(LPSTR)::GlobalLock(hMem);
pMem[0]=0xD; // line delimiter
::GlobalUnlock(hMem);
::SetTerBuffer(m_hWnd,hMem,1,NULL,TRUE);
ASSERT_VALID(this);
}
// Read and write CTerView object to archive, with a 4 byte length prefix.
void CTerView::Serialize(CArchive& ar)
{
ASSERT_VALID(this);
ASSERT(m_hWnd != NULL);
if (ar.IsStoring()) { // Save data
DWORD nLen = GetBuffer();
ar << nLen; // write length
WriteArchive(ar);
}
else { // load data
DWORD dwLen;
ar >> dwLen; // read length
ReadArchive(ar, dwLen);
}
ASSERT_VALID(this);
}
// Read certain amount of text from the file, assume at least nLen
// bytes are in the file.
void CTerView::ReadArchive(CArchive& ar, DWORD nLen)
{
ASSERT_VALID(this);
HGLOBAL hBuf=::GlobalAlloc(GMEM_MOVEABLE, nLen+1);
char huge * pMem=(char huge *)GlobalLock(hBuf);
if (pMem == NULL) {
AfxThrowMemoryException();
ASSERT(FALSE);
}
// read the buffer
DWORD BlockSize=0x4000; // 16 blocks
DWORD BytesDone=0; // bytes written so far
while (BytesDone<nLen) {
if ((BytesDone+BlockSize)>nLen) BlockSize=nLen-BytesDone;
if (ar.Read(&(pMem[BytesDone]),(UINT)BlockSize)!=(UINT)BlockSize) {
::GlobalUnlock(hBuf);
AfxThrowArchiveException(CArchiveException::endOfFile);
ASSERT(FALSE);
}
BytesDone+=BlockSize;
}
// pass the handle to the control
pMem[nLen]=0;
::GlobalUnlock(hBuf);
::SetTerBuffer(m_hWnd,hBuf,nLen,(LPBYTE)"",TRUE); // control now owns the handle
ASSERT_VALID(this);
}
// Write just the text to an archive, no length prefix.
void CTerView::WriteArchive(CArchive& ar)
{
ASSERT_VALID(this);
ASSERT(m_hBuffer!=NULL);
char huge *pMem = (char huge *)::GlobalLock(m_hBuffer);
ASSERT(pMem != NULL);
// direct write for a huge buffer
TRY
{
DWORD BlockSize=0x4000; // 16 blocks
DWORD BytesDone=0; // bytes written so far
while (BytesDone<m_BufLen) {
if ((BytesDone+BlockSize)>m_BufLen) BlockSize=m_BufLen-BytesDone;
ar.Write(&(pMem[BytesDone]),(UINT)BlockSize);
BytesDone+=BlockSize;
}
}
CATCH_ALL(e)
{
::GlobalUnlock(m_hBuffer);
THROW_LAST();
ASSERT(FALSE);
}
END_CATCH_ALL
// release our buffer
::GlobalUnlock(m_hBuffer);
::GlobalFree(m_hBuffer);
m_hBuffer=0;
m_BufLen=0;
// mark the window as updated
::TerSetModify(m_hWnd,FALSE);
ASSERT_VALID(this);
}
void CTerView::SerializeRaw(CArchive& ar)
// Read/Write object as stand-alone file.
{
ASSERT_VALID(this);
if (ar.IsStoring()) { // save data
GetBuffer(); // retrieve data from control
WriteArchive(ar);
}
else { // load file
CFile *pFile = ar.GetFile();
ASSERT(pFile->GetPosition() == 0);
DWORD nFileSize = pFile->GetLength();
ReadArchive(ar,nFileSize);
}
ASSERT_VALID(this);
}
DWORD CTerView::GetBuffer()
// Retrieve the text buffer from the control
{
if (m_hBuffer) ::GlobalFree(m_hBuffer);
m_hBuffer=::GetTerBuffer(m_hWnd,(long far *)&m_BufLen);
return m_BufLen;
}
/////////////////////////////////////////////////////////////////////////////
// Command processing
void CTerView::OnEditChange()
{
ASSERT_VALID(this);
GetDocument()->SetModifiedFlag();
ASSERT_VALID(this);
}
// Called by MFC after creating the window
int CTerView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1) return -1;
return 0;
}
///////////////////////////////////////////////////////////////////////////
// Menu Commands
// These functions simply invoke the given menu option
//////////////////////////////////////////////////////////////////////////
// Check if a menu item should be enabled
BOOL CTerView::MenuEnable(int MenuItem)
{
if (m_hWnd && MF_ENABLED==::TerMenuEnable(m_hWnd,MenuItem)) return TRUE;
else return FALSE;
}
// Check if a menu item should be selected
int CTerView::MenuSelect(int MenuItem)
{
if (m_hWnd && MF_CHECKED==::TerMenuSelect(m_hWnd,MenuItem)) return 1;
else return 0;
}
// print
void CTerView::OnFilePrint() {TerMenu(ID_PRINT);}
void CTerView::OnUpdateFilePrint(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PRINT));
pCmdUI->SetCheck(MenuSelect(ID_PRINT));
}
// print preview
void CTerView::OnFilePrintPreview() {TerMenu(ID_PRINT_PREVIEW);}
void CTerView::OnUpdateFilePrintPreview(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PRINT_PREVIEW));
pCmdUI->SetCheck(MenuSelect(ID_PRINT_PREVIEW));
}
// clipboard - cut
void CTerView::OnEditCut() {TerMenu(ID_CUT);}
void CTerView::OnUpdateEditCut(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_CUT));
pCmdUI->SetCheck(MenuSelect(ID_CUT));
}
// clipboard - copy
void CTerView::OnEditCopy() {TerMenu(ID_COPY);}
void CTerView::OnUpdateEditCopy(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_COPY));
pCmdUI->SetCheck(MenuSelect(ID_COPY));
}
// clipboard - paste
void CTerView::OnEditPaste() {TerMenu(ID_PASTE);}
void CTerView::OnUpdateEditPaste(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PASTE));
pCmdUI->SetCheck(MenuSelect(ID_PASTE));
}
// undo
void CTerView::OnEditUndo(){TerMenu(ID_UNDO);}
void CTerView::OnUpdateEditUndo(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_UNDO));
pCmdUI->SetCheck(MenuSelect(ID_UNDO));
}
// Other edit commands
void CTerView::OnBlockCopy(){TerMenu(ID_BLOCK_COPY);}
void CTerView::OnUpdateBlockCopy(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_BLOCK_COPY));
pCmdUI->SetCheck(MenuSelect(ID_BLOCK_COPY));
}
void CTerView::OnBlockMove(){TerMenu(ID_BLOCK_MOVE);}
void CTerView::OnUpdateBlockMove(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_BLOCK_MOVE));
pCmdUI->SetCheck(MenuSelect(ID_BLOCK_MOVE));
}
void CTerView::OnDelLine() {TerMenu(ID_DEL_LINE);}
void CTerView::OnUpdateDelLine(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_DEL_LINE));
pCmdUI->SetCheck(MenuSelect(ID_DEL_LINE));
}
void CTerView::OnEditPict() {TerMenu(ID_EDIT_PICT);}
void CTerView::OnUpdateEditPict(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_EDIT_PICT));
pCmdUI->SetCheck(MenuSelect(ID_EDIT_PICT));
}
void CTerView::OnEditHdrFtr() {TerMenu(ID_EDIT_HDR_FTR);}
void CTerView::OnUpdateEditHdrFtr(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_EDIT_HDR_FTR));
pCmdUI->SetCheck(MenuSelect(ID_EDIT_HDR_FTR));
}
void CTerView::OnInsAft() {TerMenu(ID_INS_AFT);}
void CTerView::OnUpdateInsAft(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_INS_AFT));
pCmdUI->SetCheck(MenuSelect(ID_INS_AFT));
}
void CTerView::OnInsBef() {TerMenu(ID_INS_BEF);}
void CTerView::OnUpdateInsBef(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_INS_BEF));
pCmdUI->SetCheck(MenuSelect(ID_INS_BEF));
}
void CTerView::OnJoinLine() {TerMenu(ID_JOIN_LINE);}
void CTerView::OnUpdateJoinLine(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_JOIN_LINE));
pCmdUI->SetCheck(MenuSelect(ID_JOIN_LINE));
}
void CTerView::OnPasteSpec() {TerMenu(ID_PASTE_SPEC);}
void CTerView::OnUpdatePasteSpec(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PASTE_SPEC));
pCmdUI->SetCheck(MenuSelect(ID_PASTE_SPEC));
}
void CTerView::OnRepaginate() {TerMenu(ID_REPAGINATE);}
void CTerView::OnUpdateRepaginate(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_REPAGINATE));
pCmdUI->SetCheck(MenuSelect(ID_REPAGINATE));
}
void CTerView::OnSectOptions() {TerMenu(ID_SECT_OPTIONS);}
void CTerView::OnUpdateSectOptions(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SECT_OPTIONS));
pCmdUI->SetCheck(MenuSelect(ID_SECT_OPTIONS));
}
void CTerView::OnSelectAll() {TerMenu(ID_SELECT_ALL);}
void CTerView::OnUpdateSelectAll(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SELECT_ALL));
pCmdUI->SetCheck(MenuSelect(ID_SELECT_ALL));
}
void CTerView::OnSplitLine() {TerMenu(ID_SPLIT_LINE);}
void CTerView::OnUpdateSplitLine(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SPLIT_LINE));
pCmdUI->SetCheck(MenuSelect(ID_SPLIT_LINE));
}
// View menu options
void CTerView::OnViewHiddentext() {TerMenu(ID_SHOW_HIDDEN);}
void CTerView::OnUpdateViewHiddentext(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SHOW_HIDDEN));
pCmdUI->SetCheck(MenuSelect(ID_SHOW_HIDDEN));
}
void CTerView::OnViewPagemode() {TerMenu(ID_PAGE_MODE);}
void CTerView::OnUpdateViewPagemode(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PAGE_MODE));
pCmdUI->SetCheck(MenuSelect(ID_PAGE_MODE));
}
void CTerView::OnViewParagraphmarker() {TerMenu(ID_SHOW_PARA_MARK);}
void CTerView::OnUpdateViewParagraphmarker(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SHOW_PARA_MARK));
pCmdUI->SetCheck(MenuSelect(ID_SHOW_PARA_MARK));
}
void CTerView::OnViewRuler() {TerMenu(ID_RULER);}
void CTerView::OnUpdateViewRuler(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_RULER));
pCmdUI->SetCheck(MenuSelect(ID_RULER));
}
void CTerView::OnViewHyperlinkCursor() {TerMenu(ID_SHOW_HYPERLINK_CURSOR);}
void CTerView::OnUpdateViewHyperlinkCursor(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SHOW_HYPERLINK_CURSOR));
pCmdUI->SetCheck(MenuSelect(ID_SHOW_HYPERLINK_CURSOR));
}
void CTerView::OnViewStatusBar() {TerMenu(ID_STATUS_RIBBON);}
void CTerView::OnUpdateViewStatusBar(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_STATUS_RIBBON));
pCmdUI->SetCheck(MenuSelect(ID_STATUS_RIBBON));
}
void CTerView::OnViewToolbar() {TerMenu(ID_TOOL_BAR);}
void CTerView::OnUpdateViewToolbar(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TOOL_BAR));
pCmdUI->SetCheck(MenuSelect(ID_TOOL_BAR));
}
void CTerView::OnViewHdrFtr() {TerMenu(ID_VIEW_HDR_FTR);}
void CTerView::OnUpdateViewHdrFtr(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_VIEW_HDR_FTR));
pCmdUI->SetCheck(MenuSelect(ID_VIEW_HDR_FTR));
}
// Insert menu options
void CTerView::OnInsertColumnbreak() {TerMenu(ID_COL_BREAK);}
void CTerView::OnUpdateInsertColumnbreak(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_COL_BREAK));
pCmdUI->SetCheck(MenuSelect(ID_COL_BREAK));
}
void CTerView::OnInsertPagebreak() {TerMenu(ID_PAGE_BREAK);}
void CTerView::OnUpdateInsertPagebreak(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PAGE_BREAK));
pCmdUI->SetCheck(MenuSelect(ID_PAGE_BREAK));
}
void CTerView::OnInsertSectionbreak() {TerMenu(ID_SECT_BREAK);}
void CTerView::OnUpdateInsertSectionbreak(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SECT_BREAK));
pCmdUI->SetCheck(MenuSelect(ID_SECT_BREAK));
}
void CTerView::OnInsertObject() {TerMenu(ID_INSERT_OBJECT);}
void CTerView::OnUpdateInsertObject(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_INSERT_OBJECT));
pCmdUI->SetCheck(MenuSelect(ID_INSERT_OBJECT));
}
void CTerView::OnInsertPicture() {TerMenu(ID_PICT_FROM_FILE);}
void CTerView::OnUpdateInsertPicture(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PICT_FROM_FILE));
pCmdUI->SetCheck(MenuSelect(ID_PICT_FROM_FILE));
}
// Font and character style functions
void CTerView::OnFontBold() {TerMenu(ID_BOLD_ON);}
void CTerView::OnUpdateFontBold(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_BOLD_ON));
pCmdUI->SetCheck(MenuSelect(ID_BOLD_ON));
}
void CTerView::OnFontDoubleunderline() {TerMenu(ID_ULINED_ON);}
void CTerView::OnUpdateFontDoubleunderline(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_ULINED_ON));
pCmdUI->SetCheck(MenuSelect(ID_ULINED_ON));
}
void CTerView::OnFontFonts() {TerMenu(ID_FONTS);}
void CTerView::OnUpdateFontFonts(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_FONTS));
pCmdUI->SetCheck(MenuSelect(ID_FONTS));
}
void CTerView::OnFontHidden() {TerMenu(ID_HIDDEN_ON);}
void CTerView::OnUpdateFontHidden(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_HIDDEN_ON));
pCmdUI->SetCheck(MenuSelect(ID_HIDDEN_ON));
}
void CTerView::OnFontItalic() {TerMenu(ID_ITALIC_ON);}
void CTerView::OnUpdateFontItalic(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_ITALIC_ON));
pCmdUI->SetCheck(MenuSelect(ID_ITALIC_ON));
}
void CTerView::OnFontNormal() {TerMenu(ID_CHAR_NORMAL);}
void CTerView::OnUpdateFontNormal(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_CHAR_NORMAL));
pCmdUI->SetCheck(MenuSelect(ID_CHAR_NORMAL));
}
void CTerView::OnFontProtect() {TerMenu(ID_PROTECT_ON);}
void CTerView::OnUpdateFontProtect(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PROTECT_ON));
pCmdUI->SetCheck(MenuSelect(ID_PROTECT_ON));
}
void CTerView::OnFontStrikethrough() {TerMenu(ID_STRIKE_ON);}
void CTerView::OnUpdateFontStrikethrough(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_STRIKE_ON));
pCmdUI->SetCheck(MenuSelect(ID_STRIKE_ON));
}
void CTerView::OnFontSubscript() {TerMenu(ID_SUBSCR_ON);}
void CTerView::OnUpdateFontSubscript(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SUBSCR_ON));
pCmdUI->SetCheck(MenuSelect(ID_SUBSCR_ON));
}
void CTerView::OnFontSuperscript() {TerMenu(ID_SUPSCR_ON);}
void CTerView::OnUpdateFontSuperscript(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SUPSCR_ON));
pCmdUI->SetCheck(MenuSelect(ID_SUPSCR_ON));
}
void CTerView::OnFontUnderline() {TerMenu(ID_ULINE_ON);}
void CTerView::OnUpdateFontUnderline(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_ULINE_ON));
pCmdUI->SetCheck(MenuSelect(ID_ULINE_ON));
}
void CTerView::OnFontColor() {TerMenu(ID_COLOR);}
void CTerView::OnUpdateFontColor(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_COLOR));
pCmdUI->SetCheck(MenuSelect(ID_COLOR));
}
void CTerView::OnFontBkColor() {TerMenu(ID_BK_COLOR);}
void CTerView::OnUpdateFontBkColor(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_BK_COLOR));
pCmdUI->SetCheck(MenuSelect(ID_BK_COLOR));
}
// Paragraph options
void CTerView::OnCenter() {TerMenu(ID_CENTER);}
void CTerView::OnUpdateCenter(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_CENTER));
pCmdUI->SetCheck(MenuSelect(ID_CENTER));
}
void CTerView::OnDoubleSpace() {TerMenu(ID_DOUBLE_SPACE);}
void CTerView::OnUpdateDoubleSpace(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_DOUBLE_SPACE));
pCmdUI->SetCheck(MenuSelect(ID_DOUBLE_SPACE));
}
void CTerView::OnHangingIndent() {TerMenu(ID_HANGING_INDENT);}
void CTerView::OnUpdateHangingIndent(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_HANGING_INDENT));
pCmdUI->SetCheck(MenuSelect(ID_HANGING_INDENT));
}
void CTerView::OnParaBorder() {TerMenu(ID_PARA_BORDER);}
void CTerView::OnUpdateParaBorder(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PARA_BORDER));
pCmdUI->SetCheck(MenuSelect(ID_PARA_BORDER));
}
void CTerView::OnParaNormal() {TerMenu(ID_PARA_NORMAL);}
void CTerView::OnUpdateParaNormal(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PARA_NORMAL));
pCmdUI->SetCheck(MenuSelect(ID_PARA_NORMAL));
}
void CTerView::OnRightIndent() {TerMenu(ID_RIGHT_INDENT);}
void CTerView::OnUpdateRightIndent(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_RIGHT_INDENT));
pCmdUI->SetCheck(MenuSelect(ID_RIGHT_INDENT));
}
void CTerView::OnRightJustify() {TerMenu(ID_RIGHT_JUSTIFY);}
void CTerView::OnUpdateRightJustify(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_RIGHT_JUSTIFY));
pCmdUI->SetCheck(MenuSelect(ID_RIGHT_JUSTIFY));
}
void CTerView::OnJustify() {TerMenu(ID_JUSTIFY);}
void CTerView::OnUpdateJustify(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_JUSTIFY));
pCmdUI->SetCheck(MenuSelect(ID_JUSTIFY));
}
void CTerView::OnTabClear() {TerMenu(ID_TAB_CLEAR);}
void CTerView::OnUpdateTabClear(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TAB_CLEAR));
pCmdUI->SetCheck(MenuSelect(ID_TAB_CLEAR));
}
void CTerView::OnTabClearAll() {TerMenu(ID_TAB_CLEAR_ALL);}
void CTerView::OnUpdateTabClearAll(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TAB_CLEAR_ALL));
pCmdUI->SetCheck(MenuSelect(ID_TAB_CLEAR_ALL));
}
void CTerView::OnLeftIndent() {TerMenu(ID_LEFT_INDENT);}
void CTerView::OnUpdateLeftIndent(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_LEFT_INDENT));
pCmdUI->SetCheck(MenuSelect(ID_LEFT_INDENT));
}
// table optoins
void CTerView::OnTableInsert() {TerMenu(ID_TABLE_INSERT);}
void CTerView::OnUpdateTableInsert(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_INSERT));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_INSERT));
}
void CTerView::OnTableInsertRow() {TerMenu(ID_TABLE_INSERT_ROW);}
void CTerView::OnUpdateTableInsertRow(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_INSERT_ROW));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_INSERT_ROW));
}
void CTerView::OnTableSplitCell() {TerMenu(ID_TABLE_SPLIT_CELL);}
void CTerView::OnUpdateTableSplitCell(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_SPLIT_CELL));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_SPLIT_CELL));
}
void CTerView::OnTableMergeCells() {TerMenu(ID_TABLE_MERGE_CELLS);}
void CTerView::OnUpdateTableMergeCells(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_MERGE_CELLS));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_MERGE_CELLS));
}
void CTerView::OnTableDelCells() {TerMenu(ID_TABLE_DEL_CELLS);}
void CTerView::OnUpdateTableDelCells(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_DEL_CELLS));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_DEL_CELLS));
}
void CTerView::OnTableShowGrid() {TerMenu(ID_TABLE_SHOW_GRID);}
void CTerView::OnUpdateTableShowGrid(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_SHOW_GRID));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_SHOW_GRID));
}
void CTerView::OnTableRowPos() {TerMenu(ID_TABLE_ROW_POS);}
void CTerView::OnUpdateTableRowPos(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_ROW_POS));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_ROW_POS));
}
void CTerView::OnTableCellBorder() {TerMenu(ID_TABLE_CELL_BORDER);}
void CTerView::OnUpdateTableCellBorder(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_CELL_BORDER));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_CELL_BORDER));
}
void CTerView::OnTableCellShade() {TerMenu(ID_TABLE_CELL_SHADE);}
void CTerView::OnUpdateTableCellShade(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TABLE_CELL_SHADE));
pCmdUI->SetCheck(MenuSelect(ID_TABLE_CELL_SHADE));
}
// Other menu options
void CTerView::OnFileBegin() {TerMenu(ID_FILE_BEGIN);}
void CTerView::OnUpdateFileBegin(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_FILE_BEGIN));
pCmdUI->SetCheck(MenuSelect(ID_FILE_BEGIN));
}
void CTerView::OnFileEnd() {TerMenu(ID_FILE_END);}
void CTerView::OnUpdateFileEnd(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_FILE_END));
pCmdUI->SetCheck(MenuSelect(ID_FILE_END));
}
void CTerView::OnJump() {TerMenu(ID_JUMP);}
void CTerView::OnUpdateJump(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_JUMP));
pCmdUI->SetCheck(MenuSelect(ID_JUMP));
}
void CTerView::OnLineBegin() {TerMenu(ID_LINE_BEGIN);}
void CTerView::OnUpdateLineBegin(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_LINE_BEGIN));
pCmdUI->SetCheck(MenuSelect(ID_LINE_BEGIN));
}
void CTerView::OnLineEnd() {TerMenu(ID_LINE_END);}
void CTerView::OnUpdateLineEnd(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_LINE_END));
pCmdUI->SetCheck(MenuSelect(ID_LINE_END));
}
void CTerView::OnNextWord() {TerMenu(ID_NEXT_WORD);}
void CTerView::OnUpdateNextWord(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_NEXT_WORD));
pCmdUI->SetCheck(MenuSelect(ID_NEXT_WORD));
}
void CTerView::OnPrevWord() {TerMenu(ID_PREV_WORD);}
void CTerView::OnUpdatePrevWord(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PREV_WORD));
pCmdUI->SetCheck(MenuSelect(ID_PREV_WORD));
}
void CTerView::OnProtectionLock() {TerMenu(ID_PROTECTION_LOCK);}
void CTerView::OnUpdateProtectionLock(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_PROTECTION_LOCK));
pCmdUI->SetCheck(MenuSelect(ID_PROTECTION_LOCK));
}
void CTerView::OnReplace() {TerMenu(ID_REPLACE);}
void CTerView::OnUpdateReplace(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_REPLACE));
pCmdUI->SetCheck(MenuSelect(ID_REPLACE));
}
void CTerView::OnSearch() {TerMenu(ID_SEARCH);}
void CTerView::OnUpdateSearch(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SEARCH));
pCmdUI->SetCheck(MenuSelect(ID_SEARCH));
}
void CTerView::OnSearchBack() {TerMenu(ID_SEARCH_BACK);}
void CTerView::OnUpdateSearchBack(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SEARCH_BACK));
pCmdUI->SetCheck(MenuSelect(ID_SEARCH_BACK));
}
void CTerView::OnSearchFor() {TerMenu(ID_SEARCH_FOR);}
void CTerView::OnUpdateSearchFor(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_SEARCH_FOR));
pCmdUI->SetCheck(MenuSelect(ID_SEARCH_FOR));
}
void CTerView::OnHelp() {TerMenu(ID_TER_HELP);}
void CTerView::OnUpdateHelp(CCmdUI* pCmdUI)
{
pCmdUI->Enable(MenuEnable(ID_TER_HELP));
pCmdUI->SetCheck(MenuSelect(ID_TER_HELP));
}