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

📄 ccmdmanager.h

📁 这是一个程序的一般架构方法
💻 H
字号:
// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_CCMDMANAGER_43163B8A0203_INCLUDED
#define _INC_CCMDMANAGER_43163B8A0203_INCLUDED

//命令管理,
//响应用户的CMD命令
//命令分为4种:
//   1 立即命令,马上执行
//   2 透明命令,向下层传递,可以是多层
//   3功能执行随时命令,
//  4功能执行命令
#include "CMDInfoOperation.h"

//命令管理,
//响应用户的CMD命令
//命令分为4种:
//   1 立即命令,马上执行
//   2 透明命令,向下层传递,可以是多层
//   3功能执行随时命令,
//  4功能执行命令
//##ModelId=43163B8A0203
class CCMDManager : public CMessageBase
{
private:
	//功能执行随时命令ID
	//##ModelId=43226A060242
	UINT m_ViewCMDID;

	//功能命令ID
	//##ModelId=43226A820242
	UINT m_MainCMDID;

	//立即命令ID
	UINT m_OnceCMDID;
	//所有注册的ID命令
	//##ModelId=43167ECC03A9
	CMDInfoOperation m_CMDInfoOperation;

	//##ModelId=4316461900BB
	CObjectManager * m_pCObjectManager;
	//##ModelId=43167ECC03A9
//	CMDInfoOperation m_CMDInfoOperation;

public:

	//描述:
	//   删除CMD响应
	//返回:
	//  void
	//参数:
	//  CMDID 消息ID
	//##ModelId=4316F5F000BB
	void RemoveCmdOperation( UINT CMDID );

	//描述:
	//   获取一个唯一的,没有使用过的CMDID
	//返回:
	//  新   CMDID
	//参数:
	//  void
	UINT GetMaxCMDID();

	CCMDManager();
	//
	//描述:
	//   向CMDMangaer中加入一个CMDID
	//返回:
	//  void
	//参数:
	//  CMDID 必须日前没有的ID
	//  nType 命令的类型,有四种 见 CMDTYPE
	// 响应命令的回调函数
	//  ProcCommand 命令的执行体   BOOL ProcCommand()
	//  ProcSleep 使命令挂起或唤醒 BOOL ProcSleep(BOOL)
	//  ProcUpdateCommandUI 命令状态的查询 BOOL ProcUpdateCommandUI(void * pExtra)
	//  ProcCommand 命令是否可操作。BOOL ProcCommand()
	//##ModelId=4318245101A5
	void AddCmdOperation(UINT CMDID, CMDTYPE nType
		, FARPROC ProcCommand = NULL
		, FARPROC ProcSleep = NULL
		, FARPROC ProcUpdateCommandUI = NULL
		, FARPROC ProcEnableCommand = NULL
		);

	//
	//描述:
	//   响应系统发来的CMD命令
	//返回:
	//  BOOL 响应命令的结果
	//参数:
	//   与Window一致;
	//##ModelId=4316800201F4
	BOOL OnCmdMsg(UINT nID, int nCode, void * pExtra);

	//
	//描述:
	//   初始化
	//返回:
	//  BOOL 
	//参数:
	//##ModelId=431659610109
	bool Init(CObjectManager * pCObjectManager);

	//##ModelId=43165969036B
	//描述:
	//   清除
	//返回:
	//  BOOL 
	//参数:
	bool Clear();
public:
	//描述:
	//   处理某个命令自己挂起的消息
	//返回:
	//  BOOL 同意为TRUE 不同意为FALSE
	//参数:
	BOOL OnCMDSleep( UINT uID);
	//描述:
	//   处理某个命令将要卸载的消息
	//返回:
	//  BOOL 同意为TRUE 不同意为FALSE
	//参数:
	BOOL OnCMDUnload(UINT uID);
	USER_DECLARE_MESSAGE_MAP
};

#endif /* _INC_CCMDMANAGER_43163B8A0203_INCLUDED */

⌨️ 快捷键说明

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