ITextHost::TxNotify 메서드(textserv.h)
텍스트 호스트에 다양한 이벤트를 알립니다.
구문
HRESULT TxNotify(
[in] DWORD iNotify,
[in] void *pv
);
매개 변수
[in] iNotify
형식: DWORD
호스트에 알리는 이벤트입니다. EN_ 알림 코드 중 하나입니다.
[in] pv
형식: void*
iNotify에 종속된 추가 데이터입니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK 반환합니다.
메서드가 실패하면 S_FALSE 반환합니다. COM 오류 코드에 대한 자세한 내용은 COM에서 오류 처리를 참조하세요.
설명
이벤트의 기본 범주에는 직접 및 지연된 두 가지 범주가 있습니다. 직접 이벤트는 일부 처리(예: EN_PROTECTED)가 필요하기 때문에 즉시 전송됩니다. 지연된 이벤트는 모든 처리가 발생한 후에 전송됩니다. 따라서 컨트롤은 안정적인 상태입니다. 지연된 알림의 예로는 EN_CHANGE, EN_ERRSPACE 및 EN_SELCHANGE 있습니다.
알림 이벤트는 서식 있는 편집 창의 부모 창으로 전송된 알림 코드와 동일합니다. 이벤트의 발생은 EM_SETEVENTMASK 메시지를 통해 설정된 마스크로 제어할 수 있습니다.
일반적으로 이 메서드를 처리하는 동안 텍스트 서비스 개체를 호출하는 것은 합법적입니다. 그러나 구현자는 과도한 재귀를 방지하기 위해 주의해야 합니다.
다음은 보낼 수 있는 알림 목록입니다.
알림 | 의미 |
---|---|
EN_CHANGE | 사용자가 컨트롤에서 텍스트를 변경했을 수 있는 작업을 수행할 때 시스템이 화면을 업데이트한 후에 전송됩니다. |
EN_DROPFILES | WM_DROPFILES 메시지 또는 IDropTarget::D ragEnter 알림이 수신될 때 전송됩니다. |
EN_ERRSPACE | 컨트롤이 지정된 요청을 충족하기에 충분한 메모리를 할당할 수 없는 경우 전송됩니다. |
EN_HSCROLL | 화면이 업데이트되기 전에 사용자가 컨트롤의 가로 스크롤 막대를 클릭할 때 전송됩니다. |
EN_KILLFOCUS | 컨트롤이 키보드 포커스를 잃을 때 전송됩니다. |
EN_LINK | 서식 있는 편집 컨트롤이 마우스 클릭 메시지와 같은 다양한 메시지를 수신할 때 마우스 포인터가 CFE_LINK 효과가 있는 텍스트 위에 있을 때 전송됩니다. |
EN_MAXTEXT | 현재 텍스트 삽입이 컨트롤의 최대 문자 수를 초과하면 전송됩니다. |
EN_OLEOPFAILED | OLE 개체에 대한 사용자 작업이 실패할 때 전송됩니다. |
EN_PROTECTED | 사용자가 보호된 텍스트 범위를 변경하는 작업을 수행할 때 전송됩니다. |
EN_REQUESTRESIZE | 서식 있는 편집 컨트롤의 내용이 컨트롤의 창 크기와 다를 때 전송됩니다. |
EN_SAVECLIPBOARD | 편집 컨트롤이 제거될 때 전송됩니다. 텍스트 호스트는 OleFlushClipboard 를 호출해야 하는지 여부를 나타내야 합니다. 플러시할 문자 및 개체 수를 나타내는 데이터는 ENSAVECLIPBOARD 데이터 구조로 전송됩니다. 마스크 값은 아무것도 없습니다. |
EN_SELCHANGE | 현재 선택 영역이 변경되면 전송됩니다. 선택 영역이 현재 끝난 데이터 형식의 새 선택 범위를 나타내는 SELCHANGE 데이터 구조도 전송됩니다. ENM_SELCHANGE 마스크를 통해 제어됩니다. |
EN_SETFOCUS | 편집 컨트롤이 키보드 포커스를 받을 때 전송됩니다. 추가 데이터가 전송되지 않습니다. 마스크가 없습니다. |
EN_STOPNOUNDO | 컨트롤이 실행 취소 상태를 유지하기에 충분한 메모리를 할당할 수 없는 작업이 발생할 때 전송됩니다. S_FALSE 반환되면 작업이 중지됩니다. 그렇지 않으면 작업이 계속됩니다. |
EN_UPDATE | 편집 컨트롤이 변경된 데이터 또는 텍스트의 다시 그리기를 요청하기 전에 전송됩니다. 추가 데이터가 전송되지 않습니다. 이 이벤트는 ENM_UPDATE 마스크를 통해 제어됩니다. 서식 있는 편집 2.0 이상:ENM_UPDATE 마스크는 무시되고 EN_UPDATE 알림 코드는 항상 전송됩니다. 그러나 Microsoft Rich Edit 3.0에서 Microsoft Rich Edit 1.0을 에뮬레이트하면 ENM_UPDATE 마스크가 이 알림을 제어합니다. |
EN_VSCROLL | 사용자가 편집 컨트롤의 세로 스크롤 막대를 클릭하거나 화면이 업데이트되기 전에 편집 컨트롤 위로 마우스 휠을 스크롤할 때 전송됩니다. 이는 ENM_SCROLL 마스크를 통해 제어됩니다. 추가 데이터가 전송되지 않습니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | textserv.h |
DLL | Msftedit.dll |
추가 정보
개념
참조