📄 key.h
字号:
// Key.h: interface for the CKey class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_KEY_H__A0AE6BA0_42EF_11D5_8DCF_B30311848839__INCLUDED_)
#define AFX_KEY_H__A0AE6BA0_42EF_11D5_8DCF_B30311848839__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include <string>
#include "AbException.h"
#include "cmd.h"
class CCmdCompileException : public CAbException
{
public:
virtual ~CCmdCompileException() {};
};
using namespace std;
class CMachineDataInput;
class CMachineDataOutput;
//typedef string TCmdSeq;
//typedef char TCmd;
class CCmdDescToken
{
cmd::TCmd m_cmd;
string m_str;
int m_iPara;
public:
CCmdDescToken(cmd::TCmd c,string s,int i):
m_cmd(c),m_str(s),m_iPara(i) {};
virtual ~CCmdDescToken() {}
cmd::TCmd Cmd() const { return m_cmd; }
string Desc() const { return m_str; }
int NumOfPara() const { return m_iPara; }
};
class CCmdSeq
{
string m_str;
public:
CCmdSeq() : m_str() {};
CCmdSeq(const CCmdSeq &c) : m_str(c.m_str) {};
CCmdSeq(char c,char c1) : m_str() { m_str+=c;m_str+=c1; };
CCmdSeq(const char *sz) : m_str(sz) {}
virtual ~CCmdSeq() {};
cmd::TCmd Get(int i) const { return static_cast<const cmd::TCmd>(m_str[i]); }
// TCmd operator [] (int i) const { return Get(i); }
void Clear() { m_str=""; }
void Set(const string &c) {m_str=c; }
const char *Getc_str() const { return m_str.c_str(); }
int GetSize() const { return m_str.length(); }
const char *GetDispText(cmd::TCmd,int&) const;
void Compile(string) throw(CCmdCompileException);
void AddFloat(const float);
void AddChar(const char c) { m_str+=c; }
void AddCmd(const cmd::TCmd c) { m_str+=c; }
CCmdSeq &operator <<(const float f) { AddFloat(f); return *this; }
CCmdSeq &operator <<(const cmd::TCmd c) { AddCmd(c); return *this; }
CCmdSeq &operator <<(const char c) { AddChar(c); return *this; }
// CCmdSeq &operator +(float f) {
// friend operator = {const string &c) {m_str=c; }
};
class CAbKey
{
CCmdSeq m_CmdSeq;
public:
CAbKey() : m_CmdSeq() {};
CAbKey(CCmdSeq s) : m_CmdSeq(s) {};
CAbKey(const CAbKey &c) : m_CmdSeq(c.m_CmdSeq) {}
virtual ~CAbKey() {};
const CCmdSeq &GetCmd() const { return m_CmdSeq;}
const cmd::TCmd GetFirstCmd() const { return m_CmdSeq.Get(0); }
void Compile(string s) throw (CCmdCompileException) { m_CmdSeq.Compile(s); }
void SetCmd(CCmdSeq s) { m_CmdSeq=s;}
virtual void Init(CMachineDataInput * const pi,unsigned);
virtual void Save(CMachineDataOutput * const po);
virtual int Key() const =0;
virtual int GetClassId() const { return 0; }
virtual const char *GetDispKey() const =0;
};
class CKey : public CAbKey
{
// char m_cKey[2];
long m_uVirtKey;
string m_str;
public:
CKey() : CAbKey(),m_uVirtKey(0) {};
virtual ~CKey() {}
// CKey(char k,CCmdSeq s) : CAbKey(s),m_uVirtKey(0) {m_uVirtKey=GetVirtKey(k);m_cKey[0]=k;m_cKey[1]=0;/*m_uVirtKey=GetVirtKey(k);*/ }
CKey(char k,CCmdSeq s);
// CKey(const CKey &c) : CAbKey(c),m_uVirtKey(c.m_uVirtKey) {m_cKey[0]=c.m_cKey[0];m_cKey[1]=c.m_cKey[1]; }
CKey(const CKey &c) : CAbKey(c),m_uVirtKey(c.m_uVirtKey),m_str(c.m_str) {}
virtual int Key() const { return m_uVirtKey; };
virtual void Init(CMachineDataInput * const pi,unsigned);
virtual void Save(CMachineDataOutput * const po);
virtual int GetClassId() const { return 1; }
virtual const char *GetDispKey() const { return m_str.c_str(); }
virtual unsigned GetVirtKey() const { return m_uVirtKey; }
void SetVirtKey(int iKey,long lKeyData);
protected:
virtual unsigned GetVirtKey(char) const;
long RemapVirtKey(long)const;
};
#endif // !defined(AFX_KEY_H__A0AE6BA0_42EF_11D5_8DCF_B30311848839__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -