Fundo da janela
O fundo da janela é a cor ou padrão usado para preencher a área do cliente antes de uma janela começar a desenhar. O fundo da janela cobre o que estava na tela antes da janela ser movida para lá, apagando as imagens existentes e impedindo que a nova saída do aplicativo seja misturada com informações não relacionadas.
O sistema pinta o plano de fundo de uma janela ou dá à janela a oportunidade de fazê-lo, enviando-lhe uma mensagem WM_ERASEBKGND quando o aplicativo chama BeginPaint. Se um aplicativo não processar a mensagem, mas passá-la para DefWindowProc, o sistema apagará o plano de fundo preenchendo-o com o padrão no pincel de plano de fundo especificado pela classe da janela. Se o pincel não for válido ou a classe não tiver nenhum pincel de fundo, o sistema define o fErase membro no PAINTSTRUCT estrutura que BeginPaint retorna, mas não executa nenhuma outra ação. A aplicação tem então uma segunda oportunidade para desenhar o fundo da janela, se necessário.
Se ele processar WM_ERASEBKGND, o aplicativo deve usar o parâmetro wParam wParam da mensagem para desenhar o plano de fundo. Este parâmetro contém um identificador para o contexto do dispositivo de exibição para a janela. Depois de desenhar o plano de fundo, o aplicativo deve retornar um valor diferente de zero. Isso garante que BeginPaint não defina erroneamente o fErase membro da estruturaPAINTSTRUCT para um valor diferente de zero (indicando que o plano de fundo deve ser apagado) quando o aplicativo processa a mensagem WM_PAINT subsequente.
Um aplicativo pode definir um pincel de plano de fundo de classe atribuindo um identificador de pincel ou um valor de cor do sistema ao hbrBackground membro da estrutura deWNDCLASSao registrar a classe com a funçãoRegisterClass. O GetStockObject ou função de CreateSolidBrush pode ser usado para criar uma alça de pincel. Um valor de cor do sistema pode ser um dos definidos para a funçãoSetSysColors. (O valor deve ser aumentado em um antes de ser atribuído ao membro.)
Um aplicativo pode processar a mensagem WM_ERASEBKGND mesmo que um pincel de plano de fundo de classe esteja definido. Isso é típico em aplicativos que permitem ao usuário alterar a cor de fundo da janela ou o padrão de uma janela especificada sem afetar outras janelas na classe. Nesses casos, o aplicativo não deve passar a mensagem para DefWindowProc.
Não é necessário que uma aplicação alinhe pincéis, porque o sistema desenha o pincel usando a origem da janela como ponto de referência. Diante disso, o usuário pode mover a janela sem afetar o alinhamento dos pincéis padrão.