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 스톡 이벤트를 추가 하려면
컨트롤의 프로젝트를 로드 합니다.
클래스 뷰 바로 가기 메뉴를 열려면 ActiveX 컨트롤 클래스를 마우스 오른쪽 단추로 클릭 합니다.
바로 가기 메뉴에서 클릭 추가 누른 다음 추가 이벤트.
이 이벤트 추가 마법사가 열립니다.
에 이벤트 이름 드롭 다운 목록에서 선택 KeyPress.
마침을 클릭합니다.
이벤트 추가 마법사에서 변경에 대 한 스톡 이벤트
스톡 이벤트는 컨트롤의 기본 클래스에 의해 처리 됩니다 때문에 이벤트 추가 마법사 클래스 선언의 어떤 식으로든에서 변경 되지 않습니다.컨트롤의 이벤트 맵에 이벤트를 추가 하 고 항목의 수를.IDL 파일입니다.컨트롤의 이벤트 맵에, 컨트롤 클래스 구현 파일에 다음 줄이 추가 됩니다 (.Cpp).
EVENT_STOCK_KEYPRESS()
KeyPress 이벤트를 발생 시키는이 코드를 추가 하면는 WM_CHAR 메시지를 받은 및 컨트롤이 활성화 되어 있습니다.발생 함수를 호출 하 여 KeyPress 이벤트가 다른 시간에 발생할 수 있는 (예를 들어, FireKeyPress)에서 컨트롤 코드 내에서.
이벤트 추가 마법사는 컨트롤의 코드의 다음 줄을 추가합니다.IDL 파일:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
이 줄 KeyPress 이벤트 해당 표준 디스패치 ID와 연결 하며 컨테이너가 KeyPress 이벤트를 예상할 수 있습니다.