mfc_dlg_size - 8BitsCoding/RobotMentor GitHub Wiki


λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 이미지 ν™•λŒ€

// Dlg.h
CImage m_image;
int m_cx_margin, m_cy_margin, m_top_margin;
int m_zoom_level = 2;
void CMFCApplication1Dlg::OnPaint()
{
	CPaintDC dc(this); // 그리기λ₯Ό μœ„ λ””λ°”μ΄μŠ€ μ»¨ν…μŠ€νŠΈμž…λ‹ˆλ‹€.

	if (IsIconic())
	{
        // ...
	}
	else
	{
		// κ·Έλƒ₯ 좜λ ₯
		//m_image.Draw(dc, 0, 0);

		// 2λ°° 좜λ ₯
		m_image.Draw(dc, 2, 2+ m_top_margin, m_image.GetWidth()*m_zoom_level, m_image.GetHeight()*m_zoom_level);

		// CDialogEx::OnPaint();
	}
}
BOOL CMFCApplication1Dlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 이 λŒ€ν™” μƒμžμ˜ μ•„μ΄μ½˜μ„ μ„€μ •ν•©λ‹ˆλ‹€.  μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ£Ό 창이 λŒ€ν™” μƒμžκ°€ 아닐 κ²½μš°μ—λŠ”
	//  ν”„λ ˆμž„μ›Œν¬κ°€ 이 μž‘μ—…μ„ μžλ™μœΌλ‘œ μˆ˜ν–‰ν•©λ‹ˆλ‹€.
	SetIcon(m_hIcon, TRUE);			// 큰 μ•„μ΄μ½˜μ„ μ„€μ •ν•©λ‹ˆλ‹€.
	SetIcon(m_hIcon, FALSE);		// μž‘μ€ μ•„μ΄μ½˜μ„ μ„€μ •ν•©λ‹ˆλ‹€.

	// TODO: 여기에 μΆ”κ°€ μ΄ˆκΈ°ν™” μž‘μ—…μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.

	SetBackgroundColor(RGB(168, 168, 0));

	m_image.Load(L"test.png");

	CRect win_rect, client_rect;
	GetWindowRect(win_rect);
	GetClientRect(client_rect);

	m_cx_margin = win_rect.Width() - client_rect.Width() + 4;
	m_cy_margin = win_rect.Height() - client_rect.Height() + 4;

	GetDlgItem(IDC_BUTTON2)->GetWindowRect(win_rect);
	ScreenToClient(win_rect);

	m_top_margin = win_rect.bottom;

	SetWindowPos(NULL, 0, 0, m_image.GetWidth()*m_zoom_level+m_cx_margin, m_image.GetHeight()*m_zoom_level+m_cy_margin + m_top_margin, SWP_NOMOVE);

	return TRUE;  // 포컀슀λ₯Ό μ»¨νŠΈλ‘€μ— μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ TRUEλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
}
void CMFCApplication1Dlg::OnBnClickedButton2()
{
	m_zoom_level = 2;
	SetWindowPos(NULL, 0, 0, m_image.GetWidth()*m_zoom_level + m_cx_margin, m_image.GetHeight()*m_zoom_level + m_cy_margin + m_top_margin, SWP_NOMOVE);

	Invalidate();
}

void CMFCApplication1Dlg::OnBnClickedButton4()
{
	m_zoom_level = 4;
	SetWindowPos(NULL, 0, 0, m_image.GetWidth()*m_zoom_level + m_cx_margin, m_image.GetHeight()*m_zoom_level + m_cy_margin + m_top_margin, SWP_NOMOVE);

	Invalidate();
}

void CMFCApplication1Dlg::OnBnClickedButton8()
{
	m_zoom_level = 8;
	SetWindowPos(NULL, 0, 0, m_image.GetWidth()*m_zoom_level + m_cx_margin, m_image.GetHeight()*m_zoom_level + m_cy_margin + m_top_margin, SWP_NOMOVE);

	Invalidate();
}