PRB: 잘못된 그리기 BS_GROUPBOX 스타일 자식 창 배경

기술 자료 번역 기술 자료 번역
기술 자료: 79982 - 이 문서가 적용되는 제품 보기.
3.00 3.10 WINDOWS kbprg kbprb kbcode
모두 확대 | 모두 축소

현상

BS_GROUPBOX 스타일 창을 만들 때 그 배경 올바르게 지워지지 않습니다.

원인

부모 창에 BS_GROUPBOX 스타일 창 그룹 상자의 배경 지우기 부모 창이 없습니다 WS_CLIPCHILDREN 스타일이 있습니다.

해결 방법

그룹 상자 창의 배경 지우기 WM_ERASEBKGND 메시지를 처리하는 데 하위 클래스. 아래 나열된 이 프로시저를 보여 주는 코드 조각입니다.

현재 상태

이것은 의도적으로 설계된 동작입니다.

추가 정보

WS_CLIPCHILDREN 스타일 창의 클라이언트 영역을 칠합니다 때 자식 창이 차지하는 영역을 제외할 창에 표시됩니다. 그러나 BS_GROUPBOX 스타일 창 배경을 절대로 지우는 정적 컨트롤입니다. 배경 지우기 컨트롤 또는 그룹 상자 내에 나타나는 단추를 제거합니다.

따라서 해당 자식 창의 일부를 다른 자식 창 그룹 상자 위로 삭제하고 이후에 즉시 끌 때 그대로 그룹 상자의 배경에 표시됩니다. 부모 창에 WS_CLIPCHILDREN 스타일이 없는 경우 이 문제가 발생하지 않습니다.

다음 코드 단편은 그룹 상자의 하위 프로시저는 배치해야 합니다. 이 코드 그룹 상자의 배경에 지워집니다.
   case WM_ERASEBKGND:

    {
    HBRUSH  hBrush, hOldBrush;
    HPEN    hPen, hOldPen;
    RECT    rect;
    HDC     hDC;

    hDC = GetDC(hWnd);

    // Obtain a handle to the parent window's background brush.
    hBrush = GetClassWord(ghWnd, GCW_HBRBACKGROUND);
    hOldBrush = SelectObject(hDC, hBrush);

    // Create a background-colored pen to draw the rectangle
    // borders, where gWindowColor is some globally defined
    // COLORREF variable used to paint the window's background
    hPen = CreatePen(PS_SOLID, 1, gWindowColor);
    hOldPen = SelectObject(hDC, hPen);

    // Erase the group box's background.
    GetClientRect(hWnd, &rect);
    Rectangle(hDC, rect.left, rect.top, rect.right, rect.bottom);

    // Restore the original objects before releasing the DC.
    SelectObject(hDC, hOldPen);
    SelectObject(hDC, hOldBrush);

    // Delete the created object.
    DeleteObject(hPen);

    ReleaseDC(hWnd, hDC);

    // Instruct Windows to paint the group box text and frame.
    InvalidateRect(hWnd, NULL, FALSE);

    // Insert code here to instruct the contents of the group box
    // to repaint as well.

    return TRUE; // Background has been erased.
    }
				

속성

기술 자료: 79982 - 마지막 검토: 2005년 2월 11일 금요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Software Development Kit 3.1
키워드:?
kbmt kb16bitonly kbbutton kbctrl kbprb KB79982 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com