728x90
반응형
다이얼로그 대화상자 기반 응용프로그램 작성시 배경을 이미지로 처리할 경우 다음과 같은 소스를 참고하시기 바랍니다.
먼저 다이얼로그 대화상자에 할당한 클래스의 헤더 파일에서 클래스 이름을 선택하고 오른쪽 [속성] 탭을 선택하신 후 WM_PAINT
메세지를 처리하는 OnPaint
함수를 추가합니다.
소스 파일을 선택하고 방금전에 추가한 OnPaint 함수에 아래의 소스와 같이 else 구문의 내용을 추가해 주시기 바랍니다.
void CTestDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다. SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다. 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; // 아이콘을 그립니다. dc.DrawIcon(x, y, m_hIcon); } else { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트 CDC MemDC; CBitmap bmp; CRect rct; this->GetClientRect(&rct); // Then load the bitmap to the memory. MemDC.CreateCompatibleDC(&dc); bmp.LoadBitmap(IDB_BKIMG_BITMAP); MemDC.SelectObject(&bmp); // dialog surface. dc.BitBlt(0, 0, rct.Width(), rct.Height(), &MemDC, 0, 0, SRCCOPY); //CDialogEx::OnPaint(); } }
여기서 LoadBitmap 함수의 인자인 IDB_BKIMG_BITMAP은 배경 이미지를 리소드에 추가한 ID를 의미합니다.
다음 그림은 다이얼로그 대화상자에 배경 이미지를 삽입한 결과입니다.
728x90
반응형
'소프트웨어 > MFC' 카테고리의 다른 글
C# 라이브러리를 MFC에서 사용하기 (0) | 2022.06.23 |
---|---|
Visual Studio 2015에 OpenGl 개발환경 구성 (0) | 2022.06.22 |
비트맵 파일 이미지 출력 (0) | 2018.09.11 |
'CString'에서 'const char *'(으)로 변환할 수 없습니다. (0) | 2018.07.12 |
'CString'에서 'LPCSTR'(으)로 변환할 수 없습니다. (0) | 2018.07.03 |