Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Utilizar DefWindowProc em Aplicações Windows

O DefWindowProc é uma função essencial no desenvolvimento de aplicações Windows que lidam com mensagens de janela. Esta função é responsável por fornecer um comportamento padrão para as mensagens que uma janela recebe, como redimensionamento, fechamento e pintura. Compreender como utilizar o DefWindowProc é crucial para qualquer desenvolvedor que esteja criando aplicações de desktop no ambiente Windows, pois garante que as janelas da aplicação respondam corretamente às interações do usuário e do sistema.

Exemplos:

Aqui está um exemplo básico de como usar o DefWindowProc em uma aplicação Windows escrita em C++:

#include <windows.h>

// Prototipo da função de janela
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

// Função principal
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
    // Registro da classe da janela
    const wchar_t CLASS_NAME[]  = L"Sample Window Class";

    WNDCLASS wc = { };

    wc.lpfnWndProc   = WindowProc;
    wc.hInstance     = hInstance;
    wc.lpszClassName = CLASS_NAME;

    RegisterClass(&wc);

    // Criação da janela
    HWND hwnd = CreateWindowEx(
        0,                              // Opcional
        CLASS_NAME,                     // Nome da classe da janela
        L"Sample Window",               // Texto da janela
        WS_OVERLAPPEDWINDOW,            // Estilo da janela

        // Tamanho e posição
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

        NULL,       // Janela mãe
        NULL,       // Menu
        hInstance,  // Instância da aplicação
        NULL        // Parâmetros adicionais
    );

    if (hwnd == NULL) {
        return 0;
    }

    ShowWindow(hwnd, nCmdShow);

    // Loop de mensagens
    MSG msg = { };
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

// Função de janela
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;

    default:
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
}

Neste exemplo, a função WindowProc é a função de janela que processa as mensagens recebidas pela janela. Quando uma mensagem não é tratada explicitamente (como o WM_DESTROY), a função DefWindowProc é chamada para fornecer o comportamento padrão.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.