📄 keywizzard.h
字号:
/*****************************************************************************
【文件名】
KeyWizzard.h
【功能模块和目的】
提供给用户利用字符选择股票代码或者操作指令的交互对象
【主要函数及其功能】
DWORD AddKeyTableReg(TaKeyRegisterTable *pKey); //选项表注册函数
DWORD DelKeyTableReg (TaKeyRegisterTable *pKey); //删除选项表函数
DWORD ActiveKeyTableReg (TaKeyRegisterTable *pKey); //激活一个选项表函数
DWORD DeactiveKeyTableReg (TaKeyRegisterTable *pKey); //使一个选项表失去活动状态函数
DWORD CompateKeyStr (char *t,char *s); //匹配一个字符串
DWORD ConvertChineseStr (char *szIn,char * szOut,int alter); //转换一个汉字字符串到拼音字母字符串
DWORD Init(char* FilePath) //初始化多音字列表
void SetPos(int xPos,int yPos); //设置窗口的位置
【主要算法】
将筛选结果放入结构变量中,尽可能地在已得结果中进行查找.
【接口说明】
(必需)
【开发者及日期】
方丽 2003.6.24
【版本】
1.0
*****************************************************************************/
#if !defined(AFX_KEYWIZZARD_H__A7D2AD49_1BF2_4FA7_95AA_EE3BE469C4AC__INCLUDED_)
#define AFX_KEYWIZZARD_H__A7D2AD49_1BF2_4FA7_95AA_EE3BE469C4AC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// KeyWizzard.h : header file
//
#define MAX_TABLE_NUM 100
#define MAXTRIO 100
#define MAX_COMPATIBLE_NUM 3000//20040430 吴昊由2000改为3000,不是因为错误,仅为了扩容
#include "Resource.h"
/////////////////////////////////////////////////////////////////////////////
// CKeyWizzard dialog
struct Result{
int index;
int grade;
};
struct trio{
unsigned int quwei; //字区位码
char ch; //字拼音之首字母
}; //多音字列表
struct TaKeyTable{
char Code[10]; //代码
char Name[20]; //名称
DWORD wParam; //参数1
DWORD lParam; //参数2
};
struct TaKeyRegisterTable{
int Status; //状态,0不处理,1要处理
HWND hWnd; //接受消息的窗口句柄
int Count; //有效记录个数
DWORD MsgId; //消息号
TaKeyTable *pDate; //快捷键列表
int MemCount; //pDate中分配单元个数
BOOL AddKeyTable(char *code, char *name, DWORD wParam, DWORD lParam)
{
if( pDate==NULL )
{
if( MemCount<=0 ) MemCount = 10;
pDate = new TaKeyTable[MemCount];
Count = 0;
}
if( pDate!=NULL && Count<MemCount )
{
strcpy(pDate[Count].Code, code);
strcpy(pDate[Count].Name, name);
pDate[Count].wParam = wParam;
pDate[Count].lParam = lParam;
Count++;
return TRUE;
}
return FALSE;
};
};
class CKeyWizzard : public CDialog
{
// Construction
public:
DWORD AddKeyTableReg(TaKeyRegisterTable *pKey); //选项表注册函数
DWORD DelKeyTableReg (TaKeyRegisterTable *pKey); //删除选项表函数
DWORD ActiveKeyTableReg (TaKeyRegisterTable *pKey); //激活一个选项表函数
DWORD DeactiveKeyTableReg (TaKeyRegisterTable *pKey); //使一个选项表失去活动状态函数
DWORD InputFirstChar(char chIn); //向键盘缓冲区填写第一个字符
DWORD Init(char* FilePath); //初始化多音字列表
//void SetPos(int xPos,int yPos); //设置窗口的位置
void SetPosLT(int left,int top, BOOL bEditOnTop=FALSE);
void SetPosRB(int right,int bottom, BOOL bEditOnTop=FALSE);
void SetEditBoxSize(int cx, int cy);
void SetEditBoxSize(SIZE size);
//char m_szKeyBuffer[20]; //用户输入字符串的缓存区
TaKeyRegisterTable* m_KeyTable[MAX_TABLE_NUM]; //用来保存选项表结构的数组
DWORD m_nTableCount; //纪录目前m_KeyTable数组中有几个纪录
CKeyWizzard(CWnd* pParent = NULL); // standard constructor
~CKeyWizzard();
void SetType(int nType){m_nType = nType;};
// Dialog Data
//{{AFX_DATA(CKeyWizzard)
enum { IDD = IDD_KEYWIZZARD_DLG };
CListBox m_List;
CEdit m_Edit;
CString m_EditStr;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CKeyWizzard)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
//virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
// Generated message map functions
//{{AFX_MSG(CKeyWizzard)
virtual BOOL OnInitDialog();
afx_msg void OnChangeEdit();
afx_msg void OnDblclkList();
virtual void OnOK();
afx_msg void OnCancelMode();
afx_msg void OnClose();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void Compare(char *strEdit);
void SetList();
DWORD CompareKeyStr (char *s,char *t); //匹配一个字符串
DWORD ConvertChineseStr(char* szIn,char* szOut,int alter); //转换一个汉字字符串到拼音字母字符串
char m_FirstChar; //放入缓冲区的第一个字符
//Result m_pResult[100]; //筛选结果
Result *m_pResult;
int m_nResultCount; //筛选结果数量
trio tri[MAXTRIO]; //多音字列表
int m_nTrilen; //多音字列表长度
int m_xPos; //窗口左上角的X坐标
int m_yPos; //窗口左上角的Y坐标
BYTE m_cPosState; //设置的位置是哪个点,0为LT,1为LB,2为RT,3为RB
BOOL m_EditOnTop; //Edit是否要放到窗口上方
SIZE m_sEditBox; //EditBox要求大小
//吴昊添加区分拼音选股不同需求的变量
int m_nType; //0-输入为空的时候自动关闭对话框,1-输入为空的时候不关闭
//20040421为了针对m_nType为1的情况专门加一个显示函数
void NothingCompareButShow();//这个名字有意思吧
//刘凯添加区分汉字和拼音、代码输入的变量 2004/06/11 _L_K
int m_nInputType; //1-汉字输入,0-拼音、代码输入,默认0
};
extern CKeyWizzard *g_pKeyWizzard;
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_KEYWIZZARD_H__A7D2AD49_1BF2_4FA7_95AA_EE3BE469C4AC__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -