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

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

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.    }				
3.00 3.10

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 79982 - 마지막 검토: 12/04/2015 09:11:12 - 수정: 1.1

Microsoft Windows Software Development Kit 3.1

  • kbnosurvey kbarchive kbmt kb16bitonly kbbutton kbctrl kbprb KB79982 KbMtko
피드백