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

📄 ceedit.cpp

📁 基于WINDOWS mobile 的用于创建一个窗体和自定义试图的工程
💻 CPP
字号:
// CeEdit.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "CeEdit.h"
#include "FormListCtrl.h"

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


//---------------------------------------------------------------------------
//
//	CCeEdit
//
//---------------------------------------------------------------------------


CCeEdit::CCeEdit()
:	m_nMenuID	(0)
{
	if(m_menuEdit.CreatePopupMenu())
	{
		m_menuEdit.AppendMenu(MF_ENABLED,	ID_EDIT_UNDO,	_T("&Undo"));
		m_menuEdit.AppendMenu(MF_SEPARATOR);
		m_menuEdit.AppendMenu(MF_ENABLED,	ID_EDIT_CUT,	_T("Cu&t"));
		m_menuEdit.AppendMenu(MF_ENABLED,	ID_EDIT_COPY,	_T("&Copy"));
		m_menuEdit.AppendMenu(MF_ENABLED,	ID_EDIT_PASTE,	_T("&Paste"));
	}
}


CCeEdit::~CCeEdit()
{
}


BEGIN_MESSAGE_MAP(CCeEdit, CEdit)
	//{{AFX_MSG_MAP(CCeEdit)
	ON_WM_LBUTTONDOWN()
	ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut)
	ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy)
	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
	ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
	ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
	ON_COMMAND(ID_EDIT_CUT, OnEditCut)
	ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
	//}}AFX_MSG_MAP

#ifdef PPC_200X
	ON_WM_KEYDOWN()
#endif

END_MESSAGE_MAP()


// CEdit::HasSelection
//
//		Checks if the edit box has a selection
//
BOOL CCeEdit::HasSelection()
{
	int	nIni,
		nEnd;

	GetSel(nIni, nEnd);

	return nIni != nEnd;
}


// CCeEdit::CanPaste
//
//		Cehcks if the edit control can paste text from the clipboard
//
BOOL CCeEdit::CanPaste()
{
	BOOL	bOk;

	bOk = OpenClipboard();
	if(bOk)
	{
		HANDLE	hTextUnic = GetClipboardData(CF_UNICODETEXT),
				hTextAnsi = GetClipboardData(CF_TEXT);

		bOk = (hTextUnic != NULL || hTextAnsi != NULL);

		CloseClipboard();
	}

	return bOk;
}


//---------------------------------------------------------------------------
//
//	CCeEdit command handlers
//
//---------------------------------------------------------------------------


// CCeEdit::OnUpdateEditUndo
//
//		Checks if the edit undo command is available
//
void CCeEdit::OnUpdateEditUndo(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(CanUndo());
}


// CCeEdit::OnEditUndo
//
//		Performs an undo operation
//
void CCeEdit::OnEditUndo() 
{
	Undo();
}


// CCeEdit::OnUpdateEditCut
//
//		Checks if the edit cut command is available
//
void CCeEdit::OnUpdateEditCut(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(HasSelection());
}


// CCeEdit::OnEditCut
//
//		Performs a cut
//
void CCeEdit::OnEditCut() 
{
	Cut();
}


// CCeEdit::OnUpdateEditCopy
//
//		Checks if the edit copy command is available
//
void CCeEdit::OnUpdateEditCopy(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(HasSelection());
}


// CCeEdit::OnEditCopy
//
//		Performs a copy
//
void CCeEdit::OnEditCopy() 
{
	Copy();
}


// CCeEdit::OnUpdateEditPaste
//
//		Checks if the paste command is available
//
void CCeEdit::OnUpdateEditPaste(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(CanPaste());
}


// CCeEdit::OnEditPaste
//
//		Pastes text from the clipboard
//
void CCeEdit::OnEditPaste() 
{
	Paste();
}


//---------------------------------------------------------------------------
//
//	CCeEdit message handlers
//
//---------------------------------------------------------------------------


// CCeEdit::OnLButtonDown
//
//		Processes a left button down message
//
void CCeEdit::OnLButtonDown(UINT nFlags, CPoint point) 
{
	SHRGINFO	shrgi;

	//
	// Check for a tap-and-hold
	//
	shrgi.cbSize		= sizeof(SHRGINFO);
	shrgi.hwndClient	= GetSafeHwnd();
    shrgi.ptDown.x      = point.x;
    shrgi.ptDown.y      = point.y;
    shrgi.dwFlags       = SHRG_RETURNCMD;
	if(GN_CONTEXTMENU == ::SHRecognizeGesture(&shrgi))
	{
		BOOL	bSel = HasSelection();

		//
		// Prepare the menu
		//
		m_menuEdit.EnableMenuItem(MF_BYCOMMAND | ID_EDIT_CUT, 
				bSel ? MF_ENABLED : MF_GRAYED);
		m_menuEdit.EnableMenuItem(MF_BYCOMMAND | ID_EDIT_COPY, 
				bSel ? MF_ENABLED : MF_GRAYED);
		m_menuEdit.EnableMenuItem(MF_BYCOMMAND | ID_EDIT_UNDO, 
				CanUndo() ? MF_ENABLED : MF_GRAYED);
		m_menuEdit.EnableMenuItem(MF_BYCOMMAND | ID_EDIT_PASTE, 
				CanPaste() ? MF_ENABLED : MF_GRAYED);

		ClientToScreen(&point);
		m_menuEdit.TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
	}
	else
		CEdit::OnLButtonDown(nFlags, point);
}


#ifdef PPC_200X


// CCeEdit::OnKeyDown
//
//		Handle the Up and Down arrows on the Pocket PC 2003
//		This is not required for WM5
//
void CCeEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// Check for the navigation keys
	if(nChar == VK_DOWN || nChar == VK_UP)
	{
		// Set focus back to the parent (form list).
		// The OnKeyUp events will be processed by it.
		::SetFocus(::GetParent(m_hWnd));
	}
	else
	{
		CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
	}
}

#endif

⌨️ 快捷键说明

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