대화상자에 컨트롤 추가

오늘에야 mfc에formview라는view가dialog와같은view라는 것을 발견했습니다.그는dialog의 컨트롤을 추가할 수 있습니다.그래서 한 문서를 두 개의view로 나누면 하나는 자체의view이고 다른 하나는formview이다. 그러면 formview에 button, 정적 텍스트 상자, 편집 상자 등 대화상자에 컨트롤을 추가할 수 있고 그 자체의view는 네가 해야 할 일을 할 수 있다. 매우 간단하다.
구체적인 단계:
첫째, 단일 문서의 mfc(분할 기능을 지원하고 그 다음에virtual Bool Oncreate Client(LPCREATESTRUCT lpcs, CCreate Context* pContext)를 자동으로 다시 씁니다.그리고 이 함수만 수정하면 ok),
둘째, mfc 클래스 추가: MyFormView, 상위 클래스는 formview입니다.그런 다음 마법사는 자동으로 이 클래스에 ID를 할당합니다.너는 수정할 수도 있고, 수정하지 않을 수도 있다.
셋째, 자원 관리 표시줄의 다이어로그 폴더에서 이 ID를 찾으면 이 formview를 열고 대화상자에 컨트롤을 추가하는 것처럼 formview에 필요한 컨트롤을 추가합니다.
넷째,mainfrm의virtual Bool Oncreate Client(LPCREATESTRUCT lpcs,CCreate Context* pContext)를 수정한다.함수(관련 헤더 파일 추가에 주의)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
	CCreateContext* pContext)
{
	//return m_wndSplitter.Create(this,
	//	2, 2,               // TODO:  
	//	CSize(10, 10),      // TODO:  
	//	pContext);
	m_wndSplitter.CreateStatic (this,1,2);//1 2 
	if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(MyFormView),CSize(700,100),pContext)
		||!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CformViewTestView),CSize(700,100),pContext))
	{
		m_wndSplitter.DestroyWindow();
		return FALSE;
	}

	return TRUE;
}

마지막으로 실행하면 왼쪽은view이고, 오른쪽은 대화상자와 비슷한 인터페이스를 얻을 수 있습니다.

좋은 웹페이지 즐겨찾기