PRB: BS_GROUPBOX-stijl subvenster achtergrond verkeerde schilderen

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 79982 - Bekijk de producten waarop dit artikel van toepassing is.
3,00 3.10 WINDOWS kbprg kbprb kbcode
Alles uitklappen | Alles samenvouwen

Symptomen

Wanneer een venster BS_GROUPBOX stijl is gemaakt, de achtergrond niet correct wissen.

Oorzaak

Het bovenliggende venster van het venster van de stijl BS_GROUPBOX heeft de WS_CLIPCHILDREN-stijl die in het bovenliggende venster voorkomt het groepsvak achtergrond wissen.

Oplossing

Subklasse het vak venster het bericht WM_ERASEBKGND verwerken door de achtergrond wissen. Hieronder vindt u een codefragment aan Deze procedure wordt gedemonstreerd.

Status

Dit gedrag is inherent aan het ontwerp.

Meer informatie

De stijl van WS_CLIPCHILDREN veroorzaakt een venster wilt uitsluiten van de gebieden ingenomen door onderliggende vensters wanneer het venster het clientgebied tekent. Een venster van de stijl BS_GROUPBOX is echter een statische bepalen die nooit wordt de achtergrond gewist. De achtergrond wissen verwijdert u alle besturingselementen of de knoppen die worden weergegeven in het groepsvak.

Dus als een ander onderliggend venster neergezet via een groepsvak en gedeelten van het onderliggende venster blijven daarna weg gesleept, in het groepsvak achtergrond zichtbaar. Dit probleem treedt niet op. Wanneer het bovenliggende venster geen stijl van de WS_CLIPCHILDREN.

Het volgende codefragment moet worden geplaatst in het groepsvak subklasse procedure. Deze code wordt de achtergrond van het groepsvak gewist.
   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.
    }
				

Eigenschappen

Artikel ID: 79982 - Laatste beoordeling: zaterdag 9 juni 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Windows Software Development Kit 3.1
Trefwoorden: 
kb16bitonly kbbutton kbctrl kbprb kbmt KB79982 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 79982
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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