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();
}