본문 바로가기

app/C

MFC Dialog Based에서 View Class 쓰지 않고 이미지 출력

다이얼로그를 CMyDlg라고 하면

MyDlg.h에서 

 void OnDraw(CDC* pDC); 를 멤버로 선언해주고 

MyDlg.cpp에서  

void CMyDlg::OnPaint()
{
 if (IsIconic())
 {
  CPaintDC dc(this); // device context for painting

  SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

  // Center icon in client rectangle
  int cxIcon = GetSystemMetrics(SM_CXICON);
  int cyIcon = GetSystemMetrics(SM_CYICON);
  CRect rect;
  GetClientRect(&rect);
  int x = (rect.Width() - cxIcon + 1) / 2;
  int y = (rect.Height() - cyIcon + 1) / 2;

  // Draw the icon
  dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
  CPaintDC dc(this);

  OnDraw(&dc);

  CDialog::OnPaint();
 }

void CMyDlg::OnDraw(CDC* pDC)
{

pDC->Rectangle(10,10,100,100);
//그림이든뭐든 다할수 있게 되었따~~

}

 다이얼로그 시작시는 OnDraw함수가 없기 때문에 이렇게 DC포인터만 넘겨서 만들어 주면 도큐먼트처럼 쓸수 있다.