2010-03-22 4 views
0

기본 창에 캔버스 (또는 사용자 지정 항목을 그릴 수있는 곳)와 단추 및 편집 필드와 같은 일부 컨트롤이있는 응용 프로그램을 만들고 싶습니다. 그러나 나는 그것을하는 방법에 대해 붙어있어.MFC 대화 상자에서 캔버스를 추가하는 방법은 무엇입니까?

SDI를 사용하여 MFC를 만들려고했지만 어떻게 CDC에 컨트롤을 추가 할 수 있습니까? 버튼과 편집 필드가있는 대화 상자 하나를 만들려고했으나 어느 컨트롤이 내가 그릴 수있는 대상을 참조합니까?

, 어떻게이 일을 가르치 려하시기 바랍니다 ..

답변

2

그것의 나를 위해 몇 년이, 그러나 여기 간다 :

내가 MFC 특정 캔버스 제어 할 수 있다고 생각하지 않습니다. 대신 드로잉 표면을 원할 때 디자인 모드에서 그룹 상자를 폼에 추가했습니다. 그룹 상자를 보이지 않게 만들었 기 때문에 런타임에는 표시되지 않습니다.

폼보기의 OnCreate 처리기에서 CWnd를 만들고 보이지 않는 그룹 상자의 크기와 위치를 지정했습니다.

나는 CWnd를위한 OnPaint 메시지 처리기, voila, 인스턴트 그래픽 캔버스 또는 필요로하는 다른 캔버스를 설정합니다.

이제이 작업은 5 년 전에 완료되었으며 MFC는 그 이후로 점진적으로 발전했을 수 있습니다. 그러나 이것이 일반적인 메커니즘입니다.

+0

또는 부모 창으로 CDialog 대신 CformView를 사용할 수도 있습니다. – adam

+0

고맙습니다. 정말 도움이되었습니다. :) –

0

SDI 대신 Dialog 기반 응용 프로그램을 사용하십시오. 원하는 컨트롤을 대화 상자에 쉽게 추가 할 수 있습니다.

아마 당신은 응용 프로그램의 크기를 조정할 수 있습니다. 테두리 스타일을 두껍게 설정하고 최소화 및 최대화 단추를 활성화하십시오. OnSize를 재정 의하여 대화 상자 크기가 변경되면 컨트롤을 이동하거나 크기를 조정합니다. 윈도우의 최소 크기를 설정해야하는 경우 OnSizing을 재정의하십시오.

대화 상자에서 임의의 그림을 그리는 가장 쉬운 방법은 OnPaint를 재정의하는 것입니다. 대화 상자의 영역을 사용자 정의 도면을 포함하도록 정의하십시오. 예를 들어 프레임 제어기로 둘러싸고, OnPaint가 작성하는 DC를 그릴 수 있습니다.

관련 문제