accel.h

来自「实时监控」· C头文件 代码 · 共 57 行

H
57
字号
/*
 *	Accelerator table manager
 *	by Mr.Nodman, 2004-01-07
 */
#ifndef _ACCEL_H
#define _ACCEL_H

class accel
{
	HACCEL h;
public:
	accel(): h(NULL)
	{
	}
	void set_accel_id(UINT idaccel)
	{
		h = LoadAccelerators(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(idaccel));
	}
	~accel()
	{
		if(h)
		{
			DestroyAcceleratorTable(h);
			h = NULL;
		}
	}
	BOOL check(HWND x, MSG* msg)
	{
		return TranslateAccelerator(x, h, msg);
	}
};

template <class T>
class accel_inside: public T
{
	accel ac;
protected:
	typedef T baseclass;
public:
	accel_inside()
	{
	}
	accel_inside(UINT idd, CWnd* parent): T(idd, parent) {}
	
	void set_accel_id(UINT idaccel)
	{
		ac.set_accel_id(idaccel);
	}
	virtual BOOL PreTranslateMessage(MSG* msg)
	{
		if( ac.check(m_hWnd, msg) )
			return TRUE;
		return T::PreTranslateMessage(msg);
	}
};

#endif

⌨️ 快捷键说明

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