none
MFC 클래스 추가에 관한 질문입니다. CFormView를 기본 클래스로 만들수 없나요?

    질문

  • 안녕하세요.

    한 화면에서 세 번째 창을 클릭하십시오.

    CFormView를 사용하여 기본 클래스를 생성하십시오

    기본 클래스는 다음과 같습니다.

    현재 비주얼 스튜디오 2017 커뮤티니 무료 버전을 사용하고 있습니다.

    CDialogEx, CDialog, CHtmlDialog, CMFCPropertyPage, COLEPropertyPage 없습니다.

    한 창에 3개의 다른 창을 띄우고싶은데 . 

    3개의 다른창을 각각의 폼뷰를 넣어서 만들고 싶습니다.

    인터넷에 검색해보면 다들 폼뷰를 상속받아서 사용했던데 바뀐것인지 

    제가 어떤 걸 설치안해서 그런건지  알고싶습니다.

    • 편집됨 어렵다 2018년 10월 8일 월요일 오전 8:51
    2018년 10월 8일 월요일 오전 8:49

답변

  • 정확하게 어떤 상황에서 기본 클래스로 CFormView를 찾으실 수 없는 것인지 추가 설명이 필요할 것 같습니다.

    SDI나 다이얼로그 기반 창이나 클래스 마법사에서 기본 클래스로 CFormView를 찾거나 이미 설정이 되어 있는 것을 어렵지 않게 찾아볼 수 있었습니다.

    이런 것을 의미하는 게 아니고 CFormView를 사용하는 클래스를 정의하려고 하는 것이라면, 클래스 마법사에서 "Add Class" 메뉴를 선택하신 후 Base class에 CFormView를 직접 입력하시고 클래스를 정의하셔도 됩니다.

    • 답변으로 표시됨 어렵다 2018년 10월 18일 목요일 오전 8:18
    2018년 10월 11일 목요일 오후 2:47

모든 응답

  • 정확하게 어떤 상황에서 기본 클래스로 CFormView를 찾으실 수 없는 것인지 추가 설명이 필요할 것 같습니다.

    SDI나 다이얼로그 기반 창이나 클래스 마법사에서 기본 클래스로 CFormView를 찾거나 이미 설정이 되어 있는 것을 어렵지 않게 찾아볼 수 있었습니다.

    이런 것을 의미하는 게 아니고 CFormView를 사용하는 클래스를 정의하려고 하는 것이라면, 클래스 마법사에서 "Add Class" 메뉴를 선택하신 후 Base class에 CFormView를 직접 입력하시고 클래스를 정의하셔도 됩니다.

    • 답변으로 표시됨 어렵다 2018년 10월 18일 목요일 오전 8:18
    2018년 10월 11일 목요일 오후 2:47
  • 음 제가 작성한 글과 조금 다르게 올라갔네요.  자동으로 번역이 되서 그런건지 잘 모르겠지만.

    일단 전 A라는 SDI프로젝트를 만들었습니다. 

    A라는 클래스를 만들 때 CFromview를 기본 클래스로 한 뷰를 하나 생성했습니다.

    그렇게 만들어서 리소스 뷰 창에 가면 IDD_A_FORM이라는 폼뷰 다이얼로그가 하나와 IDD_ABOUTBOX가 있습니다.

    여기서 다이얼로그를 열어서 IDD_FORMVEW를 하나 추가합니다. 

    그리고 IDD_FORMVIEW를 눌러서 클래스 추가를 합니다. 그러면 처음 질문에서 나온 것 처럼 5개의 기본 클래스로만 생성이 가능합니다. 

    사진을 첨부하고 싶은데 아직 사진을 첨부할 수가 없네요. 

    2018년 10월 18일 목요일 오전 8:26
  • 어떤 시나리오인지 이해했습니다. CFormView가 MFC 클래스 생성할 때 기본 클래스로 제공되지 않는다는 알려진 버그가 있었는데 (확인해보니 지금도 개선이 안 된 것 같습니다). 이런 부분하고 관련이 있는지 모르겠습니다. 

    일단은 불편하시더라도 수동으로 생성하는 것이 좋을 것 같습니다.

    아니면 Developer Community에 제안을 해주시면 개발팀에서 관심을 가지고 답변을 주거나 문제점으로 접수해 줄 수도 있습니다.

    2018년 10월 23일 화요일 오전 1:09