C++ MFC 과제1

jiyul·2023년 11월 21일

C++ 영상처리

목록 보기
3/9

<과제1>

  • MFC 다이얼로그에 이미지 띄우기
public:
	CString m_strName;
	CString m_strInfo;
	afx_msg void OnBnClickedButtonEnlist();
	afx_msg void OnBnClickedButtonImage();
	CStatic m_picture_control;
	CButton m_button;
void C영상처리과제1Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT_NAME, m_strName);
	DDX_Text(pDX, IDC_EDIT_INFO, m_strInfo);
	DDX_Control(pDX, IDC_PIC, m_picture_control);
	DDX_Control(pDX, IDC_BUTTON_IMAGE, m_button);
}
void C영상처리과제1Dlg::OnBnClickedButtonEnlist()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	UpdateData();// 컨트롤에 입력된 데이터를 변수로 얻어온다.
	if (m_strName.IsEmpty())// 이름을 입력하지 않은 채 버튼을 클릭한 상황을 걸러내기 위함이다.
		return;
	m_strInfo.Append(m_strName);// m_strName 에 저장된 이름을 Append()를 이용하여 m_strInfo 에 추가한다.
	m_strInfo.Append(_T("\r\n"));// 개행 문자를 추가하여 다음 이용자의 이름을 다음 행에 출력하기 위함이다.
	m_strName.Empty();// 이름이 추가되었으므로 원래 작성했던 이름을 삭제해야한다.
	UpdateData(false);// false를 통해 m_strName 의 데이터를 컨트롤에 전달한다.
}
void C영상처리과제1Dlg::OnBnClickedButtonImage()
{
	// TODO: Add your control notification handler code here
	CRect rect;//픽쳐 컨트롤의 크기를 저장할 CRect 객체
	m_picture_control.GetWindowRect(rect);//GetWindowRect를 사용해서 픽쳐 컨트롤의 크기를 받는다.
	CDC* dc; //픽쳐 컨트롤의 DC를 가져올  CDC 포인터
	dc = m_picture_control.GetDC(); //픽쳐 컨트롤의 DC를 얻는다.
	CImage image;//불러오고 싶은 이미지를 로드할 CImage 
	image.Load(_T("니모_거북이.bmp"));//이미지 로드

	image.StretchBlt(dc->m_hDC, 0, 0, rect.Width(), rect.Height(), SRCCOPY);//이미지를 픽쳐 컨트롤 크기로 조정
	ReleaseDC(dc);//DC 해제
}

.bmp 파일은 프로젝트 폴더와 같은 위치여야 하는 것 같다.

profile
Let's take the lead

0개의 댓글