사용자 지정 알림 메시지를 처리합니다.

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

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

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

Toolbar 컨트롤에서 마우스 단추를 놓을 때 마우스 커서의 위치를 결정 합니다.커서가 도구 모음 밖에 있으면 단추가 삭제 됩니다.다른 도구 모음 단추에 커서가 있는 경우 도구 모음에 전송의 TBN_QUERYINSERT 알림 메시지를 부모 창 단추 지정 된 단추 왼쪽에 삽입 될 수 있습니다 경우 결정 합니다.부모 창이 반환 하는 경우 단추 삽입 됩니다 TRUE. 그렇지 않으면이 아닙니다.도구 모음을 보냅니다를 TBN_TOOLBARCHANGE 알림 메시지를 끌기 작업의 끝을 신호 합니다.

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

사용자가 도구 모음을 사용 하 여 사용자 지정 하면 toolbar 컨트롤 알림 메시지를 보냅니다에서 도구 모음 사용자 지정 대화 상자.도구 모음을 보냅니다를 TBN_BEGINADJUST 알림 메시지가 후 도구 모음을 두 번 클릭할 되기 전에 대화 상자가 만들어집니다.다음으로 보내는 일련의 도구 모음을 시작 TBN_QUERYINSERT 알림 메시지 도구 모음 단추를 삽입할 수 있는지 여부를 결정 합니다.때 부모 창이 반환 TRUE, 도구 모음의 중지 보내는 TBN_QUERYINSERT 알림 메시지입니다.부모 창이 반환 되지 않는 경우 TRUE 모든 단추를 도구 모음 대화 상자를 소멸 시킵니다.

그런 다음 모든 단추를 도구 모음에서 하나 보내 삭제 될 수 있습니다 경우 toolbar 컨트롤을 결정 TBN_QUERYDELETE 도구 모음에 각 단추에 대 한 알림 메시지입니다.부모 창이 반환 TRUE 나타내는 단추를 삭제할 수 있는. 그렇지 않으면 반환 FALSE.도구 모음 대화 상자로 모든 도구 모음 단추를 추가 하지만 삭제할 수 없는 흐리게 표시 합니다.

도구 모음 컨트롤 단추 도구 모음 사용자 지정 대화 상자에서에 대 한 정보를 때마다 보냅니다의 TBN_GETBUTTONINFO 알림 메시지를 인덱스 단추 필요한 정보 및 주소를 지정 하는 TBNOTIFY 구조.부모 창 구조와 관련 된 정보를 입력 해야 합니다.

도구 모음 사용자 지정 대화 상자의 도움말 단추 및 원래 대로 단추가 포함 되어 있습니다.사용자가 [도움말] 단추를 선택 하면 toolbar 컨트롤을 보냅니다를 TBN_CUSTHELP 알림 메시지입니다.부모 창에 도움말 정보를 표시 하 여 응답 해야 합니다.전송 대화 상자는 TBN_RESET [재설정] 단추를 선택할 때 알림 메시지입니다.이 메시지 도구 모음에 대 한 대화 상자를 다시 초기화 되도록 신호를 보냅니다.

메시지가 모든 WM_NOTIFY 서 메시지를 처리할 수 있습니다 소유자 창에서 소유자 창의 메시지 맵에 다음 형식의 메시지 맵 엔트리를 추가 하 여:

ON_NOTIFY( wNotifyCode, idControl, memberFxn )

  • wNotifyCode
    알림 메시지 식별자 코드 같은 TBN_BEGINADJUST.

  • idControl
    알림 메시지를 보내는 컨트롤의 식별자입니다.

  • memberFxn
    이 알림 메시지를 받을 때 호출 되는 멤버 함수입니다.

멤버 함수는 다음 프로토타입은 사용 하 여 선언 됩니다.

afx_msg void memberFxn( NMHDR * pNotifyStruct, LRESULT * result );

알림 메시지 처리기는 값을 반환 하면 해당 저장 해야 LRESULT 가 가리키는 결과.

각 메시지에 대 한 pNotifyStruct 를 가리키는 있는 NMHDR 구조 또는 TBNOTIFY 구조.이러한 구조는 다음과 같습니다.

NMHDR 구조에서는 다음과 같은 멤버를 포함 합니다.

typedef struct tagNMHDR {

HWND hwndFrom; // handle of control sending message

UINT idFrom;// identifier of control sending message

UINT code; // notification code; see below

} NMHDR;

  • hwndFrom
    알림 메시지를 보내는 컨트롤의 창 핸들입니다.이 핸들을 변환 하는 CWnd 포인터를 사용 CWnd::FromHandle.

  • idFrom
    알림 메시지를 보내는 컨트롤의 식별자입니다.

  • 코드
    알림 코드입니다.이 멤버는 컨트롤 형식에 따라 같은 사용할 수 있는 값 TBN_BEGINADJUST 또는 TTN_NEEDTEXT, 또는 아래 나열 된 일반적인 알림 값 중 하나일 수 있습니다.

    • NM_CLICK 사용자 컨트롤 내에서 마우스 왼쪽된 단추를 클릭 합니다.

    • NM_DBLCLK 사용자 컨트롤 내에서 마우스 왼쪽된 단추 두 번 클릭 합니다.

    • NM_KILLFOCUS 컨트롤에 입력된 포커스가 손실 되었습니다.

    • NM_OUTOFMEMORY 사용할 수 있는 메모리가 부족 하기 때문에 컨트롤은 작업을 완료할 수 없습니다.

    • NM_RCLICK 사용자 컨트롤 내에서 마우스 오른쪽 단추를 클릭 합니다.

    • NM_RDBLCLK 사용자 컨트롤 내에서 마우스 오른쪽 단추 두 번 클릭 합니다.

    • NM_RETURN 컨트롤에 입력 포커스가 및 사용자가 ENTER 키를 눌 렀으.

    • NM_SETFOCUS 컨트롤이 입력된 포커스를 받았습니다.

TBNOTIFY 구조에서는 다음과 같은 멤버를 포함 합니다.

typedef struct {

NMHDR hdr; // information common to all WM_NOTIFY messages

int iItem; // index of button associated with notification

TBBUTTON tbButton; // info about button associated withnotification

int cchText; // count of characters in button text

LPSTR lpszText;// address of button text

} TBNOTIFY, FAR* LPTBNOTIFY;

설명

  • hdr
    모두가 공통의 정보 WM_NOTIFY 메시지입니다.

  • iItem
    알림 메시지와 연결 된 단추의 인덱스입니다.

  • tbButton
    TBBUTTON알림 메시지와 관련 된 도구 모음 단추에 대 한 정보를 포함 하는 구조체입니다.

  • cchText
    단추 텍스트의 문자 수입니다.

  • lpszText
    단추 텍스트에 대 한 포인터입니다.

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

  • TBN_BEGINADJUST 사용자 컨트롤 도구 모음 사용자 지정을 시작할 때 전송 됩니다.포인터가 가리키는 있는 NMHDR 는 알림에 대 한 정보를 포함 하는 구조.처리기는 특정 값을 반환할 필요가 없습니다.

  • TBN_BEGINDRAG 사용자가 toolbar 컨트롤에 단추를 끌기 시작할 때 보내집니다.포인터가 가리키는 있는 TBNOTIFY 구조입니다.IItem 끌고 단추의 인덱스 멤버를 포함 합니다.처리기는 특정 값을 반환할 필요가 없습니다.

  • TBN_CUSTHELP 도구 모음 사용자 지정 대화 상자에서 [도움말] 단추를 선택할 때 보냅니다.반환 값이 없습니다.포인터가 가리키는 있는 NMHDR 알림 메시지에 대 한 정보를 포함 하는 구조입니다.처리기는 특정 값을 반환할 필요가 없습니다.

  • TBN_ENDADJUST 사용자가 도구 모음 컨트롤 사용자 지정 중지 될 때 전송 됩니다.포인터가 가리키는 있는 NMHDR 알림 메시지에 대 한 정보를 포함 하는 구조입니다.처리기는 특정 값을 반환할 필요가 없습니다.

  • TBN_ENDDRAG 사용자가 toolbar 컨트롤에 단추를 끌어 중지 될 때 전송 됩니다.포인터가 가리키는 있는 TBNOTIFY 구조입니다.IItem 끌고 단추의 인덱스 멤버를 포함 합니다.처리기는 특정 값을 반환할 필요가 없습니다.

  • TBN_GETBUTTONINFO toolbar 컨트롤은 사용자 지정 된 경우 전송 합니다.도구 모음이 알림 메시지를 사용 하 여 도구 모음 사용자 지정 대화 상자에 필요한 정보를 검색 합니다.포인터가 가리키는 있는 TBNOTIFY 구조입니다.IItem 단추의 인덱스 멤버를 지정 합니다.PszTextcchText 현재 단추 텍스트에서 한 문자의 주소와 길이 멤버를 지정 합니다.응용 프로그램 구조 단추에 대 한 정보를 채워야 합니다.반환 TRUE 단추 정보 구조에 복사한 경우 또는 FALSE 그렇지.

  • TBN_QUERYDELETE 보내지만 toolbar 컨트롤에서 단추를 삭제할 수 있는지 확인 하려면 도구 모음을 사용자 지정 됩니다.포인터가 가리키는 있는 TBNOTIFY 구조입니다.IItem 구성원 삭제 단추의 인덱스를 포함 합니다.반환 TRUE 단추를 삭제할 수 있도록 또는 FALSE 단추 삭제 되지 않도록 합니다.

  • TBN_QUERYINSERT 사용자 지정 된 단추 왼쪽에 단추를 삽입할 수 있는지 확인 하려면 도구 모음 컨트롤 지정 하는 동안 전송 합니다.포인터가 가리키는 있는 TBNOTIFY 구조입니다.IItem 멤버 삽입 단추의 인덱스를 포함 합니다.반환 TRUE 단추 앞에 지정 된 단추를 삽입할 수 있도록 또는 FALSE 에서 삽입 단추를 방지 하기 위해.

  • TBN_RESET 사용자가 도구 모음 사용자 지정 대화 상자 내용의 때 보내집니다.포인터가 가리키는 있는 NMHDR 알림 메시지에 대 한 정보를 포함 하는 구조입니다.처리기는 특정 값을 반환할 필요가 없습니다.

  • TBN_TOOLBARCHANGE 사용자 정의 도구 모음 컨트롤 후 전송 합니다.포인터가 가리키는 있는 NMHDR 알림 메시지에 대 한 정보를 포함 하는 구조입니다.처리기는 특정 값을 반환할 필요가 없습니다.

참고 항목

참조

CToolBarCtrl 사용

개념

컨트롤 (MFC)