본문 바로가기

공부기록

공부기록, 2021-10-08(mfc 도킹팬)

 - mfc 도킹팬 
   - 도킹팬을 이용한 응용프로그램 디자인.

1. 디폴트로 MFC 프로젝트를 생성 하고. 다이얼로그 디자인 한다.

2. 디자인된 dlg 를 클래스로 추가한다.

3. 도킹팬 클래스를 추가한다.

4. 메인 프레임에 아래와 같은 도킹팬 클래스 생성 코드를 추가한다.

 if(!m_paneCalculator.Create(_T("Calculator"),this,CRect(0,0,200,200),TRUE,1,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|CBRS_RIGHT|CBRS_FLOAT_MULTI))
 {
   return -1;
 }
 m_paneCalculator.EnableDocking(CBRS_ALIGN_ANY); // 상하 좌우 도킹 가능하게 함
 DockPane(&m_paneCalculator);

5. 도킹팬 클래스에서

if(!m_ctrlCalculator.Create(IDD_DIALOG_CALCURATOR,this))
  return -1;

 m_ctrlCalculator.ShowWindow(SW_SHOW);

위와 같이 다이얼로그를 생성 하고. 뷰 해주는 코드를 추가한다.

그리고, 사이즈 변경시에 알맞게 작동되기 위해 WM_SIZE의 처리기 추가하여

 m_ctrlCalculator.MoveWindow(0,0,cx,cy);

와 같은 소스코드를 추가한다.

5. 다이얼로그 클래스에서  헤더를 인클루드 하고, 각 클래스에대한 포인터를 얻어 작업할 수 있도록 한다

 

다이얼로그 클래스에 포인터를 얻기 전에, 인클루드 해줘야 함.
View 클래스는 기본적으로 doc 와 짝을 이루기 때문에, doc 도 인클루드 해야 함

#include "MainFrm.h"
#include "프로젝트명Doc.h"
#include "프로젝트명View.h"


* Frame 윈도우 포인터 얻기

CMainFrame * pFrame = (CMainFrame *) AfxGetMainWnd();


*  View 윈도우의 포인터 얻기
 CB8View * pView = (CB8View *) pFrame->GetActiveView();




## 자주 하는 실수
  - 기본기능으로 때우려고함
## 큐
  - 어차피 헷갈리니 자주보고쓰자
## 내가 모르는 것
  - mfc 도킹팬 요소
   
## 일정    
- 14:00 ~ 15:00 : 운동
- 15:00 ~ 16:00 : 운동
- 17:00 ~ 18:00 : 공부, 영상1업로드
- 18:00 ~ 19:00 : 공부, 영상2업로드
- 19:00 ~ 20:00 : 공부, 영상3업로드
- 20:00 ~ 21:00 : 공부
- 21:00 ~ 22:00 : 공부