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

📄 keywizzard.h

📁 程序经过了调试,直接运行就可以显示结果,为股市应用程序,VC++的
💻 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 + -