다음을 통해 공유


TN024: MFC 정의 하는 메시지 및 리소스

[!참고]

온라인 설명서의을 처음 포함 되었습니다 때문 다음 기술 참고 업데이트 되지 않았습니다.따라서 일부 절차 및 항목 오래 되었거나 잘못 된 수 있습니다.최신 정보는 온라인 설명서 색인에서 관심 있는 주제에 대해 검색 하는 것이 좋습니다.

이 주석은 내부 Windows 메시지 및 MFC에서 사용 하는 리소스 형식에 설명 합니다.이 정보는 프레임 워크의 구현에 설명 하 고 응용 프로그램을 디버깅 하는 데 도움이 됩니다.이 모든 정보를 공식적으로 지원 되지 않더라도 adventurous을 하면이 정보의 일부 고급 구현에 사용할 수 있습니다.

이 참고 MFC private 구현 정보를 포함합니다. 모든 내용을 다음과 나중에 변경 될 수 있습니다.Windows 메시지를 개인 MFC만 한 응용 프로그램의 범위에 대 한 의미가 있지만 향후 시스템 메시지를 포함 하도록 변경 됩니다.

예약 된 "시스템" 범위에서 Windows 메시지를 개인 MFC 범위 및 리소스 종류 Microsoft Windows에서 쌓아두지.현재 일부 숫자 범위에 사용 되며, 앞으로 새로운 숫자를 범위에 사용 될 수 있습니다.현재 사용 되는 번호를 변경할 수 있습니다.

MFC 개인 Windows 메시지는 범위에서 0x360-> 0x37F.

MFC 개인 리소스 종류가 범위의 0xF0-> 0xFF입니다.

MFC 개인 Windows 메시지

이러한 Windows 메시지 비교적 느슨한 결합 사이의 창 개체 및 C++ 가상 함수를 적절 한 것 아닙니다 필요한 곳 C++ 가상 함수 대신 사용 됩니다.

이러한 개인 Windows 메시지와 연결 된 매개 변수의 구조 MFC의 전용 헤더에 선언 된 ' AFXPRIV.H'.이 헤더를 포함 하는 코드를 문서화 되지 않은 동작 하 고 중단 될 수 이후 버전의 MFC 의존 수 있습니다 있다는 경고 메시지가 표시 됩니다.

사용 해야 이러한 메시지를 처리 하는 드문 경우에는 ON_MESSAGE 메시지 맵 매크로 및 일반 LPARAM/WPARAM LRESULT/형식으로 메시지를에서 처리 합니다.

WM_QUERYAFXWNDPROC

이 메시지를 작성 하 고 창에 보내집니다.이 WndProc 경우 결정 하는 방법으로 생성 과정의 초기 보내집니다 AfxWndProc.AfxWndProc 1을 반환 합니다.

wParam

사용되지 않습니다.

lParam

사용되지 않습니다.

반환

처리 하는 경우 1 AfxWndProc

WM_SIZEPARENT

이 메시지는 프레임 창에서 즉시 하위 크기를 조정 하는 동안 보내집니다 (CFrameWnd::OnSize 호출 CFrameWnd::RecalcLayout 호출 CWnd::RepositionBars) 컨트롤 막대 주위 프레임의 측면 위치를.AFX_SIZEPARENTPARAMS 구조는 호출을 현재 사용할 수 있는 클라이언트 사각형의 부모와 (는 NULL이 될 수 있습니다)는 HDWP 포함 DeferWindowPos 다시 그리기 작업을 최소화 합니다.

wParam

사용되지 않습니다.

lParam

주소는 AFX_SIZEPARENTPARAMS 구조

반환

(0)를 사용

메시지를 무시 하 고 창 레이아웃에 파트를 갖지 않는 것을 나타냅니다.

WM_SETMESSAGESTRING

이 메시지 업데이트 상태 표시줄의 메시지 줄에 질문을 프레임 창으로 보내집니다.문자열 ID 또는 LPCSTR에 지정 된 (하나만) 될 수 있습니다.

wParam

ID (또는 0) 문자열입니다.

lParam

문자열 (또는 NULL) LPCSTR

반환

(0)를 사용

WM_IDLEUPDATECMDUI

이 메시지가 유휴 시간에 유휴 시간 업데이트 UI 처리기 업데이트 명령을 구현 하려면 보내집니다.(대개 컨트롤 막대) 창 메시지를 처리 하는 경우를 만듭니다는 CCmdUI (개체나 파생된 클래스의 개체)를 호출 하 고 CCmdUI::DoUpdate 각 창에서 "항목"에 대 한.이 대 한 검사는 ON_UPDATE_COMMAND_UI 명령 처리기 체인에 있는 개체에 대 한 처리기입니다.

wParam

BOOL bDisableIfNoHandler

lParam

(0)를 사용

반환

(0)를 사용

bDisableIfNoHandler 둘 다 있으면 UI 개체를 사용 하지 않도록 설정 하는 것이 아닌가 ON_UPDATE_COMMAND_UI 나는 ON_COMMAND 처리기입니다.

WM_EXITHELPMODE

이 메시지가 게시 되는 CFrameWnd 종료 상황에 맞는 도움말 모드.이 메시지의 수신을 시작 모달 루프를 종료 합니다. CFrameWnd::OnContextHelp.

wParam

(0)를 사용

lParam

(0)를 사용

반환

사용되지 않습니다.

WM_INITIALUPDATE

자신의 초기 업데이트 수행 안전 되 면이 메시지 문서 템플릿에서 프레임 창의 모든 하위 항목에 보내집니다.호출에 대응 CView::OnInitialUpdate 다른 위치에 사용할 수 있습니다 CWnd-파생 클래스가 다른 단위로 업데이트 합니다.

wParam

(0)를 사용

lParam

(0)를 사용

반환

(0)를 사용

WM_RECALCPARENT

이 메시지는 해당 부모 창 보기에서 전송 됩니다 (통해 얻은 GetParent) 강제로 다시 레이아웃에 (일반적으로 부모를 호출 RecalcLayout).이 보기의 총 크기가 커질수록 커지면서 프레임에 대해 필요에 따라 OLE 서버 응용 프로그램에 사용 됩니다.

부모 창이이 메시지를 처리 하는 경우 TRUE를 반환 하 고 새 클라이언트 영역 크기를 전달 하는 RECT를 채울 수 해야 합니다.이 사용 CScrollView (장소에 추가 될 때 창의 바깥쪽을 다음) 스크롤 막대를 제대로 처리 하기 위해 서버 개체 때 위치에서 활성화 합니다.

wParam

(0)를 사용

lParam

LPRECT Rectclient를 NULL 수 있습니다.

반환

True 이면 새 클라이언트 사각형에서 FALSE를 반환 했습니다 그렇지

WM_SIZECHILD

이 메시지 COleResizeBar 소유자 창으로 (통해 GetOwner) 때 사용자 크기 조정 크기 조정 막대 크기 조정 핸들을 사용 합니다.COleIPFrameWnd이 메시지에는 사용자가 요청한 대로 프레임 창의 위치를 시도 하 여 응답 합니다.

클라이언트 좌표로 나타낸 크기 조정 막대를 포함 하는 프레임 창 기준으로 지정 하 고 새 사각형에서 Lparam으로 가리킵니다.

wParam

(0)를 사용

lParam

LPRECT rectNew

반환

(0)를 사용

WM_DISABLEMODAL

이 메시지가 비활성화 되는 프레임 창에 소유 된 모든 팝업 창으로 보내집니다.프레임 창의 결과 사용 하 여 팝업 윈도우 해제 여부를 결정 합니다.

특정 팝업 창이 비활성화 가져오는 유지 또는 프레임 모달 상태로 들어갈 때 팝업 창에 특수 처리를 수행할 수 있습니다.도구 설명이 메시지를이 프레임 창은 모달 상태로 예 들어가면 자체를 파괴 하십시오.

wParam

(0)를 사용

lParam

(0)를 사용

반환

0이 아닌 수 않은 창 사용 안 함, 0을 나타내는 창을 사용할 수 없게 됩니다

WM_FLOATSTATUS

프레임 활성화 하거나 다른 최상위 프레임 창에서 비활성화 한 경우 프레임 창에 소유 하는 모든 팝업 창에이 메시지가 보내집니다.구현 하는 데 사용 됩니다 MFS_SYNCACTIVE 에서 CMiniFrameWnd, 팝업 창이 활성화의 최상위 수준 프레임 창이 활성화와 동기화 상태를 유지 합니다.

wParam

다음 값 중 하나입니다.

FS_SHOW

FS_HIDE

FS_ACTIVATE

FS_DEACTIVATE

FS_ENABLEFS_DISABLE

FS_SYNCACTIVE

lParam

(0)를 사용

반환 값은 0이 아닌 값 이어야 합니다 경우 FS_SYNCACTIVE 설정 창 맞게 맞춥니다 해당 상위 프레임으로 활성화 되어 있습니다.CMiniFrameWnd스타일을 설정는 경우 0이 아닌 값을 반환 합니다. MFS_SYNCACTIVE.

구현에 대 한 자세한 내용은 참조 하십시오. CMiniFrameWnd.

WM_ACTIVATETOPLEVEL

"최상위 그룹"의 창이 활성화 또는 비활성화 되 면이 메시지는 최상위 창에 전송 됩니다.창이 최상위 창 (없음 부모 또는 소유자) 이거나 해당 창으로 소유 하 고 최상위 그룹의 일부입니다.이 메시지를 사용 하는 비슷한입니다 WM_ACTIVATEAPP, 하지만 다른 프로세스에 속하는 windows는 혼합 위치 (OLE 응용 프로그램에서 일반) 단일 창 계층 구조의 경우에 작동 합니다.

WM_COMMANDHELP, WM_HELPHITTEST, WM_EXITHELPMODE

이러한 메시지는 상황에 맞는 도움말 구현에 사용 됩니다.참조 하십시오 기술 참고 28 에 대 한 자세한 내용은.

MFC 개인 리소스 형식입니다.

MFC 두 개인 리소스 형식을 정의 하는 현재: RT_TOOLBARRT_DLGINIT.

RT_TOOLBAR 리소스 형식입니다.

응용 프로그램 마법사에서 제공 되는 기본 도구 모음에서 기반으로 RT_TOOLBAR MFC 4.0에 도입 된 사용자 지정 리소스를 합니다.도구 모음 편집기를 사용 하 여이 리소스를 편집할 수 있습니다.

RT_DLGINIT 리소스 형식입니다.

MFC 개인 리소스 형식 추가 대화 상자 초기화 정보를 저장할 사용 됩니다.콤보 상자에서 저장 된 초기 문자열을 포함 합니다.이 리소스의 형식을 수동으로 편집 하려면 설계 되지 않았습니다 Visual C++에서 처리 되지 않지만.

Visual C++를 사용 하 고이 RT_DLGINIT 리소스 이므로 리소스에서 정보를 사용 하 여 API 대신 MFC의 관련된 기능을 사용 하려면 필요 하지 않습니다.Visual C++를 사용 하 여 훨씬 쉽게 작성, 유지 관리 및 장기적 응용 프로그램을 변환할 수 있습니다.

기본 구조는 RT_DLGINIT 리소스 다음과 같습니다:

+---------------+                    \
| Control ID    |   UINT             |
+---------------+                    |
| Message #     |   UINT             |
+---------------+                    |
|length of data |   DWORD            |
+---------------+                    |   Repeated
|   Data        |   Variable Length  |   for each control
|   ...         |   and Format       |   and message
+---------------+                    /
|     0         |   BYTE
+---------------+

반복된 섹션에 컨트롤 ID는 메시지를 보낼 수 있는 메시지 보내기 (일반 Windows 메시지) 및 가변 길이 데이터를 #.Windows 메시지의 형태로 전송 됩니다.

SendDlgItemMessage(<Control ID>, <Message #>, 0, &<Data>);

이 허용 하는 Windows 메시지와 데이터 콘텐츠를 매우 일반적인 형식입니다.MFC와 Visual C++ 리소스 편집기만 Windows 메시지의 제한 된 하위 집합을 지원: (데이터는 텍스트 문자열) 콤보 상자에서 초기 목록 옵션에 대 한 CB_ADDSTRING.

참고 항목

기타 리소스

번호 기술 정보

범주별 기술 노트