블로그 이미지
평강왕자

카테고리

분류 전체보기 (35)
Programming Lv1 (32)
Programming LV2 (0)
취미 (3)
Total
Today
Yesterday

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

Pane 이용시 닫기 버튼을 없애거나 스타일을 바꿔야 하는경우가 생긴다.
그런경우 실제로 스타일변경을 해봐도 잘 되지 않거나 처음에만 적용되고 다시 실행할경우 적용이 되지 않는 경우가 있는데..
레지스트리에 CDockingManager의 내용을 저장하기 때문인거 같다..

//탭패널 생성
CTabbedPane* pTabbedPane = new CTabbedPane(TRUE);

 if(!pTabbedPane->Create(_T(""),this,CRect(0,0,255,100),TRUE,(UINT)-1, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP | CBRS_FLOAT_MULTI, AFX_CBRS_REGULAR_TABS, AFX_CBRS_FLOAT | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE))
 {
  return -1;
 }

//패널 생성
m_networkManagerPane.Create(_T("NetworkManagerBar"),this,CRect(0,0,100,50),TRUE,1235, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP | CBRS_FLOAT_MULTI, AFX_CBRS_REGULAR_TABS, AFX_CBRS_FLOAT | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE);

위코드는 닫기버튼을 적용시키지 않은 경우이다.
AFX_CBRS_REGULAR_TABS, AFX_CBRS_FLOAT | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE 이부분에 AFX_CBRS_CLOSE 추가되면 닫기 버튼이 생성된다.

이렇게 한후 실행하면 한번만 적용되고 차후 실행하면 적용이 되지 않는다.

regedit에 HKEY_CURRENT_USER -> Software -> 로컬 응용 프로그램 마법사에서 생성된 응용프로그램 항목에 보면 해당 프로젝트의 프로그램명이 보이고 Workspace -> DockingManager-128 이라는 항목을 삭제하고 시작하면 한번은 다시 적용되지만 차후 실행하면 여전히 적용이 되지 않는다.

그래서 프로그램에서 레지스트리를 초기화 시켜줘야 한다.

App 부분에 InitInstance() 함수에 프레임창을 만들기전에 레지스트리를 초기화 시켜준다.

//레지스트리 초기화
 CleanState();
// 주 MDI 프레임 창을 만듭니다.
CMainFrame* pMainFrame = new CMainFrame;
 if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
 {
  delete pMainFrame;
  return FALSE;
 }

이경우 스타일은 적용되지만 레지스트리를 초기화 했기때문에 상태바나 이런설정이 매번 다시 초기화 되니 주의해야 한다.

'Programming Lv1 > MFC' 카테고리의 다른 글

MFC MDI 창에 메세지 보내기  (0) 2011.08.16
MFC 새창열기 변경  (0) 2011.08.16
MFC 바탕화면 해상도 가져오기  (0) 2011.08.16
MFC Argument 가져오기  (0) 2011.08.16
MFC Title bar 제거  (0) 2011.08.16
Posted by 평강왕자
, |

최근에 달린 댓글

글 보관함