CToolBarCtrl: 사용자 지정 알림 처리

Windows 도구 모음 공용 컨트롤은 기본 제공 사용자 지정 기능, 사용자가 삽입할 수 있는 시스템 정의 사용자 지정 대화 상자를 포함 하 여 삭제 또는 도구 모음 단추를 다시 정렬 합니다. 응용 프로그램 사용자 지정 기능을 사용할 수 있습니다 및 메시지 사용자 사용자 도구 모음을 지정할 수 있는 정도 제어 여부를 결정 합니다.

사용할 수 있습니다 이러한 사용자 지정 기능은 사용자에 게 CCS_ADJUSTABLE 스타일 도구 모음을 제공 함으로써. 사용자 지정 기능 단추를 새 위치로 드래그 하거나 도구 모음에서 끌어 단추를 제거 하려면 사용자를 허용 합니다. 또한, 사용자 사용자가 추가, 삭제 및 도구 모음 단추를 다시 정렬할 수 있는 도구 모음 사용자 지정 대화 상자를 표시 하려면 도구 모음을 두 번 클릭 수 있습니다. 응용 프로그램 사용자 지정 멤버 함수를 사용 하 여 대화 상자를 표시할 수 있습니다.

도구 모음 컨트롤은 사용자 지정 프로세스의 각 단계에서 부모 창에 알림 메시지를 보냅니다. 사용자가 SHIFT 키를 보유 하 고 단추를 끌어 시작 하는 경우 도구 모음 끌기 작업을 자동으로 처리 합니다. 도구 모음 단추를 삭제할 수 있습니다 여부를 결정 하려면 부모 창에 TBN_QUERYDELETE 알림 메시지를 보냅니다. 끌기 작업이 부모 창 FALSE를 반환 하는 경우 종료 됩니다. 그렇지 않으면, 도구 모음 마우스 입력 캡처 및 사용자가 마우스 단추를 놓을 때까지 기다립니다.

마우스 단추를 놓을, toolbar 컨트롤 마우스 커서의 위치를 결정 합니다. 커서가 도구 모음 밖으로 단추를 삭제 됩니다. 커서가 다른 도구 모음 단추, 도구 모음 단추 주어진된 버튼의 왼쪽에 삽입 될 수 있습니다 확인 하려면 부모 창에 TBN_QUERYINSERT 알림 메시지를 보냅니다. 부모 창이 TRUE; 반환 하는 경우 단추 삽입 그렇지 않으면, 그것 은입니다. 도구 모음 끌기 작업의 끝을 신호를 TBN_TOOLBARCHANGE 알림 메시지를 보냅니다.

사용자가 SHIFT 키를 누른 채 않고 끌기 작업을 시작, 도구 모음 컨트롤 소유자 창으로 TBN_BEGINDRAG 알림 메시지를 보냅니다. 고유한 단추 끌기 코드를 구현 하는 응용 프로그램을 끌기 작업을 시작 신호로이 메시지를 사용할 수 있습니다. 도구 모음 끌기 작업의 끝을 신호를 TBN_ENDDRAG 알림 메시지를 보냅니다.

도구 모음 컨트롤 사용자는 도구 모음 사용자 지정 대화 상자를 사용 하 여 도구 모음을 사용자 지정 하는 경우 알림 메시지를 보냅니다. 도구 모음 도구 모음을 두 번 클릭할 하지만 전에 대화 상자가 생성 후 TBN_BEGINADJUST 알림 메시지를 보냅니다. 그런 다음, 도구 모음 일련의 도구 모음 단추를 삽입할 수 있는지 여부를 확인 하려면 TBN_QUERYINSERT 알림 메시지를 보내기 시작 합니다. 부모 창이 TRUE를 반환 하는 경우 도구 모음 TBN_QUERYINSERT 알림 메시지를 보내는 것을 중지 합니다. 도구 모음 대화 상자를 파괴 부모 창의 모든 단추에 대 한 TRUE 반환 하지 않으면,。

그런 다음, 도구 모음 컨트롤 도구 모음에서 도구 모음에 각 단추에 대 한 TBN_QUERYDELETE 알림 메시지를 전송 하 여 어떤 단추 경우 삭제 될 수 있습니다 결정 합니다. 부모 창이 반환 TRUE 는 단추 삭제 될 수 있습니다; 그렇지 않으면, 그것은 FALSE를 반환합니다. 도구 모음 대화 상자에 모든 도구 모음 단추를 추가 하지만 삭제할 수 있습니다 그 회색。

Toolbar 컨트롤에 도구 모음 사용자 지정 대화 상자에서 단추에 대 한 정보가 필요 하는 때마다 단추 정보를 필요로 그것의 인덱스 및 TBNOTIFY 구조체의 주소를 지정 하면 TBN_GETBUTTONINFO 알림 메시지를 보냅니다. 부모 창 구조 관련 정보로 채워야 합니다.

도구 모음 사용자 지정 대화 상자에 도움말 단추와 리셋 단추 포함 되어 있습니다. 도움말 단추를 선택 하면 도구 모음 컨트롤 TBN_CUSTHELP 알림 메시지를 보냅니다. 부모 창 도움말 정보를 표시 하 여 응답 해야 합니다. 리셋 버튼을 선택 하면 대화 상자는 TBN_RESET 알림 메시지를 보냅니다. 도구 모음 대화 상자를 초기화 하는이 메시지 신호。

이러한 메시지는 모든 WM_NOTIFY 메시지 그리고 소유자 창에서 소유자 창의 메시지 맵에 다음 형식의 메시지 맵 항목을 추가 하 여 처리할 수 있습니다.:

ON_NOTIFY ( wNotifyCode, idControl, memberFxn )

wNotifyCode

TBN_BEGINADJUST 와 같은 알림 메시지 식별자 코드。

idControl

알림을 보내는 컨트롤의 식별자。

memberFxn

이 알림을 받으면 호출 될 멤버 함수。

멤버 함수 다음 프로토 타입으로 선언할 것 이라고:

afx_msg void memberFxn( NMHDR * pNotifyStruct, LRESULT * 결과 );

알림 메시지 처리기는 값을 반환 하는 경우 그것은 결과 의해 가리키는 LRESULT 에 넣어 해야。

각 메시지에 대 한 pNotifyStruct NMHDR 구조 또는 TBNOTIFY 구조체를 가리킵니다. 이러한 구조는 아래에서 설명:

NMHDR 구조는 다음과 같은 구성원이 포함 되어 있습니다.:

typedef struct tagNMHDR {
HWND hwndFrom; nbsp; / / 컨트롤의 핸들 메시지 보내기
UINT idFrom; / / 메시지를 보내는 컨트롤의 식별자
UINT 코드;? / / 알림 코드; 아래 참조
} NMHDR(&N)

hwndFrom

알림을 보내는 컨트롤의 창 핸들입니다. CWnd::FromHandle 를 사용 하 여이 핸들 CWnd 포인터를 변환 하려면。

idFrom

알림을 보내는 컨트롤의 식별자。

코드

알림 코드입니다. 이 멤버 TTN_NEEDTEXT, TBN_BEGINADJUST 등의 컨트롤 형식에 특정 값이 될 수 있습니다. 또는 그것은 아래 나열 된 일반적인 알림 값 중 하나가 될 수 있습니다.:

다음과 같은 멤버를 포함 하는 TBNOTIFY 구조:

typedef struct {
NMHDR hdr; / / 모든 WM_NOTIFY 메시지에 일반적인 정보
int iItem; / / 알림 연관 된 단추의 인덱스
TBBUTTON tbButton; / / 연관 된 알림 단추에 대 한 정보
int cchText; nbsp;? / / 단추 텍스트에 있는 문자의 개수
LPSTR lpszText; / / 주소 단추 텍스트
}까지 TBNOTIFY * LPTBNOTIFY(&N)

hdr

모든 WM_NOTIFY 메시지에 일반적인 정보。

iItem

연관 된 알림 단추의 인덱스。

tbButton

통지와 관련 된 도구 모음 단추에 대 한 정보가 들어 있는 TBBUTTON 구조체。

cchText

단추 텍스트의 문자 수。

lpszText

단추 텍스트에 대 한 포인터。

도구 모음 보내는 알림 다음과 같습니다.:

Index