4. 사용자에게 변경 사항을 저장할 수 있는 기회를 제공하려면 OnOK를 재정의해야 합니다. 따라서 사용자가 확인을 제공 하면 저장을 호출 하는 QuerySave 함수를 작성 합니다. 일반적으로 OnOK를 재정의하는 경우 재정의는 UpdateData를 호출해야 합니다. 이 데이터베이스 예제에서는 OnCancel을 재정의하고 쿼리 저장 비트를 통과하도록 하는 것도 적절하므로 OnCancel는 일부 시나리오에서 UpdateData를 호출할 수도 있습니다. vtProp은 바인딩할 속성의 형식을 지정합니다(예: VT_BSTR, VT_VARIANT 등) Windows 버전 3.1 이상에서는 창을 Z 순서의 맨 위로 이동하고 WS_EX_TOPMOST 스타일을 설정하여 잠글 수 있습니다. 이러한 최상위 창은 비활성화된 경우에도 최상위 위치를 유지합니다. 예를 들어 WinHelp Always On Top 명령을 선택하면 도움말 창이 맨 위에 있고 응용 프로그램으로 돌아갈 때 계속 표시됩니다. bAccept 매개 변수를 TRUE로 설정한 DragAcceptFiles를 호출하는 창만 Windows 메시지 WM_DROPFILES를 처리할 수 있는 것으로 식별되었습니다.
예를 들어 MDI 응용 프로그램에서 CMDIFrameWnd 창 포인터가 DragAcceptFiles 함수 호출에 사용되는 경우 CMDIFrameWnd 창만 WM_DROPFILES 메시지를 가져옵니다. 이 메시지는 열려 있는 모든 CMDIChildWnd 창으로 전송되지 않습니다. CMDIChildWnd 창이 이 메시지를 받으려면 CMDIChildWnd 창 포인터를 사용하여 DragAcceptFiles를 호출해야 합니다. 또한 "UpdateData를 호출하지 마십시오"라는 전제에 동의할 수 없습니다. 이 함수는 모달 대화 상자에서도 확실히 그 용도를 가지고 있습니다. 예를 들어 STL 맵과 같은 (키, 항목) 쌍의 간단한 데이터베이스에 인터페이스를 제공하는 일부 컨트롤이 포함된 대화 상자를 생각해 보십시오. 저장 버튼이 있으며, 그것을 누르면 현재 레코드가 저장됩니다. MFC는 다양한 종류의 교환을 위해 많은 DDX 함수를 제공합니다. 다음 예제에서는 두 개의 DDX 함수와 하나의 DDV 함수가 호출되는 DoDataExchange 재정의를 보여 주며, 예를 들어 CView 파생 클래스에서 DestroyWindow를 재정의했다고 가정합니다.
MFC 소스 코드는 CFrameWnd 파생 클래스에서 DestroyWindow를 호출하지 않으므로 명시적으로 호출하지 않는 한 재정의된 DestroyWindow가 호출되지 않습니다. 특정 컨트롤의 일부 스타일(예: 편집 컨트롤의 ES_READONLY 스타일)의 경우 컨트롤이 특별한 내부 처리를 수행해야 할 수 있으므로 수정 스타일이 스타일을 제대로 변경하지 못할 수 있습니다. 이러한 경우 스타일을 변경하는 해당 메시지를 사용할 수 있습니다(언급된 예제에서 EM_SETREADONLY). 응용 프로그램은 일반적으로 OnDeadChar를 사용하여 누른 각 키에 대한 사용자 피드백을 제공합니다. 예를 들어 응용 프로그램은 캐런을 이동하지 않고 현재 문자 위치에 악센트를 표시할 수 있습니다.
Published by: gianni57
Comments are closed.