다음을 통해 공유


MFC 컨트롤을 ActiveX: 있는 ActiveX 컨트롤에 스톡 이벤트를 추가

자동으로 클래스에 의해 발생 되는 스톡 이벤트는 사용자 지정 이벤트를 다 COleControl.COleControl일반적인 작업에서 발생 하는 이벤트를 발생 하는 미리 정의 된 멤버 함수를 포함 합니다.에 의해 구현 되는 일반적인 동작 COleControl 단일-하 고 두 번 클릭 제어, 키보드 이벤트 및 변경의 마우스 단추 상태를 포함 합니다.스톡 이벤트 이벤트 맵 엔트리는 항상 앞의 EVENT_STOCK 접두사.

주식에서 지원 되는 이벤트의 이벤트 추가 마법사

COleControl 클래스는 다음 표에 나열 된 10 개의 스톡 이벤트를 제공 합니다.원하는 제어를 사용 하는 이벤트를 지정할 수 있는 이벤트 추가 마법사.

스톡 이벤트

Event

발생 함수

설명

클릭 대상

void FireClick)

컨트롤이 모든 마우스를 캡처할 때 발생 합니다. BUTTONUP (왼쪽, 가운데 또는 오른쪽) 메시지를 수신 하 고 컨트롤 위에 놓을.주식 MouseDown 및 MouseUp 이벤트를 하기 전에이 이벤트가 발생합니다.

이벤트 맵 엔트리: EVENT_STOCK_CLICK)

DblClick

void 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_SYSKEYDOWN 또는 WM_KEYDOWN 메시지를 받은.

이벤트 맵 엔트리: EVENT_STOCK_KEYDOWN)

키 누름

void FireKeyPress (short *pnChar)

발생 하는 경우는 WM_CHAR 메시지를 받은.

이벤트 맵 엔트리: EVENT_STOCK_KEYPRESS)

KeyUp

void FireKeyUp( short nChar, short nShiftState )

발생 하는 경우는 WM_SYSKEYUP 또는 WM_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.다음 절차를 사용 하 여 개발 된 컨트롤에는 스톡 이벤트를 추가 ActiveX 컨트롤 마법사 MFC.호출을 KeyPress 이벤트, 키를 누르면 컨트롤이 활성화 되 면 발생 합니다.다른 스톡 이벤트를 추가 하려면이 절차를 사용할 수도 있습니다.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 컨트롤: 메서드