mfc getwindowtext 예제

avatar
| Uncategorized

맨 위가 아닌 창은 맨 위 창을 소유할 수 있지만 그 반대의 경우도 마찬가지입니다. 맨 위 창이 소유한 모든 창(예: 대화 상자)은 소유한 모든 창이 소유자 위에 유지되도록 최상위 창으로 만들어집니다. 창에 소유자가 없는 경우 부모 창 개체에 대한 포인터가 기본적으로 반환됩니다. 소유자와 소유 자 간의 관계는 몇 가지 중요한 측면에서 부모-자식 측면과 다릅니다. 예를 들어 부모가 있는 창은 부모 창의 클라이언트 영역에 국한됩니다. 소유한 창은 바탕 화면의 모든 위치에서 그릴 수 있습니다. 이 예제에서는 CWnd::SetTimer, CWnd::OnTimer 및 CWnd::KillTimer를 사용하여 WM_TIMER 메시지를 처리합니다. 첫 번째 타이머는 OnStartTimer에서 2초마다 기본 프레임 창에 WM_TIMER 메시지를 보내도록 설정됩니다. OnTimer 이벤트 처리기는 주 프레임 창에 대한 WM_TIMER 메시지를 처리합니다.

이 방법을 사용하면 PC 스피커가 2초마다 비프음이 울립니다. 두 번째 타이머는 3.75초마다 콜백 함수에 메시지를 보냅니다. OnStopTimer는 각 타이머 ID에 대한 CWnd::KillTimer를 호출하여 두 타이머를 중지합니다. OnInitMenu는 메뉴가 처음 액세스할 때(예: 사용자가 메뉴 모음에서 항목을 클릭하는 경우) 한 번만 호출됩니다. 이 메서드는 메뉴 항목에 대 한 정보를 제공 하지 않습니다. 사용자가 메뉴 내의 항목으로 이동하면(예: 여러 메뉴 항목에서 마우스를 이동하여) 함수가 다시 호출되지 않습니다. 사용자가 메뉴에서 종료(예: 응용 프로그램 클라이언트 영역을 클릭하여) 나중에 메뉴 모음에서 항목을 클릭하면 함수가 다시 호출됩니다. 이 예제에서는 연결 및 분리를 사용하여 MDI 클라이언트 창에 매핑하는 방법을 보여 주었습니다. 이 문서에서는 MFC 대화 상자 기반 응용 프로그램과 함께 CreateFile 및 OpenFile win32 API 함수를 사용하는 예제를 살펴보겠습니다. Win32는 수많은 함수를 제공하는 풍부한 API이며 MFC는 논리적 기능 단위를 형성하기 위해 이러한 함수에 래핑된 프레임워크일 뿐입니다. Win32 API 라이브러리는 C 스타일(절차 적 접근 방식)에 있는 반면 MFC는 OOPS 기반 프레임워크 API인 기본 형식입니다. 좋아, 샘플로 시작하자.

IsDialogMessage 함수가 메시지를 처리하면 키보드 메시지를 확인하고 해당 대화 상자에 대한 선택 명령으로 변환합니다. 예를 들어 TAB 키는 다음 컨트롤 또는 컨트롤 그룹을 선택하고 DOWN ARROW 키는 그룹의 다음 컨트롤을 선택합니다. 시스템에서 글꼴을 추가하거나 제거하는 응용 프로그램(예: AddFontResource 또는 RemoveFontResource Windows 함수를 통해)은 WM_FONTCHANGE 메시지를 모든 최상위 창으로 보내야 합니다. 데이터가 다른 유형의 값(32비트인 모든 값)인 경우 적절한 유형으로 캐스팅하기만 하면 됩니다. 예를 들어 ints 대신 HBITMAPs를 저장한 경우… bAccept 매개 변수를 TRUE로 설정한 DragAcceptFiles를 호출하는 창만 Windows 메시지 WM_DROPFILES를 처리할 수 있는 것으로 식별되었습니다. 예를 들어 MDI 응용 프로그램에서 CMDIFrameWnd 창 포인터가 DragAcceptFiles 함수 호출에 사용되는 경우 CMDIFrameWnd 창만 WM_DROPFILES 메시지를 가져옵니다. 이 메시지는 열려 있는 모든 CMDIChildWnd 창으로 전송되지 않습니다.

CMDIChildWnd 창이 이 메시지를 받으려면 CMDIChildWnd 창 포인터를 사용하여 DragAcceptFiles를 호출해야 합니다. 창을 활성화하려면 먼저 창을 활성화해야 합니다. 예를 들어 응용 프로그램에서 모덜리스 대화 상자를 표시하고 기본 창을 사용하지 않도록 설정한 경우 대화 상자가 삭제되기 전에 주 창을 사용하도록 설정해야 합니다. 그렇지 않으면 다른 창에서 입력 포커스를 얻고 활성화됩니다.