共用方式為


MFC ActiveX 控制項: ActiveX 控制項來加入內建事件

內建事件與不同的自訂事件類別自動引發的 COleControlCOleControl包含引發事件所產生的一般動作的預先定義的成員函式。 實作的一些常見動作COleControl納入單一層,並按兩下-clicks 控制項、 鍵盤事件,以及變更滑鼠按鈕的狀態。 內建事件的事件對應項目會永遠加上 EVENT_STOCK 前置詞。

內建支援的事件加入事件精靈

COleControl類別會提供十個內建事件,如下表所示。 您可以指定您想在您使用控制項的事件加入事件精靈

內建事件

事件

引發函式

註解

按一下

void FireClick)

發生於控制項捕捉滑鼠,任何 BUTTONUP 收到 (左、 置中] 或向右) 的訊息,並在控制項上方放開按鈕。 內建 MouseDown 和 MouseUp 事件就會發生此事件之前。

事件對應項目: EVENT_STOCK_CLICK)

DblClick

void FireDblClick)

客戶 Click 類似但變更 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)

按鍵動作

會造成 FireKeyPress (簡稱 1pnChar)

客戶變更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

void FireReadyStateChange)

發生於控制項轉換至下一個就緒狀態,因為接收的資料量。

事件對應項目: EVENT_STOCK_READYSTATECHANGE)

新增內建事件,使用加入事件精靈

新增內建事件需要較少的工作,不如加入自訂事件,因為由基底類別中,將會自動處理實際事件的引發COleControl。 下列程序加入至使用所開發的新加入的內建事件 MFC ActiveX 控制項精靈。 當按下按鍵,而控制項則必須使用中時,就會引發事件,稱為按鍵動作。 此程序也可用來加入其他內建事件。 以取代所選取的內建事件名稱的按鍵動作。

若要新增使用加入事件精靈的按鍵動作內建事件

  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);

這一行將按鍵動作事件與它的標準的分派 ID,並允許容器預測 KeyPress 事件。

請參閱

參考

COleControl 類別

概念

MFC ActiveX 控制項

MFC ActiveX 控制項: 方法