[MFC] Application Layout State - 레이아웃 상태(저장) 관련 내용
저장소/VC++출처 :
http://surfree.egloos.com/10681365
MS VS 2008부터 MFC Feature Pack을 지원합니다.
Doc-View 형태의 응용프로그램을 만들면 MFC Feature Pack에서 제공하는 OutlookBar 와 Docking Pane를 이용할 수 있습니다.
OutlookBar와 Docking Pane의 레이아웃은 자동으로 저장되고 로드 됩니다.
매우 편리한 기능이긴 하지만 또한 매우 불편한 기능입니다.
물론 이 레이아웃 상태에 대해서 커스터마이징을 할 수 있는 여지를 두었군요.
MFC Feature Pack으로 Doc-VIew 응용프로그램을 생성할 시 기본 App 클래스는
CWinApp에서 CWinAppEx로 변경됩니다.
CWinAppEx에서 이 상태 저장 및 복구를 하는 군요.
CWinAppEx의 메소드 중 다음 메소드를 주의해서 보시면 됩니다.
CleanState(): 레이아웃 상태를 모두 초기화 한다.
LoadState(): 레이아웃 상태를 로드한다.
SaveState(): 레이아웃 상태를 저장한다.
위와 같은 메소드가 있지만 CleanState() 정도가 유용하게 쓰일 수 있을 것 같습니다.
CWinAppEx를 상속받은 클래스의 InitInstance()에서
SetRegistryKey() 구문 다음에 CleanState()를 호출하면 항상 레이아웃이 초기화한 상태로 표시되게 됩니다.
레이아웃을 로드하는 시점은 ProcessShellCommand()에서 프레임워크상 자동으로 로딩되게 되어 있습니다.
또한 이 레이아웃 자동 저장이 필요없다면
CWinAppEx의 다음 메소드를 오버라이딩 합니다.
virtual void OnClosingMainFrame(CFrameImpl* pFrameImpl);
기본 동작은 SaveState() 메소드를 호출합니다.
그러므로 레이아웃 자동저장이 되지 않게 하기 위해서는 OnClosingMainFrame()메소드를 오버라이딩하여 빈 구문으로 놓으면 레이아웃이 자동으로 저장되지 않습니다.
MS VS 2008부터 MFC Feature Pack을 지원합니다.
Doc-View 형태의 응용프로그램을 만들면 MFC Feature Pack에서 제공하는 OutlookBar 와 Docking Pane를 이용할 수 있습니다.
OutlookBar와 Docking Pane의 레이아웃은 자동으로 저장되고 로드 됩니다.
매우 편리한 기능이긴 하지만 또한 매우 불편한 기능입니다.
물론 이 레이아웃 상태에 대해서 커스터마이징을 할 수 있는 여지를 두었군요.
MFC Feature Pack으로 Doc-VIew 응용프로그램을 생성할 시 기본 App 클래스는
CWinApp에서 CWinAppEx로 변경됩니다.
CWinAppEx에서 이 상태 저장 및 복구를 하는 군요.
CWinAppEx의 메소드 중 다음 메소드를 주의해서 보시면 됩니다.
CleanState(): 레이아웃 상태를 모두 초기화 한다.
LoadState(): 레이아웃 상태를 로드한다.
SaveState(): 레이아웃 상태를 저장한다.
위와 같은 메소드가 있지만 CleanState() 정도가 유용하게 쓰일 수 있을 것 같습니다.
CWinAppEx를 상속받은 클래스의 InitInstance()에서
SetRegistryKey() 구문 다음에 CleanState()를 호출하면 항상 레이아웃이 초기화한 상태로 표시되게 됩니다.
레이아웃을 로드하는 시점은 ProcessShellCommand()에서 프레임워크상 자동으로 로딩되게 되어 있습니다.
또한 이 레이아웃 자동 저장이 필요없다면
CWinAppEx의 다음 메소드를 오버라이딩 합니다.
virtual void OnClosingMainFrame(CFrameImpl* pFrameImpl);
기본 동작은 SaveState() 메소드를 호출합니다.
그러므로 레이아웃 자동저장이 되지 않게 하기 위해서는 OnClosingMainFrame()메소드를 오버라이딩하여 빈 구문으로 놓으면 레이아웃이 자동으로 저장되지 않습니다.
'저장소 > VC++' 카테고리의 다른 글
Windows XP sp2 환경에서 exe 또는 dll 사용 시 재부팅 문제 (0) | 2012.06.13 |
---|---|
[MFC] CDockablePane (0) | 2012.02.10 |
[Debugging] First-chance Exception과 Second-chance Exception (0) | 2012.01.12 |
[Win32 API] GetAsyncKeyState (0) | 2011.11.25 |
[MFC] DestroyWindow (0) | 2011.11.24 |