您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CanUndo函数代码示例

51自学网 2021-06-01 20:09:18
  C++
这篇教程C++ CanUndo函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CanUndo函数的典型用法代码示例。如果您正苦于以下问题:C++ CanUndo函数的具体用法?C++ CanUndo怎么用?C++ CanUndo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CanUndo函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: VERIFY

void CPropTreeItemFileEdit::OnContextMenu(CWnd *pWnd, CPoint point){	CMenu FloatingMenu;	VERIFY(FloatingMenu.LoadMenu(IDR_ME_EDIT_MENU));	CMenu *pPopupMenu = FloatingMenu.GetSubMenu(0);	if (CanUndo()) {		pPopupMenu->EnableMenuItem(ID_EDIT_UNDO, MF_BYCOMMAND | MF_ENABLED);	} else {		pPopupMenu->EnableMenuItem(ID_EDIT_UNDO, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);	}	DWORD dwSel = GetSel();	if (HIWORD(dwSel) != LOWORD(dwSel)) {		pPopupMenu->EnableMenuItem(ID_EDIT_CUT, MF_BYCOMMAND | MF_ENABLED);		pPopupMenu->EnableMenuItem(ID_EDIT_COPY, MF_BYCOMMAND | MF_ENABLED);		pPopupMenu->EnableMenuItem(ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED);	} else {		pPopupMenu->EnableMenuItem(ID_EDIT_CUT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);		pPopupMenu->EnableMenuItem(ID_EDIT_COPY, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);		pPopupMenu->EnableMenuItem(ID_EDIT_DELETE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);	}	pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);}
开发者ID:AreaScout,项目名称:dante-doom3-odroid,代码行数:27,


示例2: Undo

// Undo the last commandvoid PaintModel::Undo() {	if (CanUndo()) {		mRedoStack.push(mUndoStack.top());		mUndoStack.top()->Undo(shared_from_this());		mUndoStack.pop();	}}
开发者ID:connor-k,项目名称:ProPaint,代码行数:8,


示例3: BBAssertDebug

    void BatchCommand::Undo()    {        BBAssertDebug(CanUndo());        for (RestorableCommandCollection::reverse_iterator it = restorableCommands.rbegin(); it != restorableCommands.rend(); ++it)            (*it)->Undo();    }
开发者ID:Darkttd,项目名称:Bibim,代码行数:7,


示例4: Undo

void wxTextCtrl::Undo(){    if (CanUndo())    {        ::SendMessage(GetBuddyHwnd(), EM_UNDO, 0, 0);    }}
开发者ID:ACanadianKernel,项目名称:pcsx2,代码行数:7,


示例5: switch

void CColorEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){	// TODO: Add your message handler code here and/or call default	switch (nChar)	{	case 0x01:// Ctrl-A => handle SELECT_ALL		SetSel(0, -1);		return;	case 0x03:// Ctrl-C => handle WM_COPY		Copy();		return;	case 0x16:// Ctrl-V => handle WM_PASTE		Paste();		return;	case 0x18:// Ctrl-X => handle WM_CUT		Cut();		return;	case 0x1A:// Ctrl-Z => handle ID_EDIT_UNDO (EM_UNDO)		if(CanUndo())			Undo();		return;	}	CEdit::OnChar(nChar, nRepCnt, nFlags);}
开发者ID:KurzedMetal,项目名称:Jaangle,代码行数:25,


示例6: wxCHECK_RET

void wxTextEntry::Undo(){    wxCHECK_RET( GetTextPeer(), "Must create the control first" );    if (CanUndo())        GetTextPeer()->Undo() ;}
开发者ID:chromylei,项目名称:third_party,代码行数:7,


示例7: CheckState

bool UTransBuffer::Undo(){	CheckState();	if (!CanUndo())	{		UndoDelegate.Broadcast(FUndoSessionContext(), false);		return false;	}	// Apply the undo changes.	GIsTransacting = true;	{		FTransaction& Transaction = UndoBuffer[ UndoBuffer.Num() - ++UndoCount ];		UE_LOG(LogEditorTransaction, Log,  TEXT("Undo %s"), *Transaction.GetTitle().ToString() );		BeforeRedoUndoDelegate.Broadcast(Transaction.GetContext());		Transaction.Apply();		UndoDelegate.Broadcast(Transaction.GetContext(), true);	}	GIsTransacting = false;	CheckState();	return true;}
开发者ID:magetron,项目名称:UnrealEngine4-mod,代码行数:27,


示例8: Undo

void CHistory::Undo(){	if (CanUndo())	{		m_commands[m_nextCommandIndex - 1]->Unexecute(); // может выбросить исключение		--m_nextCommandIndex;	}}
开发者ID:Andrey540,项目名称:faststart_Egoshin_Andrey,代码行数:8,


示例9:

BStringUndoContext::UndoLabel() const{	if (CanUndo())		return ((Action*)fHistory->ItemAt(fAt - 1))->Label();	else		return "";}
开发者ID:Admixior,项目名称:ResourceEdit,代码行数:8,


示例10: Undo

void wxTextCtrl::Undo(){    if (CanUndo())    {        if (m_bIsMLE)            ::WinSendMsg(GetHwnd(), MLM_UNDO, 0, 0);        // Simple entryfields cannot be undone    }} // end of wxTextCtrl::Undo
开发者ID:EdgarTx,项目名称:wx,代码行数:9,


示例11: InternalRollBack

bool History::InternalRollBack(void){	if(!CanUndo())return false;	Undoable *u;	m_curpos--;	u = *m_curpos;	u->RollBack();	return true;}
开发者ID:Blokkendoos,项目名称:heekscad,代码行数:9,


示例12: Undo

void wxComboBox::Undo(){    if (CanUndo())    {        HWND hEditWnd = (HWND) GetEditHWND() ;        if ( hEditWnd )            ::SendMessage(hEditWnd, EM_UNDO, 0, 0);    }}
开发者ID:HackLinux,项目名称:chandler-1,代码行数:9,


示例13: Redo

void wxComboBox::Redo(){    if (CanUndo())    {        // Same as Undo, since Undo undoes the undo, i.e. a redo.        HWND hEditWnd = (HWND) GetEditHWND() ;        if ( hEditWnd )            ::SendMessage(hEditWnd, EM_UNDO, 0, 0);    }}
开发者ID:HackLinux,项目名称:chandler-1,代码行数:10,


示例14: Assert

void SnapshotManager::Undo(){  Assert(CanUndo());  if (m_snapshots.size() > 1)  {    m_snapshots.pop_back();  }  SetStateToSnapshot(*(m_snapshots.rbegin()));}
开发者ID:jason-amju,项目名称:amju-scp,代码行数:11,


示例15:

bool	cActionManager::Undo(){ 	if (CanUndo())	{		cAction* action = mUndoList.front();		RemoveTopAction(UNDO);		action->Accept(cUndoActionVisitor::Global());		AddAction(REDO, action);		return true;	}	return false;}
开发者ID:eriser,项目名称:wired,代码行数:12,


示例16: CUICommandNode

void CUICommandHistory::UICommandAction(CommandType type){	CUICommandNode* pOldNode;	CUICommandNode* pNewNode;	if(type == cmdRedo)	{		if(!CanRedo())			return;		pOldNode = m_lstCommandNodes.GetAt(m_lstCommandNodes.FindIndex(m_nCommandIndex));		pNewNode = new CUICommandNode(pOldNode->m_pBefore, pOldNode->m_pAfter, pOldNode->m_ActionType);		m_nCommandIndex++;	}	else	{		if(!CanUndo())			return;		m_nCommandIndex--;		pOldNode = m_lstCommandNodes.GetAt(m_lstCommandNodes.FindIndex(m_nCommandIndex));		ActionType action;		switch(pOldNode->m_ActionType)		{		case actionAdd:			action = actionDelete;			break;		case actionModify:			action = actionModify;			break;		case actionDelete:			action = actionAdd;			break;		}		pNewNode = new CUICommandNode(pOldNode->m_pAfter, pOldNode->m_pBefore, action);	}	switch(pNewNode->m_ActionType)	{	case actionAdd:		ActionAdd(pNewNode->m_pAfter);		break;	case actionModify:		ActionModify(pNewNode->m_pAfter);		break;	case actionDelete:		ActionDelete(pNewNode->m_pBefore);		break;	}	delete pNewNode;}
开发者ID:DayDayUpCQ,项目名称:misc,代码行数:52,


示例17: CheckBoundsUndoIfFails

//-----------------------------------------------------------------------------// The display code is the only part of the program that knows how wide a// rung will be when it's displayed; so this is the only convenient place to// warn the user and undo their changes if they created something too wide.// This is not very clean.//-----------------------------------------------------------------------------static BOOL CheckBoundsUndoIfFails(int gx, int gy){    if(gx >= DISPLAY_MATRIX_X_SIZE || gx < 0 ||       gy >= DISPLAY_MATRIX_Y_SIZE || gy < 0)    {        if(CanUndo()) {            UndoUndo();            Error(_("Too many elements in subcircuit!"));            return TRUE;        }    }    return FALSE;}
开发者ID:chihyang,项目名称:ldmicro,代码行数:19,


示例18: GetUndoContext

FUndoSessionContext UTransBuffer::GetUndoContext( bool bCheckWhetherUndoPossible ){	FUndoSessionContext Context;	FText Title;	if( bCheckWhetherUndoPossible && !CanUndo( &Title ) )	{		Context.Title = Title;		return Context;	}	const FTransaction* Transaction = &UndoBuffer[ UndoBuffer.Num() - (UndoCount + 1) ];	return Transaction->GetContext();}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:13,


示例19: Undo

void CEditWnd::Undo(){	if (!CanUndo()) return;	CPoint ptCursorPos;	if (m_pTextBuffer->Undo(ptCursorPos))	{		ASSERT_VALIDTEXTPOS(ptCursorPos);		SetAnchor(ptCursorPos);		SetSelection(ptCursorPos, ptCursorPos);		SetCursorPos(ptCursorPos);		EnsureVisible(ptCursorPos);	}}
开发者ID:kosfango,项目名称:fips,代码行数:13,


示例20: Undo

//-----------------------------------------------------------------------------// Purpose: // Input  : *exp - //-----------------------------------------------------------------------------void CExpression::Undo( void ){	if ( !CanUndo() )		return;	Assert( m_nUndoCurrent < undo.Size() );	CExpUndoInfo *u = undo[ m_nUndoCurrent++ ];	Assert( u );		memcpy( setting, u->setting, GLOBAL_STUDIO_FLEX_CONTROL_COUNT * sizeof( float ) );	memcpy( weight, u->weight, GLOBAL_STUDIO_FLEX_CONTROL_COUNT * sizeof( float ) );}
开发者ID:DeadZoneLuna,项目名称:SourceEngine2007,代码行数:17,


示例21: Undo

void CommandManager::Undo(std::string& feedback){	if (CanUndo()){		UndoRedoCount--;		Command* pCommand = getLastUndoCommand();		undoList.pop_back();		if (pCommand->undo(_taskList, feedback)){			AddRedo(pCommand);		} else {			delete pCommand;			pCommand = NULL;		}	}}
开发者ID:terencelimzhengwei,项目名称:cs2103jan2014-t17-3c,代码行数:13,


示例22: switch

 bool NativeTextfieldWin::IsCommandIdEnabled(int command_id) const {     switch(command_id)     {     case IDS_APP_UNDO:       return !textfield_->read_only() && !!CanUndo();     case IDS_APP_CUT:        return !textfield_->read_only() &&                                  !textfield_->IsPassword() && !!CanCut();     case IDS_APP_COPY:       return !!CanCopy() && !textfield_->IsPassword();     case IDS_APP_PASTE:      return !textfield_->read_only() && !!CanPaste();     case IDS_APP_SELECT_ALL: return !!CanSelectAll();     default:                 NOTREACHED();         return false;     } }
开发者ID:abyvaltsev,项目名称:putty-nd3.x,代码行数:14,


示例23: GetSel

void CRichEditCtrlX::OnContextMenu(CWnd* pWnd, CPoint point){	long iSelStart, iSelEnd;	GetSel(iSelStart, iSelEnd);	int iTextLen = GetWindowTextLength();	// Context menu of standard edit control	// 	// Undo	// ----	// Cut	// Copy	// Paste	// Delete	// ------	// Select All	bool bReadOnly = (GetStyle() & ES_READONLY);	CMenu menu;	menu.CreatePopupMenu();	if (!bReadOnly){		menu.AppendMenu(MF_STRING, MP_UNDO, GetResString(IDS_UNDO));		menu.AppendMenu(MF_SEPARATOR);	}	if (!bReadOnly)		menu.AppendMenu(MF_STRING, MP_CUT, GetResString(IDS_CUT));	menu.AppendMenu(MF_STRING, MP_COPYSELECTED, GetResString(IDS_COPY));	if (!bReadOnly){		menu.AppendMenu(MF_STRING, MP_PASTE, GetResString(IDS_PASTE));		menu.AppendMenu(MF_STRING, MP_REMOVESELECTED, GetResString(IDS_DELETESELECTED));	}	menu.AppendMenu(MF_SEPARATOR);	menu.AppendMenu(MF_STRING, MP_SELECTALL, GetResString(IDS_SELECTALL));	menu.EnableMenuItem(MP_UNDO, CanUndo() ? MF_ENABLED : MF_GRAYED);	menu.EnableMenuItem(MP_CUT, iSelEnd > iSelStart ? MF_ENABLED : MF_GRAYED);	menu.EnableMenuItem(MP_COPYSELECTED, iSelEnd > iSelStart ? MF_ENABLED : MF_GRAYED);	menu.EnableMenuItem(MP_PASTE, CanPaste() ? MF_ENABLED : MF_GRAYED);	menu.EnableMenuItem(MP_REMOVESELECTED, iSelEnd > iSelStart ? MF_ENABLED : MF_GRAYED);	menu.EnableMenuItem(MP_SELECTALL, iTextLen > 0 ? MF_ENABLED : MF_GRAYED);	if (point.x == -1 && point.y == -1)	{		point.x = 16;		point.y = 32;		ClientToScreen(&point);	}	menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);}
开发者ID:BackupTheBerlios,项目名称:nextemf,代码行数:50,


示例24: OnMenuUndo

void ProjectManager::OnMenuUndo(){	//Si on peut annuler la modification	if(CanUndo())	{		if(currentHistoryNavigation==0)		{			PushModificationToHistory(true);			currentHistoryNavigation++;		}		currentHistoryNavigation++;		projetConfig=configHistory[configHistory.size()-currentHistoryNavigation];		LoadCurrentProject(false);		Init();	}}
开发者ID:Ezio47,项目名称:I-Simpa,代码行数:16,


示例25: GetUndoMenuLabel

void wxCommandProcessor::SetMenuStrings(){#if wxUSE_MENUS    if (m_commandEditMenu)    {        wxString undoLabel = GetUndoMenuLabel();        wxString redoLabel = GetRedoMenuLabel();        m_commandEditMenu->SetLabel(wxID_UNDO, undoLabel);        m_commandEditMenu->Enable(wxID_UNDO, CanUndo());        m_commandEditMenu->SetLabel(wxID_REDO, redoLabel);        m_commandEditMenu->Enable(wxID_REDO, CanRedo());    }#endif // wxUSE_MENUS}
开发者ID:rsperberg,项目名称:wxWidgets,代码行数:16,


示例26: while

bool	cActionManager::Undo(int id){	while (42)	{		if (CanUndo())		{			cAction* action = mUndoList.front();			RemoveTopAction(UNDO);			action->Accept(cUndoActionVisitor::Global());			AddAction(REDO, action);			if (action->m_Id == id)				return true;		}		else			return false;	}	return false;}
开发者ID:eriser,项目名称:wired,代码行数:18,


示例27: CheckState

bool UTransBuffer::Undo(){	CheckState();	if( !CanUndo() )	{		return false;	}	// Apply the undo changes.	FTransaction& Transaction = UndoBuffer[ UndoBuffer.Num() - ++UndoCount ];	UE_LOG(LogEditorTransaction, Log,  TEXT("Undo %s"), *Transaction.GetTitle().ToString() );	Transaction.Apply();	CheckState();	return true;}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:18,


示例28: ASSERT

BOOL CCrystalTextBuffer::Undo(CPoint &ptCursorPos){	ASSERT(CanUndo());	ASSERT((m_aUndoBuf[0].m_dwFlags & UNDO_BEGINGROUP) != 0);	for (;;)	{		m_nUndoPosition --;		const SUndoRecord &ur = m_aUndoBuf[m_nUndoPosition];		if (ur.m_dwFlags & UNDO_INSERT)		{#ifdef _ADVANCED_BUGCHECK			//	Try to ensure that we undoing correctly...			//	Just compare the text as it was before Undo operation			CString text;			GetText(ur.m_ptStartPos.y, ur.m_ptStartPos.x, ur.m_ptEndPos.y, ur.m_ptEndPos.x, text);			ASSERT(lstrcmp(text, ur.m_pcText) == 0);#endif			VERIFY(InternalDeleteText(NULL, ur.m_ptStartPos.y, ur.m_ptStartPos.x, ur.m_ptEndPos.y, ur.m_ptEndPos.x));			ptCursorPos = ur.m_ptStartPos;		}		else		{			int nEndLine, nEndChar;			VERIFY(InternalInsertText(NULL, ur.m_ptStartPos.y, ur.m_ptStartPos.x, ur.m_pcText, nEndLine, nEndChar));#ifdef _ADVANCED_BUGCHECK			ASSERT(ur.m_ptEndPos.y == nEndLine);			ASSERT(ur.m_ptEndPos.x == nEndChar);#endif			ptCursorPos = ur.m_ptEndPos;		}		if (ur.m_dwFlags & UNDO_BEGINGROUP)			break;	}	if (m_bModified && m_nSyncPosition == m_nUndoPosition)		SetModified(FALSE);	if (! m_bModified && m_nSyncPosition != m_nUndoPosition)		SetModified(TRUE);	return TRUE;}
开发者ID:AndySze,项目名称:OpenServo,代码行数:39,


示例29: SetFocus

void CMyRichEdit::OnRButtonDown(UINT nFlags, CPoint point) {	//设置为焦点	SetFocus();	//创建一个弹出式菜单	CMenu popmenu;	popmenu.CreatePopupMenu();	//添加菜单项目	popmenu.AppendMenu(0, ID_RICH_UNDO, _T("撤消(&U)"));	popmenu.AppendMenu(0, MF_SEPARATOR);	popmenu.AppendMenu(0, ID_RICH_CUT, _T("剪切(&T)"));	popmenu.AppendMenu(0, ID_RICH_COPY, _T("复制(&T)"));	popmenu.AppendMenu(0, ID_RICH_PASTE, _T("粘贴(&P)"));	popmenu.AppendMenu(0, ID_RICH_CLEAR, _T("删除(&D)"));	popmenu.AppendMenu(0, MF_SEPARATOR);	popmenu.AppendMenu(0, ID_RICH_SELECTALL, _T("全选(&A)"));	popmenu.AppendMenu(0, MF_SEPARATOR);	popmenu.AppendMenu(0, ID_RICH_SETFONT, _T("设置字体(&F)"));	//初始化菜单项	UINT nUndo=(CanUndo() ? 0 : MF_GRAYED );	popmenu.EnableMenuItem(ID_RICH_UNDO, MF_BYCOMMAND|nUndo);	UINT nSel=((GetSelectionType()!=SEL_EMPTY) ? 0 : MF_GRAYED) ;	popmenu.EnableMenuItem(ID_RICH_CUT, MF_BYCOMMAND|nSel);	popmenu.EnableMenuItem(ID_RICH_COPY, MF_BYCOMMAND|nSel);	popmenu.EnableMenuItem(ID_RICH_CLEAR, MF_BYCOMMAND|nSel);		UINT nPaste=(CanPaste() ? 0 : MF_GRAYED) ;	popmenu.EnableMenuItem(ID_RICH_PASTE, MF_BYCOMMAND|nPaste);	//显示菜单	CPoint pt;	GetCursorPos(&pt);	popmenu.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);	popmenu.DestroyMenu();	CRichEditCtrl::OnRButtonDown(nFlags, point);}
开发者ID:janker007,项目名称:cocoshun,代码行数:38,



注:本文中的CanUndo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ Cancel函数代码示例
C++ CanSeek函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。