MFC ActiveX 控件:添加常用事件到 ActiveX 控件

常用事件与自定义操作的不同之处在于由类 COleControl自动触发。 COleControl 包含激发事件由常见操作的预定义的成员函数。 COleControl 实现的一些常见操作包括在控件、键盘事件和更改的单并双击在鼠标按钮的状态发生。 事件常用事件的映射项始终在 EVENT_STOCK 前缀开头。

添加事件向导支持的常用事件

COleControl 类提供了十个常用事件,下表中列出。 可以指定使用 添加事件向导,您的控件所需的事件。

常用事件

Event

激发功能

注释

单击

无效 FireClick ()

激发,当控件捕获鼠标时,所有 BUTTONUP (出,中间或正确接收消息),因此,按钮释放该控件。 股票 MouseDown 和 MouseUp 事件此事件之前发生。

事件映射项: EVENT_STOCK_CLICK( )

DblClick

无效 FireDblClick ()

类似于单击,但激发 BUTTONDBLCLK 消息时接收。

事件映射项: EVENT_STOCK_DBLCLICK( )

错误

void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 )

激发,当错误在您的 Activex 控件内启动在方法的范围时调用或属性访问。

事件映射项: EVENT_STOCK_ERROREVENT( )

KeyDown

void FireKeyDown( short nChar, short nShiftState )

激发,当 WM_SYSKEYDOWNWM_KEYDOWN 接收消息。

事件映射项: EVENT_STOCK_KEYDOWN( )

KeyPress

void FireKeyPress( short* pnChar )

激发,当 WM_CHAR 接收消息。

事件映射项: EVENT_STOCK_KEYPRESS( )

KeyUp

void FireKeyUp( short nChar, short nShiftState )

激发,当 WM_SYSKEYUPWM_KEYUP 接收消息。

事件映射项: EVENT_STOCK_KEYUP( )

MouseDown

void FireMouseDown( short nButton, short nShiftState, float x, float y )

激发,如果任何 BUTTONDOWN (,中间或正确接收。) ,此事件将激发之前,该捕获鼠标。

事件映射项: EVENT_STOCK_MOUSEDOWN( )

MouseMove

void FireMouseMove( short nButton, short nShiftState, float x, float y )

激发,当 WM_MOUSEMOVE 接收消息。

事件映射项: EVENT_STOCK_MOUSEMOVE( )

MouseUp

void FireMouseUp( short nButton, short nShiftState, float x, float y )

激发,如果任何 BUTTONUP (,中间或正确接收。) 鼠标捕获,该事件会激发之前,释放。

事件映射项: EVENT_STOCK_MOUSEUP( )

ReadyStateChange

无效 FireReadyStateChange ()

激发,在使用下就绪状态的控件转换由于数据量接收。

事件映射项: EVENT_STOCK_READYSTATECHANGE( )

添加使用添加事件向导的一个常用事件

添加常用操作添加自定义操作,因为实际事件的激发由基类自动处理, COleControl需少量工作。 下面的过程添加一个常用事件为使用 MFC Activex 控件向导,所开发的控件。 事件,调用 KeyPress,个; 当按下了键时和控件处于活动状态。 此过程还可以使用添加其他常用事件。 使用按键替换选定的常用事件名称。

使用添加事件向导,若要添加 KeyPress 请常用事件

  1. 加载您的控件的项目中。

  2. 在 " 类视图 " 中,右击您的 Activex 控件类打开快捷菜单。

  3. 从快捷菜单上,单击 添加 然后单击 添加事件

    这将打开事件添加向导。

  4. 在的 事件名 下拉列表中,选择 KeyPress

  5. 单击**“完成”**。

添加事件常用事件的向导更改

由于常用事件由控件的基类处理,添加事件向导 " 在不更改您的类声明。 它将该事件添加到控件的事件映射并在其 .IDL 文件中的项。 以下行添加到控件的事件映射,位于控件类实现 (.CPP) 文件:

EVENT_STOCK_KEYPRESS()

添加此代码激发 KeyPress 事件,当 WM_CHAR 接收消息时,控件处于活动状态。 KeyPress 事件可通过调用其激发功能在其他时间时 (例如, FireKeyPress) 从控件代码内。

添加事件向导将以下代码行添加到控件的 .IDL 文件:

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

此关联连线 KeyPress 事件与其标准调度 ID 并允许容器预期 KeyPress 事件。

请参见

参考

COleControl 类

概念

MFC ActiveX 控件

MFC ActiveX 控件:方法