Partilhar via


Classe CWnd

Fornece a funcionalidade base de todas as classes de janela na biblioteca Microsoft Foundation Class.

Sintaxe

class CWnd : public CCmdTarget

Membros

Construtores públicos

Nome Descrição
CWnd::CWnd Constrói um objeto CWnd.

Métodos públicos

Nome Descrição
CWnd::accDoDefaultAction Chamado pela estrutura para executar a ação padrão do objeto.
CWnd::accHitTest Chamado pela estrutura para recuperar o elemento filho ou o objeto filho em um determinado ponto na tela.
CWnd::accLocation Chamado pela estrutura para recuperar a localização do objeto especificado na tela atual.
CWnd::accNavigate Chamado pela estrutura para percorrer para outro elemento de interface do usuário dentro de um contêiner e, se possível, recuperar o objeto.
CWnd::accSelect Chamado pela estrutura para modificar a seleção ou mover o foco do teclado do objeto especificado.
CWnd::AnimateWindow Anima o objeto de janela associado.
CWnd::ArrangeIconicWindows Organiza todas as janelas filho minimizadas (em ícones).
CWnd::Attach Anexa um identificador do Windows a um objeto CWnd.
CWnd::BeginModalState Chame essa função membro para tornar uma janela de quadro restrita.
CWnd::BeginPaint Prepara CWnd para pintura.
CWnd::BindDefaultProperty Associa a propriedade associada simples padrão do objeto de chamada, conforme marcado na biblioteca de tipos, a um cursor associado a um controle de fonte de dados.
CWnd::BindProperty Associa uma propriedade associada ao cursor em um controle associado a dados a um controle de fonte de dados e registra essa relação com o gerenciador de associação MFC.
CWnd::BringWindowToTop Coloca CWnd no topo de uma pilha de janelas sobrepostas.
CWnd::CalcWindowRect Chamado para calcular o retângulo da janela do retângulo do cliente.
CWnd::CancelToolTips Desabilita o controle de dica de ferramenta.
CWnd::CenterWindow Centraliza uma janela em relação ao pai.
CWnd::ChangeClipboardChain Remove CWnd da cadeia de visualizadores da área de transferência.
CWnd::CheckDlgButton Coloca uma marca de seleção ao lado ou remove uma marca de seleção de um controle de botão.
CWnd::CheckRadioButton Verifica o botão de opção especificado e remove a marca de seleção de todos os outros botões de opção no grupo de botões especificado.
CWnd::ChildWindowFromPoint Determina qual, se houver, das janelas filho contém o ponto especificado.
CWnd::ClientToScreen Converte as coordenadas do cliente de um determinado ponto ou retângulo na exibição em coordenadas de tela.
CWnd::CloseWindow Minimiza a janela.
CWnd::ContinueModal Continua o status restrito de uma janela.
CWnd::Create Cria e inicializa a janela filho associada ao objeto CWnd.
CWnd::CreateAccessibleProxy Cria um proxy de Acessibilidade Ativa para o objeto especificado.
CWnd::CreateCaret Cria uma nova forma para o cursor do sistema e obtém a propriedade do cursor.
CWnd::CreateControl Crie um controle ActiveX que será representado em um programa MFC por um objeto CWnd.
CWnd::CreateEx Cria uma janela do Windows sobreposta, pop-up ou filho e a anexa a um objeto CWnd.
CWnd::CreateGrayCaret Cria um bloco cinza para o cursor do sistema e obtém a propriedade do cursor.
CWnd::CreateSolidCaret Cria um bloco cinza para o cursor do sistema e obtém a propriedade do cursor.
CWnd::DeleteTempMap Chamado automaticamente pelo manipulador de tempo ocioso CWinApp e exclui todos os objetos temporários CWnd criados por FromHandle.
CWnd::DestroyWindow Destrói a janela anexada do Windows.
CWnd::Detach Desanexa um identificador do Windows de um objeto CWnd e retorna o identificador.
CWnd::DlgDirList Preenche uma caixa de listagem com uma listagem de arquivo ou diretório.
CWnd::DlgDirListComboBox Preenche uma caixa de listagem de uma caixa de combinação com uma listagem de arquivo ou diretório.
CWnd::DlgDirSelect Recupera a seleção atual de uma caixa de listagem.
CWnd::DlgDirSelectComboBox Recupera a seleção atual de uma caixa de listagem de uma caixa de combinação.
CWnd::DragAcceptFiles Indica que a janela aceitará arquivos arrastados.
CWnd::DragDetect Captura o mouse e rastreia seu movimento até que o usuário libere o botão esquerdo, pressione a tecla ESC ou mova o mouse para fora do retângulo de arrastar ao redor do ponto especificado.
CWnd::DrawAnimatedRects Desenha um retângulo delineado e o anima para indicar a abertura de um ícone ou a minimização ou maximização de uma janela.
CWnd::DrawCaption Desenha uma barra de legenda.
CWnd::DrawMenuBar Redesenha a barra de menus.
CWnd::EnableActiveAccessibility Habilita as funções Active Accessibility definidas pelo usuário.
CWnd::EnableDynamicLayout Permite que a posição e o tamanho das janelas filho se ajustem dinamicamente quando o usuário redimensiona a janela.
CWnd::EnableD2DSupport Habilita ou desabilita o suporte à janela D2D. Chame esse método antes que a janela principal seja inicializada.
CWnd::EnableScrollBar Habilita ou desabilita uma ou ambas as setas de uma barra de rolagem.
CWnd::EnableScrollBarCtrl Habilita ou desabilita um controle de barra de rolagem irmão.
CWnd::EnableToolTips Habilita o controle de dica de ferramenta.
CWnd::EnableTrackingToolTips Habilita o controle de dica de ferramenta no modo de acompanhamento.
CWnd::EnableWindow Habilita ou desabilita a entrada de mouse e teclado.
CWnd::EndModalLoop Finaliza o status restrito de uma janela.
CWnd::EndModalState Chame essa função membro para alterar uma janela de quadro de modal para não restrita.
CWnd::EndPaint Marca o fim da pintura.
CWnd::ExecuteDlgInit Inicia um recurso de caixa de diálogo.
CWnd::FilterToolTipMessage Recupera o título ou texto associado a um controle em uma caixa de diálogo.
CWnd::FindWindow Retorna o identificador da janela, que é identificado pelo nome da janela e pela classe de janela.
CWnd::FindWindowEx Retorna o identificador da janela, que é identificado pelo nome da janela e pela classe de janela.
CWnd::FlashWindow Pisca a janela uma vez.
CWnd::FlashWindowEx Pisca a janela com funcionalidade adicional.
CWnd::FromHandle Retorna um ponteiro para um objeto CWnd quando dado um identificador para uma janela. Se um objeto CWnd não estiver anexado ao identificador, um objeto temporário CWnd será criado e anexado.
CWnd::FromHandlePermanent Retorna um ponteiro para um objeto CWnd quando dado um identificador para uma janela.
CWnd::get_accChild Chamado pela estrutura para recuperar o endereço de uma interface IDispatch para o filho especificado.
CWnd::get_accChildCount Chamado pela estrutura para recuperar o número de filhos que pertencem a esse objeto.
CWnd::get_accDefaultAction Chamado pela estrutura para recuperar uma cadeia de caracteres que descreve a ação padrão do objeto.
CWnd::get_accDescription Chamado pela estrutura para recuperar uma cadeia de caracteres que descreve a aparência visual do objeto especificado.
CWnd::get_accFocus Chamado pela estrutura para recuperar o objeto que tem o foco do teclado.
CWnd::get_accHelp Chamado pela estrutura para recuperar a cadeia de caracteres de Ajuda de propriedade de um objeto.
CWnd::get_accHelpTopic Chamado pela estrutura para recuperar o caminho completo do arquivo WinHelp associado ao objeto especificado e o identificador do tópico apropriado dentro desse arquivo.
CWnd::get_accKeyboardShortcut Chamado pela estrutura para recuperar a tecla de atalho ou a tecla de acesso do objeto especificado.
CWnd::get_accName Chamado pela estrutura para recuperar o nome do objeto especificado.
CWnd::get_accParent Chamado pela estrutura para recuperar a interface IDispatch do pai do objeto.
CWnd::get_accRole Chamado pela estrutura para recuperar informações que descrevem a função do objeto especificado.
CWnd::get_accSelection Chamado pela estrutura para recuperar os filhos selecionados desse objeto.
CWnd::get_accState Chamado pela estrutura para recuperar o estado atual do objeto especificado.
CWnd::get_accValue Chamado pela estrutura para recuperar o valor do objeto especificado.
CWnd::GetActiveWindow Recupera a janela ativa.
CWnd::GetAncestor Recupera o objeto de janela ancestral da janela especificada.
CWnd::GetCapture Recupera o CWnd que tem a captura do mouse.
CWnd::GetCaretPos Recupera as coordenadas do cliente da posição atual do cursor.
CWnd::GetCheckedRadioButton Retorna o ID do botão de opção selecionado no momento em um grupo de botões.
CWnd::GetClientRect Obtém as dimensões da área do cliente CWnd.
CWnd::GetClipboardOwner Recupera um ponteiro para o proprietário atual da área de transferência.
CWnd::GetClipboardViewer Recupera um ponteiro para a primeira janela na cadeia de visualizadores da área de transferência.
CWnd::GetControlUnknown Recupera um ponteiro para um controle ActiveX desconhecido.
CWnd::GetDC Recupera um contexto de dispositivo para a área de cliente.
CWnd::GetDCEx Recupera um contexto de exibição para a área do cliente e habilita o recorte durante o desenho.
CWnd::GetDCRenderTarget Recupera o destino de renderização do contexto do dispositivo (DC) para a janela CWnd.
CWnd::GetDescendantWindow Busca todas as janelas descendentes e retorna a janela com o ID especificada.
CWnd::GetDesktopWindow Recupera a janela da área de trabalho do Windows.
CWnd::GetDlgCtrlID Se CWnd for uma janela filho, chamar essa função retornará seu valor de ID.
CWnd::GetDlgItem Recupera o controle com o ID especificada da caixa de diálogo especificada.
CWnd::GetDlgItemInt Converte o texto de um controle na caixa de diálogo fornecida para um valor inteiro.
CWnd::GetDlgItemText Recupera a legenda ou o texto associado a um controle.
CWnd::GetDSCCursor Recupera um ponteiro para o cursor subjacente definido pelas propriedades DataSource, UserName, Password e SQL de um controle de fonte de dados.
CWnd::GetDynamicLayout Recupera um ponteiro para o objeto gerenciador de layout dinâmico.
CWnd::GetExStyle Retorna os estilos estendidos da janela.
CWnd::GetFocus Recupera o CWnd que tem o foco de entrada no momento.
CWnd::GetFont Recupera a fonte atual.
CWnd::GetForegroundWindow Retorna um ponteiro para a janela de primeiro plano (a janela de nível superior com a qual o usuário está trabalhando no momento).
CWnd::GetIcon Retorna o identificador para um ícone.
CWnd::GetLastActivePopup Determina qual janela pop-up de propriedade de CWnd foi mais recentemente ativa.
CWnd::GetLayeredWindowAttributes Recupera a chave de cor de opacidade e transparência de uma janela em camadas.
CWnd::GetMenu Recupera um ponteiro para a interface especificada.
CWnd::GetNextDlgGroupItem Busca o próximo controle (ou anterior) dentro de um grupo de controles.
CWnd::GetNextDlgTabItem Recupera o primeiro controle com o estilo WS_TABSTOP que segue (ou precede) o controle especificado.
CWnd::GetNextWindow Retorna a próxima janela (ou anterior) na lista do gerenciador de janelas.
CWnd::GetOleControlSite Recupera o site personalizado para o controle ActiveX especificado.
CWnd::GetOpenClipboardWindow Recupera um ponteiro para a janela que atualmente tem a área de transferência aberta.
CWnd::GetOwner Recupera um ponteiro para o proprietário de um CWnd.
CWnd::GetParent Recupera a janela pai de CWnd (se houver).
CWnd::GetParentFrame Recupera a janela de quadro pai do objeto CWnd.
CWnd::GetParentOwner Retorna um ponteiro para a janela pai de uma janela filho.
CWnd::GetProperty Recupera uma propriedade de controle ActiveX.
CWnd::GetRenderTarget Obtém um destino de renderização associado a essa janela.
CWnd::GetSafeHwnd Retorna m_hWnd ou NULL se o ponteiro this for NULL.
CWnd::GetSafeOwner Recupera o proprietário seguro para a janela fornecida.
CWnd::GetScrollBarCtrl Retorna um controle de barra de rolagem irmão.
CWnd::GetScrollBarInfo Recupera informações sobre a barra de rolagem especificada.
CWnd::GetScrollInfo Recupera as informações que a estrutura SCROLLINFO mantém sobre uma barra de rolagem.
CWnd::GetScrollLimit Recupera o limite da barra de rolagem.
CWnd::GetScrollPos Recupera a posição atual de uma caixa de rolagem.
CWnd::GetScrollRange Copia as posições de barra de rolagem mínimas e máximas atuais para a barra de rolagem fornecida.
CWnd::GetStyle Retorna o estilo da janela atual.
CWnd::GetSystemMenu Permite que o aplicativo acesse o menu Controle para cópia e modificação.
CWnd::GetTitleBarInfo Recupera informações sobre a barra de legenda especificada.
CWnd::GetTopLevelFrame Recupera a janela de quadro de nível superior da janela.
CWnd::GetTopLevelOwner Recupera a janela de nível superior.
CWnd::GetTopLevelParent Recupera a janela pai de nível superior da janela.
CWnd::GetTopWindow Retorna a primeira janela filho que pertence ao CWnd.
CWnd::GetUpdateRect Recupera as coordenadas do menor retângulo que envolve completamente a região de atualização CWnd.
CWnd::GetUpdateRgn Recupera a região de atualização CWnd.
CWnd::GetWindow Retorna a janela com a relação especificada para esta janela.
CWnd::GetWindowContextHelpId Recupera o identificador de contexto de ajuda.
CWnd::GetWindowDC Recupera o contexto de exibição de toda a janela, incluindo a barra de legendas, menus e barras de rolagem.
CWnd::GetWindowedChildCount Recupera o número de janelas filho associadas.
CWnd::GetWindowInfo Retorna informações sobre a janela.
CWnd::GetWindowlessChildCount Recupera o número de janelas filho sem janelas associadas.
CWnd::GetWindowPlacement Recupera o estado do show e as posições normais (restauradas), minimizadas e maximizadas de uma janela.
CWnd::GetWindowRect Obtém as coordenadas da tela do CWnd.
CWnd::GetWindowRgn Obtém uma cópia da região de janela de uma janela.
CWnd::GetWindowText Retorna o texto da janela ou o título da legenda (se ele tiver um).
CWnd::GetWindowTextLength Retorna o comprimento do texto ou do título da legenda da janela.
CWnd::HideCaret Oculta o cursor removendo-o da tela de exibição.
CWnd::HiliteMenuItem Realça ou remove o realce de um item de menu (da barra de menus) de nível superior.
CWnd::HtmlHelp Chamado para iniciar o aplicativo HTMLHelp.
CWnd::Invalidate Invalida toda a área de cliente.
CWnd::InvalidateRect Invalida a área do cliente dentro do retângulo especificado adicionando esse retângulo à região de atualização atual.
CWnd::InvalidateRgn Invalida a área do cliente dentro da região especificada adicionando essa região à região de atualização atual.
CWnd::InvokeHelper Invoca um método ou propriedade de controle ActiveX.
CWnd::IsChild Indica se CWnd é uma janela filho ou outro descendente direto da janela especificada.
CWnd::IsD2DSupportEnabled Determina se o suporte a D2D está habilitado.
CWnd::IsDialogMessage Determina se a mensagem determinada se destina à caixa de diálogo sem janela restrita e, se for o caso, a processa.
CWnd::IsDlgButtonChecked Determina se um controle de botão é selecionado.
CWnd::IsDynamicLayoutEnabled Determina se o layout dinâmico está habilitado nesta janela. Se o layout dinâmico estiver habilitado, a posição e o tamanho das janelas filho poderão ser alterados quando o usuário redimensionar a janela pai.
CWnd::IsIconic Determina se CWnd é minimizada (em ícone).
CWnd::IsTouchWindow Especifica se CWnd possui suporte a toque.
CWnd::IsWindowEnabled Determina se a janela está habilitada para entrada de mouse e teclado.
CWnd::IsWindowVisible Determina se a janela é visível.
CWnd::IsZoomed Determina se CWnd é maximizada.
CWnd::KillTimer Encerra um temporizador do sistema.
CWnd::LockWindowUpdate Desabilita ou reabilita o desenho na janela fornecida.
CWnd::MapWindowPoints Converte (mapeia) um conjunto de pontos do espaço de coordenadas da CWnd para o espaço de coordenadas de outra janela.
CWnd::MessageBox Cria e exibe uma janela que contém uma mensagem e legenda fornecidas pelo aplicativo.
CWnd::ModifyStyle Modifica o estilo da janela atual.
CWnd::ModifyStyleEx Modifica os estilos estendidos da janela.
CWnd::MoveWindow Altera a posição e as dimensões do CWnd.
CWnd::NotifyWinEvent Sinaliza ao sistema que ocorreu um evento predefinido.
CWnd::OnAmbientProperty Implemente valores de propriedade ambiente.
CWnd::OnDrawIconicThumbnailOrLivePreview Chamado pela estrutura quando ele precisa obter um bitmap a ser exibido na miniatura da guia do Windows 7 ou no cliente para espiar o aplicativo.
CWnd::OnHelp Manipula a F1 Ajuda dentro do aplicativo (usando o contexto atual).
CWnd::OnHelpFinder Manipula os comandos ID_HELP_FINDER e ID_DEFAULT_HELP.
CWnd::OnHelpIndex Manipula o comando ID_HELP_INDEX e fornece um tópico de Ajuda padrão.
CWnd::OnHelpUsing Manipula o comando ID_HELP_USING.
CWnd::OnToolHitTest Determina se um ponto está no retângulo delimitador da ferramenta especificada e recupera informações sobre a ferramenta.
CWnd::OpenClipboard Abre a Área de Transferência. Outros aplicativos não poderão modificar a área de transferência até que a função CloseClipboard do Windows seja chamada.
CWnd::PaintWindowlessControls Desenha controles sem janelas no contêiner de controle.
CWnd::PostMessage Coloca uma mensagem na fila do aplicativo e retorna sem aguardar a janela para processar a mensagem.
CWnd::PreCreateWindow Chamado antes da criação da janela do Windows anexada a esse objeto CWnd.
CWnd::PreSubclassWindow Permite que outra subclasse necessária ocorra antes de SubclassWindow ser chamada.
CWnd::PreTranslateMessage Usado pela CWinApp para filtrar mensagens de janela antes de serem expedidas para as funções TranslateMessage e DispatchMessage do Windows.
CWnd::Print Desenha a janela atual no contexto do dispositivo especificado.
CWnd::PrintClient Desenha qualquer janela no contexto do dispositivo especificado (geralmente um contexto de dispositivo de impressora).
CWnd::PrintWindow Copia uma janela visual para o contexto do dispositivo especificado, normalmente um controlador de domínio de impressora.
CWnd::RedrawWindow Atualiza um retângulo ou região especificada na área de cliente.
CWnd::RegisterTouchWindow Suporte touch ao registro/cancelamento do registro de janela do Windows.
CWnd::ReleaseDC Libera contextos de cliente e dispositivo de janela, liberando-os para uso por outros aplicativos.
CWnd::RepositionBars Reposiciona as barras de controle na área do cliente.
CWnd::RunModalLoop Recupera, converte ou despacha mensagens para uma janela que está em status restrito.
CWnd::ScreenToClient Converte as coordenadas da tela de um determinado ponto ou retângulo na exibição em coordenadas de cliente.
CWnd::ScrollWindow Rola o conteúdo da área do cliente.
CWnd::ScrollWindowEx Rola o conteúdo da área do cliente. Semelhante a ScrollWindow, com recursos adicionais.
CWnd::SendChildNotifyLastMsg Fornece uma mensagem de notificação para uma janela filho, da janela pai, para que a janela filho possa lidar com uma tarefa.
CWnd::SendDlgItemMessage Envia uma mensagem para o controle especificado.
CWnd::SendMessage Envia uma mensagem para o objeto CWnd e não retorna até que ele tenha processado a mensagem.
CWnd::SendMessageToDescendants Envia uma mensagem para todas as janelas descendentes da janela.
CWnd::SendNotifyMessage Envia a mensagem especificada para a janela e retorna o mais rápido possível, dependendo se o thread de chamada criou a janela.
CWnd::SetActiveWindow Ativa a janela.
CWnd::SetCapture Faz com que todas as entradas subsequentes do mouse sejam enviadas para o CWnd.
CWnd::SetCaretPos Move o cursor para uma posição especificada.
CWnd::SetClipboardViewer Adiciona CWnd à cadeia de janelas que são notificadas sempre que o conteúdo da área de transferência é alterado.
CWnd::SetDlgCtrlID Define o ID de janela ou controle para a janela (que pode ser qualquer janela filho, não apenas um controle em uma caixa de diálogo).
CWnd::SetDlgItemInt Define o texto de um controle para a cadeia de caracteres que representa um valor inteiro.
CWnd::SetDlgItemText Define a legenda ou o texto de um controle na caixa de diálogo especificada.
CWnd::SetFocus Declara o foco de entrada.
CWnd::SetFont Define a fonte atual.
CWnd::SetForegroundWindow Coloca o thread que criou a janela em primeiro plano e ativa a janela.
CWnd::SetIcon Define o identificador como um ícone específico.
CWnd::SetLayeredWindowAttributes Define a chave de cor de opacidade e transparência de uma janela em camadas.
CWnd::SetMenu Define o menu para o menu especificado.
CWnd::SetOwner Altera o proprietário de um CWnd.
CWnd::SetParent Altera a janela pai.
CWnd::SetProperty Define uma propriedade de controle ActiveX.
CWnd::SetRedraw Permite que as alterações em CWnd sejam redesenhadas ou impede que as alterações sejam redesenhadas.
CWnd::SetScrollInfo Define as informações da barra de rolagem.
CWnd::SetScrollPos Define a posição atual de uma caixa de rolagem e, se especificada, redesenha a barra de rolagem para refletir a nova posição.
CWnd::SetScrollRange Define valores mínimos e máximos de posição para a barra de rolagem fornecida.
CWnd::SetTimer Instala um temporizador do sistema que envia uma mensagem WM_TIMER quando disparado.
CWnd::SetWindowContextHelpId Define o identificador de contexto de ajuda.
CWnd::SetWindowPlacement Define o estado da exibição e as posições normais (restauradas), minimizadas e maximizadas de uma janela.
CWnd::SetWindowPos Altera o tamanho, a posição e a ordenação de janelas filho, pop-up e de nível superior.
CWnd::SetWindowRgn Define a região de uma janela.
CWnd::SetWindowText Define o texto da janela ou o título da legenda (se tiver um) para o texto especificado.
CWnd::ShowCaret Mostra o cursor na exibição na posição atual do cursor. Uma vez mostrado, o cursor começa a piscar automaticamente.
CWnd::ShowOwnedPopups Mostra ou oculta as janelas pop-up pertencentes à janela.
CWnd::ShowScrollBar Mostra ou oculta uma barra de rolagem.
CWnd::ShowWindow Mostra ou oculta a janela.
CWnd::SubclassDlgItem Anexa um controle do Windows a um objeto CWnd e o faz rotear mensagens por meio do mapa de mensagens do CWnd.
CWnd::SubclassWindow Anexa uma janela a um objeto CWnd e o faz rotear mensagens por meio do mapa de mensagens do CWnd.
CWnd::UnlockWindowUpdate Desbloqueia uma janela que estava bloqueada com CWnd::LockWindowUpdate.
CWnd::UnsubclassWindow Desanexa uma janela de um objeto CWnd
CWnd::UpdateData Inicializa ou recupera dados de uma caixa de diálogo.
CWnd::UpdateDialogControls Chame para atualizar o estado dos botões de caixa de diálogo e outros controles.
CWnd::UpdateLayeredWindow Atualiza a posição, o tamanho, a forma, o conteúdo e a transluscência de uma janela em camadas.
CWnd::UpdateWindow Atualiza a área de cliente.
CWnd::ValidateRect Invalida a área do cliente dentro do retângulo especificado adicionando esse retângulo à região de atualização atual.
CWnd::ValidateRgn Valida a área do cliente dentro da região especificada removendo essa região da região de atualização atual.
CWnd::WindowFromPoint Identifica a janela que contém o ponto determinado.
CWnd::WinHelp Chamado para iniciar o aplicativo WinHelp.

Métodos protegidos

Nome Descrição
CWnd::Default Chama o procedimento de janela padrão, que fornece processamento padrão para quaisquer mensagens de janela que um aplicativo não processa.
CWnd::DefWindowProc Chama o procedimento de janela padrão, que fornece processamento padrão para quaisquer mensagens de janela que um aplicativo não processa.
CWnd::DoDataExchange Para troca de dados de diálogo e validação. Chamado por UpdateData.
CWnd::GetCurrentMessage Retorna um ponteiro para a mensagem que esta janela está processando no momento. Só deve ser chamado quando estiver em uma função membro do manipulador de mensagens OnMessage.
CWnd::InitDynamicLayout Chamado pela estrutura para inicializar o layout dinâmico da janela.
CWnd::LoadDynamicLayoutResource Carrega informações de layout dinâmico do arquivo de recurso.
CWnd::OnActivate Chamado quando CWnd está sendo ativado ou desativado.
CWnd::OnActivateApp Chamado quando o aplicativo está prestes a ser ativado ou desativado.
CWnd::OnAppCommand Chamado quando o usuário gera um evento de comando de aplicativo.
CWnd::OnAskCbFormatName Chamado por um aplicativo de visualizador de área de transferência quando um proprietário da área de transferência exibirá o conteúdo da área de transferência.
CWnd::OnCancelMode Chamado para permitir que CWnd cancele todos os modos internos, como a captura do mouse.
CWnd::OnCaptureChanged Envia uma mensagem para a janela que está perdendo a captura do mouse.
CWnd::OnChangeCbChain Notifica que uma janela especificada está sendo removida da cadeia.
CWnd::OnChangeUIState Chamado quando o estado da interface do usuário deve ser alterado.
CWnd::OnChar Chamado quando um pressionamento de tecla é convertido em um caractere que não é do sistema.
CWnd::OnCharToItem Chamado por uma caixa de listagem filho com o estilo LBS_WANTKEYBOARDINPUT em resposta a uma mensagem WM_CHAR.
CWnd::OnChildActivate Chamado para várias janelas filho da interface do documento (MDI) sempre que o tamanho ou a posição das alterações CWnd ou CWnd for ativado.
CWnd::OnChildNotify Chamado por uma janela pai para dar a um controle de notificação a chance de responder a uma notificação de controle.
CWnd::OnClipboardUpdate Chamado quando o conteúdo da área de transferência for alterado.
CWnd::OnClose Chamado como um sinal que CWnd deve ser encerrado.
CWnd::OnColorizationColorChanged Chamado quando a política de renderização para a área não cliente foi alterada.
CWnd::OnCommand Chamado quando o usuário seleciona um comando.
CWnd::OnCompacting Chamado quando o Windows detecta que a memória do sistema está baixa.
CWnd::OnCompareItem Chamado para determinar a posição relativa de um novo item em uma caixa de combinação ou caixa de listagem de desenho de proprietário classificado como filho.
CWnd::OnCompositionChanged Chamado para todas as janelas de nível superior quando a composição do DWM (Gerenciador de Janelas da Área de Trabalho) estiver habilitada ou desabilitada.
CWnd::OnContextMenu Chamado quando o usuário clica no botão direito do mouse na janela.
CWnd::OnCopyData Copia dados de um aplicativo para outro.
CWnd::OnCreate Chamado como parte da criação da janela.
CWnd::OnCtlColor Chamado se CWnd for o pai de um controle quando o controle está prestes a ser desenhado.
CWnd::OnDeadChar Chamado quando um pressionamento de tecla se converte em um caractere inativo que não é do sistema (como caracteres de ênfase).
CWnd::OnDeleteItem Chamado quando uma caixa de combinação ou de listagem de desenho de proprietário classificado como filho é destruída ou quando os itens são removidos do controle.
CWnd::OnDestroy Chamado quando CWnd está sendo destruído.
CWnd::OnDestroyClipboard Chamado quando a área de transferência é esvaziada por meio de uma chamada para a função EmptyClipboard do Windows.
CWnd::OnDeviceChange Notifica um driver de dispositivo ou aplicativo de uma alteração na configuração de hardware de um dispositivo ou do computador.
CWnd::OnDevModeChange Chamado para todas as janelas de nível superior quando o usuário altera as configurações do modo de dispositivo.
CWnd::OnDrawClipboard Chamado quando o conteúdo da área de transferência é alterado.
CWnd::OnDrawItem Chamado quando um aspecto visual de um controle de botão filho de desenho do proprietário, um controle de caixa de combinação, um controle de caixa de listagem ou um menu precisa ser desenhado.
CWnd::OnDropFiles Chamado quando o usuário libera o botão esquerdo do mouse sobre uma janela que se registrou como o destinatário dos arquivos removidos.
CWnd::OnEnable Chamado quando CWnd está habilitado ou desabilitado.
CWnd::OnEndSession Chamado quando a sessão está terminando.
CWnd::OnEnterIdle Chamado para informar o procedimento de janela principal de um aplicativo de que uma caixa de diálogo de janela restrita ou um menu está inserindo um estado ocioso.
CWnd::OnEnterMenuLoop Chamado quando um loop modal de menu é inserido.
CWnd::OnEnterSizeMove Chamado depois que a janela afetada entra em um loop modal de movimentação ou dimensionamento.
CWnd::OnEraseBkgnd Chamado quando o plano de fundo da janela precisa ser apagado.
CWnd::OnExitMenuLoop Chamado quando um loop modal de menu foi encerrado.
CWnd::OnExitSizeMove Chamado após a janela afetada sair de um loop modal móvel ou de dimensionamento.
CWnd::OnFontChange Chamado quando o pool de recursos de fonte é alterado.
CWnd::OnGetDlgCode Chamado para um controle para que o controle possa processar a tecla de direção e a entrada da tecla TAB.
CWnd::OnGetMinMaxInfo Chamado sempre que o Windows precisar saber a posição ou dimensões maximizadas, ou o tamanho mínimo ou máximo de acompanhamento.
CWnd::OnHelpInfo Chamado pela estrutura quando o usuário pressiona a tecla F1.
CWnd::OnHotKey Chamado quando o usuário pressiona uma tecla de acesso em todo o sistema.
CWnd::OnHScroll Chamado quando o usuário clica na barra de rolagem horizontal do CWnd.
CWnd::OnHScrollClipboard Chamado quando o proprietário da área de transferência deve rolar a imagem da área de transferência, invalidar a seção adequada e atualizar os valores da barra de rolagem.
CWnd::OnIconEraseBkgnd Chamado quando CWnd é minimizada (em ícone) e a tela de fundo do ícone deve ser preenchida antes de pintar o ícone.
CWnd::OnInitMenu Chamado quando um menu está prestes a ficar ativo.
CWnd::OnInitMenuPopup Chamado quando um menu pop-up está prestes a ficar ativo.
CWnd::OnInputDeviceChange Chamado quando um dispositivo de E/S é adicionado ou removido do sistema.
CWnd::OnInputLangChange Chamado após uma alteração do idioma de entrada de um aplicativo.
CWnd::OnInputLangChangeRequest Chamado quando o usuário escolhe um novo idioma de entrada.
CWnd::OnKeyDown Chamado quando uma tecla que não é do sistema é pressionada.
CWnd::OnKeyUp Chamado quando uma tecla que não é do sistema é liberada.
CWnd::OnKillFocus Chamado imediatamente antes de CWnd perder o foco de entrada.
CWnd::OnLButtonDblClk Chamado quando o usuário clica duas vezes no botão esquerdo do mouse.
CWnd::OnLButtonDown Chamado quando o usuário clica no botão esquerdo do mouse.
CWnd::OnLButtonUp Chamado quando o usuário libera o botão esquerdo do mouse.
CWnd::OnMButtonDblClk Chamado quando o usuário clica duas vezes no botão do meio do mouse.
CWnd::OnMButtonDown Chamado quando o usuário clica no botão do meio do mouse.
CWnd::OnMButtonUp Chamado quando o usuário libera o botão do meio do mouse.
CWnd::OnMDIActivate Chamado quando uma janela filho MDI é ativada ou desativada.
CWnd::OnMeasureItem Chamado para uma caixa de combinação filho de desenho de proprietário, caixa de listagem ou item de menu quando o controle é criado. CWnd informa o Windows sobre as dimensões do controle.
CWnd::OnMenuChar Chamado quando o usuário pressiona um caractere mnemônico de menu que não corresponde a nenhum dos mnemônicos predefinidos no menu atual.
CWnd::OnMenuDrag Chamado quando o usuário começa a arrastar um item de menu.
CWnd::OnMenuGetObject Chamado quando o cursor do mouse insere um item de menu ou se move do centro do item para a parte superior ou inferior do item.
CWnd::OnMenuRButtonUp Chamado quando o usuário libera o botão direito do mouse enquanto o cursor está em um item de menu.
CWnd::OnMenuSelect Chamado quando o usuário seleciona um item no menu.
CWnd::OnMouseActivate Chamado quando o cursor está em uma janela inativa e o usuário clica em um botão do mouse.
CWnd::OnMouseHover Chamado quando o cursor passa o mouse sobre a área do cliente da janela pelo período de tempo especificado em uma chamada anterior para TrackMouseEvent.
CWnd::OnMouseHWheel Chamado quando a roda de rolagem horizontal do mouse é inclinada ou girada.
CWnd::OnMouseLeave Chamado quando o cursor sai da área do cliente da janela especificada em uma chamada anterior para TrackMouseEvent.
CWnd::OnMouseMove Chamado quando o cursor do mouse se move.
CWnd::OnMouseWheel Chamado quando um usuário gira a roda do mouse. Usa o tratamento de mensagens do Windows NT 4.0.
CWnd::OnMove Chamado depois que a posição do CWnd foi alterada.
CWnd::OnMoving Indica que um usuário está movendo um objeto CWnd.
CWnd::OnNcActivate Chamado quando a área não cliente precisa ser alterada para indicar um estado ativo ou inativo.
CWnd::OnNcCalcSize Chamado quando o tamanho e a posição da área do cliente precisam ser calculados.
CWnd::OnNcCreate Chamado antes de OnCreate quando a área não cliente está sendo criada.
CWnd::OnNcDestroy Chamado quando a área não cliente está sendo destruída.
CWnd::OnNcHitTest Chamado pelo Windows sempre que o mouse for movido se CWnd contiver o cursor ou tiver capturado a entrada do mouse com SetCapture.
CWnd::OnNcLButtonDblClk Chamado quando o usuário clica duas vezes no botão esquerdo do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcLButtonDown Chamado quando o usuário clica no botão esquerdo do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcLButtonUp Chamado quando o usuário libera o botão esquerdo do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcMButtonDblClk Chamado quando o usuário clica duas vezes no botão do meio do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcMButtonDown Chamado quando o usuário clica no botão do meio do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcMButtonUp Chamado quando o usuário libera o botão do meio do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcMouseHover Chamado quando o cursor passa o mouse sobre a área não cliente da janela pelo período de tempo especificado em uma chamada anterior para TrackMouseEvent.
CWnd::OnNcMouseLeave A estrutura chama essa função membro quando o cursor deixa a área não cliente da janela especificada em uma chamada anterior para TrackMouseEvent.
CWnd::OnNcMouseMove Chamado quando o cursor é movido dentro de uma área não cliente de CWnd.
CWnd::OnNcPaint Chamado quando a área não cliente precisa de pintura.
CWnd::OnNcRButtonDblClk Chamado quando o usuário clica duas vezes no botão direito do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcRButtonDown Chamado quando o usuário clica no botão direito do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcRButtonUp Chamado quando o usuário libera o botão direito do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.
CWnd::OnNcRenderingChanged Chamado quando a política de renderização para a área não cliente foi alterada.
CWnd::OnNcXButtonDblClk Chamado quando o usuário clica duas vezes XBUTTON1 ou XBUTTON2 enquanto o cursor está na área não cliente de uma janela.
CWnd::OnNcXButtonDown Chamado quando o usuário clica no XBUTTON1 ou XBUTTON2 do mouse enquanto o cursor está na área não cliente de uma janela.
CWnd::OnNcXButtonUp Chamado quando o usuário libera o XBUTTON1 ou XBUTTON2 do mouse enquanto o cursor está na área não cliente de uma janela.
CWnd::OnNextMenu Chamado quando a tecla de direção direita ou esquerda é usada para alternar entre a barra de menus e o menu do sistema.
CWnd::OnNotify Chamado pela estrutura para informar uma janela pai que ocorreu um evento em um de seus controles ou que o controle precisa de informações.
CWnd::OnNotifyFormat Chamado para determinar se a janela atual aceita estruturas ANSI ou Unicode na mensagem de notificação WM_NOTIFY.
CWnd::OnPaint Chamado para repintar uma parte da janela.
CWnd::OnPaintClipboard Chamado quando a área de cliente do visualizador da área de transferência precisa ser repintado.
CWnd::OnPaletteChanged Chamado para permitir que janelas que usam uma paleta de cores realizem suas paletas lógicas e atualizem suas áreas de cliente.
CWnd::OnPaletteIsChanging Informa outros aplicativos quando um aplicativo vai realizar sua paleta lógica.
CWnd::OnParentNotify Chamado quando uma janela filho é criada ou destruída ou quando o usuário clica em um botão do mouse enquanto o cursor está sobre a janela filho.
CWnd::OnPowerBroadcast Chamado quando um evento de gerenciamento de energia ocorre.
CWnd::OnQueryDragIcon Chamado quando uma CWnd minimizada (em ícone) está prestes a ser arrastada pelo usuário.
CWnd::OnQueryEndSession Chamado quando o usuário opta por encerrar a sessão do Windows.
CWnd::OnQueryNewPalette Informa CWnd que ele está prestes a receber o foco de entrada.
CWnd::OnQueryOpen Chamado quando CWnd é um ícone e o usuário solicita que o ícone seja aberto.
CWnd::OnQueryUIState Chamado para recuperar o estado da interface do usuário para uma janela.
CWnd::OnRawInput Chamado quando a janela atual obtém uma entrada bruta.
CWnd::OnRButtonDblClk Chamado quando o usuário clica duas vezes no botão direito do mouse.
CWnd::OnRButtonDown Chamado quando o usuário clica no botão direito do mouse.
CWnd::OnRButtonUp Chamado quando o usuário libera o botão direito do mouse.
CWnd::OnRenderAllFormats Chamado quando o aplicativo proprietário está sendo destruído e precisa renderizar todos os seus formatos.
CWnd::OnRenderFormat Chamado para o proprietário da área de transferência quando um formato específico com renderização atrasada precisa ser renderizado.
CWnd::OnSessionChange Chamado para notificar um aplicativo de uma alteração no estado da sessão.
CWnd::OnSetCursor Chamado se a entrada do mouse não for capturada e o mouse causar movimento do cursor dentro de uma janela.
CWnd::OnSetFocus Chamado após CWnd obter o foco de entrada.
CWnd::OnSettingChange Chamado quando a função SystemParametersInfo Win32 altera uma configuração em todo o sistema.
CWnd::OnShowWindow Chamado quando CWnd deve ser ocultado ou mostrado.
CWnd::OnSize Chamado após o tamanho da CWnd ser alterado.
CWnd::OnSizeClipboard Chamado quando o tamanho da área de cliente da janela Visualizador de área de transferência é alterado.
CWnd::OnSizing Indica que o usuário está redimensionando o retângulo.
CWnd::OnSpoolerStatus Chamado do Gerenciador de Impressão sempre que um trabalho é adicionado ou removido da fila do Gerenciador de Impressão.
CWnd::OnStyleChanged Indica que a função SetWindowLong do Windows alterou um ou mais estilos da janela.
CWnd::OnStyleChanging Indica que a função SetWindowLong do Windows está prestes a alterar um ou mais estilos da janela.
CWnd::OnSysChar Chamado quando um pressionamento de tecla é convertido em um caractere do sistema.
CWnd::OnSysColorChange Chamado para todas as janelas de nível superior quando uma alteração é feita na configuração de cor do sistema.
CWnd::OnSysCommand Chamado quando o usuário seleciona um comando no menu Controle ou quando o usuário seleciona o botão Maximizar ou Minimizar.
CWnd::OnSysDeadChar Chamado quando um pressionamento de tecla se converte em um caractere inativo do sistema (como caracteres de ênfase).
CWnd::OnSysKeyDown Chamado quando o usuário segura a tecla ALT e pressiona outra tecla.
CWnd::OnSysKeyUp Chamado quando o usuário libera uma tecla que foi pressionada enquanto a tecla ALT era mantida pressionada.
CWnd::OnTCard Chamado quando o usuário clica em um botão autorizável.
CWnd::OnTimeChange Chamado para todas as janelas de nível superior após a alteração da hora do sistema.
CWnd::OnTimer Chamado após cada intervalo especificado em SetTimer.
CWnd::OnTouchInput Processa entradas únicas do touch do Windows.
CWnd::OnTouchInputs Processa entradas do touch do Windows.
CWnd::OnUniChar Chamado quando uma tecla é pressionada. Ou seja, a janela atual tem o foco do teclado e uma mensagem WM_KEYDOWN é convertida pela função TranslateMessage.
CWnd::OnUnInitMenuPopup Chamado quando um menu suspenso ou submenu é destruído.
CWnd::OnUpdateUIState Chamado para alterar o estado da interface do usuário para a janela especificada e todas as janelas filho.
CWnd::OnUserChanged Chamado após o usuário ter feito logon ou logoff.
CWnd::OnVKeyToItem Chamado por uma caixa de listagem de propriedade de CWnd em resposta a uma mensagemWM_KEYDOWN.
CWnd::OnVScroll Chamado quando o usuário clica na barra de rolagem vertical da janela.
CWnd::OnVScrollClipboard Chamado quando o proprietário deve rolar a imagem da área de transferência, invalidar a seção adequada e atualizar os valores da barra de rolagem.
CWnd::OnWindowPosChanged Chamado quando o tamanho, a posição ou a ordem Z são alterados como resultado de uma chamada para SetWindowPos ou de outra função de gerenciamento de janela.
CWnd::OnWindowPosChanging Chamado quando o tamanho, a posição ou a ordem Z estão prestes a ser alterados como resultado de uma chamada para SetWindowPos ou de outra função de gerenciamento de janela.
CWnd::OnWinIniChange Chamado para todas as janelas de nível superior após o arquivo de inicialização do Windows, WIN.INI, ser alterado.
CWnd::OnWndMsg Indica se uma mensagem de janela foi tratada.
CWnd::OnXButtonDblClk Chamado quando o usuário clica duas vezes em XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela.
CWnd::OnXButtonDown Chamado quando o usuário clica em XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela.
CWnd::OnXButtonUp Chamado quando o usuário libera XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela.
CWnd::PostNcDestroy Essa função virtual é chamada pela função OnNcDestroy padrão depois que a janela é destruída.
CWnd::ReflectChildNotify Função auxiliar, que reflete uma mensagem para sua origem.
CWnd::ReflectLastMsg Reflete a última mensagem para a janela filho.
CWnd::ResizeDynamicLayout Chamado pela estrutura quando o tamanho da janela é alterado para ajustar o layout das janelas filho, se o layout dinâmico estiver habilitado para a janela.
CWnd::WindowProc Fornece um procedimento de janela para um CWnd. O padrão despacha mensagens por meio do mapa da mensagem.

Operadores públicos

Nome Descrição
CWnd::operator HWND Chame para obter um identificador para uma janela.
CWnd::operator != Determina se uma janela não é a mesma que a janela cujo identificador é m_hWnd.
CWnd::operator == Determina se uma janela é a mesma que a janela cujo identificador é m_hWnd.

Membros de Dados Públicos

Nome Descrição
CWnd::m_hWnd Indica o HWND anexado a esse CWnd.

Comentários

Um objeto CWnd é distinto de uma janela do Windows, mas os dois estão fortemente vinculados. Um objeto CWnd é criado ou destruído pelo construtor e destruidor CWnd. A janela do Windows, por outro lado, é uma estrutura de dados interna do Windows que é criada por uma função membro Create e destruída pelo destruidor virtual CWnd. A função DestroyWindow destrói a janela do Windows sem destruir o objeto.

A classe CWnd e o mecanismo de mapa de mensagens ocultam a função WndProc. As mensagens de notificação do Windows de entrada são roteadas automaticamente por meio do mapa de mensagens para as funções de membro OnMessage CWnd adequadas. Você substitui uma função membro OnMessage para tratar uma mensagem específica de um membro em suas classes derivadas.

A classe CWnd também permite criar uma janela filho do Windows para seu aplicativo. Derive uma classe de CWnd e adicione variáveis de membro à classe derivada para armazenar dados específicos para seu aplicativo. Implemente funções membro do manipulador de mensagens e um mapa de mensagens na classe derivada para especificar o que acontecerá quando as mensagens forem direcionadas para a janela.

Você cria uma janela filho em duas etapas. Primeiro, chame o construtor CWnd para construir o objeto CWnd. Em seguida, chame a função membro Create para criar o controle e anexá-lo ao objeto CWnd.

Quando o usuário encerrar a janela filho, destrua o objeto CWnd ou chame a função membro DestroyWindow para remover a janela e destruir suas estruturas de dados.

Na biblioteca Microsoft Foundation Class, outras classes são derivadas por CWnd para fornecer tipos de janela específicos. Muitas dessas classes, incluindo CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView e CDialog, foram projetadas para derivação adicional. As classes de controle derivadas por CWnd, por exemplo, CButton, podem ser usadas diretamente ou podem ser usadas para derivação adicional de classes.

Para obter mais informações sobre como usar CWnd, consulte Frame Windows e Objetos de Janela.

Hierarquia de herança

CObject

CCmdTarget

CWnd

Requisitos

Cabeçalho: afxwin.h

CWnd::accDoDefaultAction

Chamado pela estrutura para executar a ação padrão do objeto.

virtual HRESULT accDoDefaultAction(VARIANT varChild);

Parâmetros

varChild
Especifica se a ação padrão a ser invocada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para executar a ação padrão do objeto) ou um ID filho (para executar a ação padrão de um dos elementos filho do objeto).

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados em IAccessible::accDoDefaultAction no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função na classe derivada CWnd para executar a ação padrão do objeto. Para obter mais informações, consulte IAccessible::accDoDefaultAction no SDK do Windows.

CWnd::accHitTest

Chamado pela estrutura para recuperar o elemento filho ou o objeto filho em um determinado ponto na tela.

virtual HRESULT accHitTest(
    long xLeft,
    long yTop,
    VARIANT* pvarChild);

Parâmetros

xLeft
Coordenada X do ponto a passar pelo teste de clique (em unidades de tela).

yTop
Coordenada Y do ponto a passar pelo teste de clique (em unidades de tela).

pvarChild
Recebe informações que identificam o objeto no ponto especificado por xLeft e yTop. Consulte pvarID em IAccessible::accHitTest no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::accHitTest no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::accHitTest no SDK do Windows.

CWnd::accLocation

Chamado pela estrutura para recuperar a localização do objeto especificado na tela atual.

virtual HRESULT accLocation(
    long* pxLeft,
    long* pyTop,
    long* pcxWidth,
    long* pcyHeight,
    VARIANT varChild);

Parâmetros

pxLeft
Recebe a coordenada x do canto superior esquerdo do objeto (em unidades de tela).

pyTop
Recebe a coordenada y do canto superior esquerdo do objeto (em unidades de tela).

pcxWidth
Recebe a largura do objeto (em unidades de tela).

pcyHeight
Recebe a altura do objeto (em unidades de tela).

varChild
Especifica se o local a ser recuperado é o do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::accLocation no SDK do Windows.

Comentários

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::accLocation no SDK do Windows.

CWnd::accNavigate

Chamado pela estrutura para percorrer para outro elemento de interface do usuário dentro de um contêiner e, se possível, recuperar o objeto.

virtual HRESULT accNavigate(
    long navDir,
    VARIANT varStart,
    VARIANT* pvarEndUpAt);

Parâmetros

navDir
Especifica a direção a ser navegada. Consulte navDir em IAccessible::accNavigate no SDK do Windows.

varStart
Especifica a posição inicial. Consulte varStart em IAccessible::accNavigate no SDK do Windows.

pvarEndUpAt
Recebe informações sobre o objeto de interface do usuário de destino. Consulte pvarEnd em IAccessible::accNavigate no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::accNavigate no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::accNavigate no SDK do Windows.

CWnd::accSelect

Chamado pela estrutura para modificar a seleção ou mover o foco do teclado do objeto especificado.

virtual HRESULT accSelect(
    long flagsSelect,
    VARIANT varChild);

Parâmetros

flagsSelect
Especifica como alterar a seleção ou o foco atual. Consulte flagsSelect em IAccessible::accSelect no SDK do Windows.

varChild
Especifica o objeto a ser selecionado. Esse parâmetro pode ser ou CHILDID_SELF (para selecionar o próprio objeto) ou um ID filho (para selecionar um dos objetos filhos do objeto).

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::accSelect no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::accSelect no SDK do Windows.

CWnd::AnimateWindow

Produz efeitos especiais ao mostrar ou ocultar janelas.

BOOL AnimateWindow(
    DWORD dwTime,
    DWORD dwFlags);

Parâmetros

dwTime
Especifica quanto tempo leva para reproduzir a animação, em milissegundos. Normalmente, uma animação leva 200 milissegundos para ser reproduzida.

dwFlags
Especifica o tipo de animação. Para obter uma lista de valores possíveis, consulte AnimateWindow.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função AnimateWindow, conforme descrito no SDK do Windows.

CWnd::ArrangeIconicWindows

Organiza todas as janelas filho minimizadas (em ícones).

UINT ArrangeIconicWindows();

Valor de retorno

A altura de uma linha de ícones se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro também organiza ícones na janela da área de trabalho, que cobre toda a tela. A função membro GetDesktopWindow recupera um ponteiro para o objeto da janela da área de trabalho.

Para organizar janelas filho MDI em ícones em uma janela do cliente MDI, chame CMDIFrameWnd::MDIIconArrange.

Exemplo

// arrange minimized MDI child windows
// called from menu item; CMdiChildFrame is derived from CMDIChildWnd
void CMdiChildFrame::OnActionArrangeIconicWindows()
{
   UINT height = GetParent()->ArrangeIconicWindows();   
   TRACE(_T("height = %d\n"), height);
}

CWnd::Attach

Anexa uma janela do Windows a um objeto CWnd.

BOOL Attach(HWND hWndNew);

Parâmetros

hWndNew
Especifica um identificador para uma janela do Windows.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Exemplo

Este exemplo mostra como usar Attach e Detach para mapear a janela do cliente MDI.

// Declare a CWnd member of CMainFrame
public:
CWnd m_wndMDIClient;

 

// detach MDI client window in CMainFrame destructor
m_wndMDIClient.Detach();

 

// In CMainFrame::OnCreate, attach MDI client window

if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
   return -1;

// attach MDI client window
if (m_wndMDIClient.Attach(m_hWndMDIClient) == 0)
{
   TRACE(_T("Failed to attach MDIClient.\n"));
   return -1; // fail to create
}

CWnd::BeginModalState

Chame essa função membro para tornar uma janela de quadro restrita.

virtual void BeginModalState();

CWnd::BeginPaint

Prepara CWnd para pintura e preenche uma estrutura de dados PAINTSTRUCT com informações sobre a pintura.

CDC* BeginPaint(LPPAINTSTRUCT lpPaint);

Parâmetros

lpPaint
Aponta para a estrutura PAINTSTRUCT que deve receber informações de pintura.

Valor de retorno

Identifica o contexto do dispositivo para CWnd. O ponteiro pode ser temporário e não deve ser armazenado para além do escopo do EndPaint.

Comentários

A estrutura de tinta contém uma estrutura de dados RECT que tem o menor retângulo que inclui completamente a região de atualização e um sinalizador que especifica se a tela de fundo foi apagada.

A região de atualização é definida pelas funções membro Invalidate, InvalidateRectou InvalidateRgn e pelo sistema depois de dimensionar, mover, criar, rolar ou executar qualquer outra operação que afete a área do cliente. Se a região de atualização estiver marcada para apagar, BeginPaint envia uma mensagem WM_ONERASEBKGND.

Não chame a função membro BeginPaint, exceto em resposta a uma mensagem WM_PAINT. Cada chamada para a função membro BeginPaint deve ter uma chamada correspondente para a função membro EndPaint. Se o cursor estiver na área a ser pintada, a função membro BeginPaint ocultará automaticamente o cursor para evitar que ele seja apagado.

Exemplo

// Use BeginPaint and EndPaint when responding to WM_PAINT message
// An alternative method is to use CPaintDC in place of
// BeginPaint and EndPaint
void CMdiView::OnPaint()
{
   PAINTSTRUCT ps;
   CDC *pDC = BeginPaint(&ps);

   pDC->Rectangle(CRect(0, 0, 100, 100));

   EndPaint(&ps);

   // Do not call CView::OnPaint() for painting messages
}

CWnd::BindDefaultProperty

Associa a propriedade de limite simples padrão do objeto de chamada (como um controle de edição), conforme marcado na biblioteca de tipos, ao cursor subjacente definido pelas propriedades do controle de fonte de dados DataSource, UserName, Password e SQL.

void BindDefaultProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    LPCTSTR szFieldName,
    CWnd* pDSCWnd);

Parâmetros

dwDispID
Especifica o DISPID de uma propriedade em um controle associado a dados que deve ser associado a um controle de fonte de dados.

vtProp
Especifica o tipo da propriedade a ser associada. Por exemplo: VT_BSTR, VT_VARIANT, e assim por diante.

szFieldName
Especifica o nome da coluna, no cursor fornecido pelo controle de fonte de dados, ao qual a propriedade será associada.

pDSCWnd
Aponta para a janela que hospeda o controle de fonte de dados ao qual a propriedade será associada. Chame GetDlgItem com o ID do recurso da janela de host do DCS para recuperar esse ponteiro.

Comentários

O objeto CWnd no qual você chama essa função deve ser um controle associado a dados.

Exemplo

BindDefaultProperty pode ser usado no seguinte contexto:

BOOL CMyDlg::OnInitDialog()
{
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL1);
   pMyBound->BindDefaultProperty(0x1, VT_BSTR, _T("ContactFirstName"), pDSC);
   return TRUE;
}

CWnd::BindProperty

Associa uma propriedade associada ao cursor em um controle associado a dados (como um controle de grade) a um controle de fonte de dados e registra essa relação com o gerenciador de associação MFC.

void BindProperty(
    DISPID dwDispId,
    CWnd* pWndDSC);

Parâmetros

dwDispId
Especifica o DISPID de uma propriedade em um controle associado a dados que deve ser associado a um controle de fonte de dados.

pWndDSC
Aponta para a janela que hospeda o controle de fonte de dados ao qual a propriedade será associada. Chame GetDlgItem com o ID do recurso da janela de host do DCS para recuperar esse ponteiro.

Comentários

O objeto CWnd no qual você chama essa função deve ser um controle associado a dados.

Exemplo

BindProperty pode ser usado no seguinte contexto:

BOOL CMyDlg::OnInitDialog()
{
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
   pMyBound->BindProperty(0x1, pDSC);
   return TRUE;
}

CWnd::BringWindowToTop

Coloca CWnd no topo de uma pilha de janelas sobrepostas.

void BringWindowToTop();

Comentários

Além disso, BringWindowToTop ativa janelas filho MDI, pop-up e de nível superior. A função membro BringWindowToTop deve ser usada para descobrir qualquer janela que esteja parcial ou completamente obscurecida por qualquer janela sobreposta.

Essa função apenas chama a função BringWindowToTop do Win32. Chame a função SetWindowPos para alterar a posição de uma janela na ordem Z. A função BringWindowToTop não altera o estilo da janela para torná-la uma janela de nível superior. Para obter mais informações, consulte Qual é a diferença entre HWND_TOP HWND_TOPMOST e

Exemplo

// Moves MDI child windows to the top when a mouse passes
// over it. CMdiView is derived from CView.
void CMdiView::OnMouseMove(UINT nFlags, CPoint point) 
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   GetParentFrame()->BringWindowToTop();
}

CWnd::CalcWindowRect

Calcula o retângulo da janela que pode conter o retângulo do cliente especificado.

virtual void CalcWindowRect(
    LPRECT lpClientRect,
    UINT nAdjustType = adjustBorder);

Parâmetros

lpClientRect
[in, out] Ponteiro para uma estrutura de retângulo. Na entrada, essa estrutura contém o retângulo do cliente. Após a conclusão do método, essa estrutura contém o retângulo da janela que pode conter o retângulo do cliente especificado.

nAdjustType
[in] Use CWnd::adjustBorder para calcular coordenadas de janela sem o estilo WS_EX_CLIENTEDGE; caso contrário, use CWnd::adjustOutside.

Comentários

O tamanho do retângulo da janela calculada não inclui espaço para uma barra de menus.

Para mais restrições de uso, consulte AdjustWindowRectEx.

Exemplo

// Uses CalcWindowRect to determine size for new CFrameWnd
// based on the size of the current view. The end result is a
// top level frame window of the same size as CMdiView's frame.
void CMdiView::OnMyCreateFrame()
{
   CFrameWnd *pFrameWnd = new CFrameWnd;
   CRect myRect;
   GetClientRect(myRect);
   pFrameWnd->Create(NULL, _T("My Frame"));
   pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder);
   pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
   pFrameWnd->ShowWindow(SW_SHOW);
}

CWnd::CancelToolTips

Chame essa função membro para remover uma dica de ferramenta da tela se uma dica de ferramenta for exibida no momento.

static void PASCAL CancelToolTips(BOOL bKeys = FALSE);

Parâmetros

bKeys
TRUE para cancelar dicas de ferramenta quando uma tecla é pressionada e definir o texto da barra de status como padrão; caso contrário, FALSE.

Comentários

Observação

O uso dessa função membro não tem efeito sobre as dicas de ferramenta gerenciadas pelo código. Ele afeta apenas o controle de dica de ferramenta gerenciado por CWnd::EnableToolTips.

Exemplo

// In this example, tool tips were set up to
// pop up when the user moves the mouse
// over this edit control.
// If the mouse is moved to the upper left-hand
// corner, the tool tip would disappear because of
// calling CancelToolTips.
void CMyEdit::OnMouseMove(UINT nFlags, CPoint point)
{
   CRect corner(0, 0, 10, 10);
   if (corner.PtInRect(point))
      CancelToolTips();
   CEdit::OnMouseMove(nFlags, point);
}

CWnd::CenterWindow

Centraliza uma janela em relação ao pai.

void CenterWindow(CWnd* pAlternateOwner = NULL);

Parâmetros

pAlternateOwner
Ponteiro para uma janela alternativa em relação à qual ela será centralizada (diferente da janela pai).

Comentários

Normalmente chamado por CDialog::OnInitDialogpara centralizar caixas de diálogo em relação à janela principal do aplicativo. Por padrão, a função centraliza janelas filho em relação à janela pai e janelas pop-up em relação à proprietária. Se a janela pop-up não for de propriedade, ela será centralizada em relação à tela. Para centralizar uma janela em relação a uma janela específica que não seja a proprietária ou o pai, o parâmetro pAlternateOwner pode ser definido como uma janela válida. Para forçar a centralização em relação à tela, passe o valor retornado por CWnd::GetDesktopWindow como pAlternateOwner.

Exemplo

BOOL CAboutDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   CenterWindow();

   return TRUE;
}

CWnd::ChangeClipboardChain

Remove CWnd da cadeia de visualizadores da área de transferência e faz a janela especificada pelo hWndNext descendente do ancestral CWnd na cadeia.

BOOL ChangeClipboardChain(HWND hWndNext);

Parâmetros

hWndNext
Identifica a janela a seguir CWnd na cadeia de visualizadores da área de transferência.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

CWnd::CheckDlgButton

Seleciona (coloca uma marca de seleção ao lado) ou limpa (remove uma marca de seleção) um botão, ou altera o estado de um botão de três estados.

void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parâmetros

nIDButton
Especifica o botão a ser modificado.

nCheck
Especifica a ação a ser tomada. Se nCheck é diferente de zero, a função membro CheckDlgButton colocará uma marca de seleção ao lado do botão; se 0, a marca de seleção será removida. Para botões de três estados, se nCheck for 2, o estado do botão será indeterminado.

Comentários

A função CheckDlgButton envia uma mensagem BM_SETCHECK para o botão especificado.

Exemplo

// Sets 3 check buttons in various ways.  Note BST_INDETERMINATE
// requires BS_3STATE or BS_AUTO3STATE in the button's style.
void CMyDlg::OnMarkButtons()
{
   CheckDlgButton(IDC_CHECK1, BST_UNCHECKED);     // 0
   CheckDlgButton(IDC_CHECK2, BST_CHECKED);       // 1
   CheckDlgButton(IDC_CHECK3, BST_INDETERMINATE); // 2
}

CWnd::CheckRadioButton

Seleciona (adiciona uma marca de seleção a) um determinado botão de opção em um grupo e limpa (remove uma marca de seleção de) todos os outros botões de opção no grupo.

void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Parâmetros

nIDFirstButton
Especifica o identificador inteiro do primeiro botão de opção no grupo.

nIDLastButton
Especifica o identificador inteiro do último botão de opção no grupo.

nIDCheckButton
Especifica o identificador inteiro do botão de opção a ser selecionado.

Comentários

A função CheckRadioButton envia uma mensagem BM_SETCHECK para o botão de opção especificado.

Exemplo

// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
   CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}

CWnd::ChildWindowFromPoint

Determina qual, se houver, das janelas filho que pertencem ao CWndcontém o ponto especificado.

CWnd* ChildWindowFromPoint(POINT point) const;

CWnd* ChildWindowFromPoint(
    POINT point,
    UINT nFlags) const;

Parâmetros

point
Especifica as coordenadas do cliente do ponto a ser testado.

nflags
Especifica quais controles filho ignorar. Esse parâmetro pode ser uma combinação dos seguintes valores:

Valor Significado
CWP_ALL Não ignora nenhuma janela filho
CWP_SKIPINVISIBLE Ignora janelas filho invisíveis
CWP_SKIPDISABLED Ignora janelas filho desabilitadas
CWP_SKIPTRANSPARENT Ignora janelas filho transparentes

Valor de retorno

Identifica a janela filho que contém o ponto. É NULL se o ponto estiver fora da área do cliente. Se o ponto estiver dentro da área do cliente, mas não estiver contido em nenhuma janela filho, CWnd será retornado.

Essa função membro retornará uma janela filho oculta ou desabilitada que contém o ponto especificado.

Mais de uma janela pode conter o ponto determinado. No entanto, essa função retorna apenas o CWnd* da primeira janela encontrada que contém o ponto.

O CWnd* retornado pode ser temporário e não deve ser armazenado para uso posterior.

Exemplo

void CMyDlg::OnFindCenterChild() 
{
   CRect rect;
   GetClientRect(&rect);
   CWnd* pWnd = ChildWindowFromPoint(
      CPoint(rect.Width()/2, rect.Height()/2), 
      // Top left is always 0, 0.
      CWP_SKIPINVISIBLE);
   TRACE(_T("Center window is 0x%08x\n"), pWnd->m_hWnd);
}

CWnd::ClientToScreen

Converte as coordenadas do cliente de um determinado ponto ou retângulo na exibição em coordenadas de tela.

void ClientToScreen(LPPOINT lpPoint) const;  void ClientToScreen(LPRECT lpRect) const;

Parâmetros

lpPoint
Aponta para uma estrutura POINT ou objeto CPoint que contém as coordenadas do cliente a serem convertidas.

lpRect
Aponta para uma estrutura RECT ou objeto CRect que contém as coordenadas do cliente a serem convertidas.

Comentários

A função membro ClientToScreen usa as coordenadas do cliente na estrutura POINT ou RECT ou no objeto CPoint ou CRect apontado por lpPoint ou lpRect para calcular novas coordenadas de tela; em seguida, substitui as coordenadas na estrutura pelas novas coordenadas. As novas coordenadas de tela são relativas ao canto superior esquerdo da exibição do sistema.

A função membro ClientToScreen pressupõe que o ponto ou retângulo fornecido está nas coordenadas do cliente.

Exemplo

// resize dialog to client's size
void CMyDlg::OnSizeToClient()
{
   CRect myRect;
   GetClientRect(&myRect);

   ClientToScreen(myRect);
   MoveWindow(myRect.left, myRect.top,
              myRect.Width(), myRect.Height());
}

CWnd::CloseWindow

Minimiza a janela.

void CloseWindow();

Comentários

Essa função membro emula a funcionalidade da função CloseWindow, conforme descrito no SDK do Windows.

CWnd::ContinueModal

Essa função membro é chamada por RunModalLoop para determinar quando o estado restrito deve ser encerrado.

virtual BOOL ContinueModal();

Valor de retorno

Diferente de zero se o loop modal for continuado; 0 quando EndModalLoop é chamado.

Comentários

Por padrão, ele retorna um valor diferente de zero até EndModalLoop ser chamado.

CWnd::Create

Cria a janela filho especificada e a anexa ao objeto CWnd.

virtual BOOL Create(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    Const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CCreateContext* pContext = NULL);

Parâmetros

lpszClassName
[in] Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome de uma classe de janela do sistema registrada; ou o nome de uma classe de janela predefinida do sistema.

lpszWindowName
[in] Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome de exibição da janela; caso contrário, NULLpara nenhum nome de exibição de janela.

dwStyle
[in] Combinação bit a bit (OR) dos estilos de janela. A opção WS_POPUP não é um estilo válido.

rect
[in] O tamanho e o local da janela em relação ao canto superior esquerdo da janela pai.

pParentWnd
[in] Ponteiro para a janela pai.

nID
[in] ID da janela.

pContext
[in] Ponteiro para uma estrutura CCreateContext usada para personalizar a arquitetura de exibição de documento para o aplicativo.

Valor de retorno

TRUE se o método foi bem-sucedido; caso contrário, FALSE.

Comentários

Aviso

CWnd::PreCreateWindow agora atribui o membro hMenu de seu parâmetro CREATESTRUCT ao ponteiro this se o menu for NULL e o estilo contiver WS_CHILD. Para obter a funcionalidade adequada, verifique se o controle da caixa de diálogo tem um ID que não é NULL.

Essa alteração corrige uma falha em cenários de interoperabilidade gerenciados/nativos. Uma instrução TRACE em CWnd::Create alerta o desenvolvedor do problema.

Use a função AfxRegisterWndClass para registrar classes de janela. As classes de janela definidas pelo usuário estão disponíveis no módulo em que estão registradas.

O método CWnd::OnCreate é chamado antes do método Create retornar e antes da janela ficar visível.

Exemplo

// Dynamically create static control using CWnd::Create,
// instead of with CStatic::Create, which doesn't
// need the "STATIC" class name.
void CMyDlg::OnCreateStatic() 
{
   // m_pWndStatic is a CWnd* member of CMyDlg
   m_pWndStatic = new CWnd;
   m_pWndStatic->Create(_T("STATIC"), _T("Hi"), WS_CHILD | WS_VISIBLE,
       CRect(0, 0, 20, 20), this, 1234);
}

CWnd::CreateAccessibleProxy

Cria um proxy de Acessibilidade Ativa para o objeto especificado.

virtual HRESULT CreateAccessibleProxy(
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parâmetros

wParam
Identifica o objeto acessado pelo proxy de Acessibilidade Ativa. Pode ser um dos seguintes valores

Valor Significado
OBJID_CLIENT Refere à área de cliente da janela.

lParam
Especifica informações adicionais dependentes de mensagens.

pResult
Um ponteiro para um LRESULT que armazena o código de resultado.

Comentários

Cria um proxy de Acessibilidade Ativa para o objeto especificado.

CWnd::CreateCaret

Cria uma nova forma para o cursor do sistema e obtém a propriedade do cursor.

void CreateCaret(CBitmap* pBitmap);

Parâmetros

pBitmap
Identifica o bitmap que define a forma do cursor.

Comentários

O bitmap deve ter sido criado anteriormente pela função membro CBitmap::CreateBitmap, pela função CreateDIBitmap do Windows ou pela função membro CBitmap::LoadBitmap.

CreateCaret destrói automaticamente a forma de cursor anterior, se houver, independentemente da janela que possui o cursor. Depois de criado, o cursor será inicialmente oculto. Para mostrar o cursor, a função membro ShowCaret deve ser chamada.

O cursor do sistema é um recurso compartilhado. CWnd deve criar um cursor somente quando tiver o foco de entrada ou estiver ativo. Ele deve destruir o cursor antes de perder o foco de entrada ou ficar inativo.

Exemplo

// Changes the caret of the edit control in this dialog box
void CMyDlg::OnChangeCaret()
{
   m_pBitmapCaret = new CBitmap;
   m_pBitmapCaret->LoadBitmap(IDB_HAPPY_BITMAP);
   m_MyEdit.CreateCaret(m_pBitmapCaret);
   m_MyEdit.ShowCaret();
}

CWnd::CreateControl

Use essa função membro para criar um controle ActiveX que será representado no programa MFC por um objeto CWnd.

BOOL CreateControl(
    LPCTSTR pszClass,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

BOOL CreateControl(
    REFCLSID clsid,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

BOOL CreateControl(
    REFCLSID clsid,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

Parâmetros

pszClass
Essa cadeia de caracteres pode conter o "nome curto" OLE (ProgID) para a classe. Por exemplo, "CIRC3.Circ3Ctrl.1". O nome precisa corresponder ao mesmo nome registrado pelo controle. Como alternativa, a cadeia de caracteres pode conter a forma de cadeia de caracteres de um CLSID, contido em chaves. Por exemplo, "{9DBAFCCF-592F-101B-85CE-00608CEC297B}". Em ambos os casos, CreateControl converte a cadeia de caracteres no ID de classe correspondente.

pszWindowName
Um ponteiro para o texto a ser exibido no controle. Define o valor da propriedade Legenda ou Texto do controle (se houver). Se NULL, a propriedade Legenda ou Texto do controle não é alterada.

dwStyle
Estilos do Windows. Os estilos disponíveis estão listados em Comentários.

rect
Especifica o tamanho e a posição do controle. Pode ser um objeto CRectou uma estrutura RECT.

ppt
Aponta para uma estrutura POINT ou objeto CPoint que contém o canto superior esquerdo do controle.

pSize
Aponta para uma estrutura SIZE ou objeto CSize que contém o tamanho do controle

*pParentWnd*
Especifica a janela pai do controle. Não deve ser NULL.

nID
Especifica o ID do controle.

pPersist
Um ponteiro para um CFile contendo o estado persistente para o controle. O valor padrão é NULL, indicando que o controle se inicializa sem restaurar seu estado de nenhum armazenamento persistente. Se não for NULL, ele deve ser um ponteiro para um objeto derivado por CFile que contém os dados persistentes do controle, na forma de um fluxo ou de um armazenamento. Esses dados poderiam ter sido salvos em uma ativação anterior do cliente. O CFile pode conter outros dados, mas deve ter seu ponteiro de leitura/gravação definido como o primeiro byte de dados persistentes no momento da chamada para CreateControl.

bStorage
Indica se os dados em pPersist devem ser interpretados como dados IStorage ou IStream. Se os dados em pPersist são um armazenamento, bStorage deve ser TRUE. Se os dados em pPersist são um fluxo, bStorage deve ser FALSE. O valor padrão é FALSE.

bstrLicKey
Dados de chave de licença opcionais. Esses dados são necessários apenas para criar controles que exigem uma chave de licença em tempo de execução. Se o controle der suporte ao licenciamento, você deverá fornecer uma chave de licença para que a criação do controle tenha êxito. O valor padrão é NULL.

clsid
O ID de classe exclusiva do controle.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

CreateControl é um analógico direto da função CWnd::Create, que cria a janela para um CWnd. CreateControl cria um controle ActiveX em vez de uma janela comum.

Há suporte para CreateControl apenas para um subconjunto dos sinalizadores dwStyle do Windows:

  • WS_VISIBLE Cria uma janela que estava visível inicialmente. Necessário se você quiser que o controle fique visível imediatamente, como janelas comuns.

  • WS_DISABLED Cria uma janela que estava inicialmente desabilitada. Uma janela desabilitada não pode receber entrada do usuário. Pode ser definido se o controle tiver uma propriedade Habilitada.

  • WS_BORDER Cria uma janela com uma borda de linha fina. Pode ser definido se o controle tiver uma propriedade BorderStyle.

  • WS_GROUP Especifica o primeiro controle de um grupo de controles. O usuário pode alterar o foco do teclado de um controle no grupo para o outro usando as teclas de direção. Todos os controles definidos com o estilo WS_GROUP após o primeiro controle pertencem ao mesmo grupo. O próximo controle com o estilo WS_GROUP encerra o grupo e inicia o próximo grupo.

  • WS_TABSTOP Especifica um controle que pode receber o foco do teclado quando o usuário pressiona a tecla TAB. Pressionar a tecla TAB altera o foco do teclado para o próximo controle do estilo WS_TABSTOP.

Exemplo

class CGenocx : public CWnd
{
protected:
   DECLARE_DYNCREATE(CGenocx)
public:
   CLSID const &GetClsid()
   {
      static CLSID const clsid = {0x20DD1B9E, 0x87C4, 0x11D1, {0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1}};
      return clsid;
   }

   // This code is generated by the Control Wizard.
   // It wraps the call to CreateControl in the call to Create.
   virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
                       const RECT &rect, CWnd *pParentWnd, UINT nID,
                       CCreateContext *pContext = NULL)
   {
      UNREFERENCED_PARAMETER(pContext);
      UNREFERENCED_PARAMETER(lpszClassName);

      return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
   }

   // remainder of class declaration omitted...

CWnd::CreateEx

Cria a janela especificada e a anexa ao objeto CWnd.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU nIDorHMenu,
    LPVOID lpParam = NULL);

virtual BOOL CreateEx(
    DWORD dwExStyle,
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    LPVOID lpParam = NULL);

Parâmetros

dwExStyle
OR (combinação bit a bit) de estilos de janela estendidos; caso contrário, NULL para o estilo de janela estendida padrão.

lpszClassName
[entrada] Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome de uma classe de janela do sistema registrada; ou o nome de uma classe de janela predefinida do sistema.

lpszWindowName
Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome de exibição da janela; caso contrário, NULL para nenhum nome de exibição de janela.

dwStyle
OR (combinação bit a bit) de estilos de janela; caso contrário, NULL para o estilo de janela padrão.

x
A distância horizontal inicial da janela do lado esquerdo da tela ou da janela pai.

y
A distância vertical inicial da janela do topo da tela ou da janela pai.

nWidth
A largura, em pixels, da janela.

nHeight
A altura, em pixels, da janela.

hwndParent
Para uma janela filho, o identificador da janela pai; caso contrário, o identificador da janela proprietária se a janela tiver uma proprietária.

nIDorHMenu
Para uma janela filho, o ID da janela; caso contrário, o ID de um menu para a janela.

lpParam
Ponteiro para os dados do usuário que são passados para o método CWnd::OnCreate no campo lpCreateParams.

rect
O tamanho e o local da janela em relação à tela ou à janela pai.

pParentWnd
Para uma janela filho, o ponteiro da janela pai; caso contrário, o ponteiro da janela proprietária se a janela tiver uma proprietária.

nID
Para uma janela filho, o ID da janela; caso contrário, o ID de um menu para a janela.

Valor de retorno

TRUE se o método foi bem-sucedido; caso contrário, FALSE.

Comentários

Aviso

CWnd::PreCreateWindow agora atribui o membro hMenu de seu parâmetro CREATESTRUCT ao ponteiro this se o menu for NULL e o estilo contiver WS_CHILD. Para obter a funcionalidade adequada, verifique se o controle da caixa de diálogo tem um ID que não é NULL.

Essa alteração corrige uma falha em cenários de interoperabilidade gerenciados/nativos. Uma instrução TRACE em CWnd::Create alerta o desenvolvedor do problema.

O estilo de janela estendido padrão é WS_EX_LEFT. O estilo de janela padrão é WS_OVERLAPPED.

Use a função AfxRegisterWndClass para registrar classes de janela. As classes de janela definidas pelo usuário estão disponíveis no módulo em que estão registradas.

As dimensões para janelas filho são relativas ao canto superior esquerdo da área do cliente da janela pai. As dimensões para janelas de nível superior são relativas ao canto superior esquerdo da tela.

O método CWnd::OnCreate é chamado antes do método CreateEx retornar e antes da janela ficar visível.

Exemplo

void CMyDlg::OnCreateExtendedControl() 
{
   // m_pWndStaticEx is a CWnd* member of CMyDlg
   m_pWndStaticEx = new CStatic;
   m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
      _T("STATIC"), _T("Hi"),
      WS_CHILD | WS_TABSTOP | WS_VISIBLE,
      5, 5, 30, 30, m_hWnd, (HMENU)2345);
}

CWnd::CreateGrayCaret

Cria um retângulo cinza para o cursor do sistema e obtém a propriedade do cursor.

void CreateGrayCaret(
    int nWidth,
    int nHeight);

Parâmetros

nWidth
Especifica a largura do cursor (em unidades lógicas). Se esse parâmetro for 0, a largura será definida como a largura da borda da janela definida pelo sistema.

nHeight
Especifica a altura do cursor (em unidades lógicas). Se esse parâmetro for 0, a altura será definida como a altura da borda da janela definida pelo sistema.

Comentários

A forma do cursor pode ser uma linha ou um bloco.

Os parâmetros nWidth e nHeight especificam a largura e a altura do cursor (em unidades lógicas); a largura e a altura exatas (em pixels) dependem do modo de mapeamento.

A largura ou a altura da borda da janela do sistema pode ser recuperada pela função GetSystemMetrics do Windows com os índices SM_CXBORDER a SM_CYBORDER. Usar a largura ou a altura da borda da janela garante que o cursor fique visível em uma exibição de alta resolução.

A função membro CreateGrayCaret destrói automaticamente a forma de cursor anterior, se houver, independentemente da janela que possui o cursor. Depois de criado, o cursor será inicialmente oculto. Para mostrar o cursor, a função membro ShowCaret deve ser chamada.

O cursor do sistema é um recurso compartilhado. CWnd deve criar um cursor somente quando tiver o foco de entrada ou estiver ativo. Ele deve destruir o cursor antes de perder o foco de entrada ou ficar inativo.

Exemplo

// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
   m_MyEdit.CreateGrayCaret(5, 10);
   m_MyEdit.ShowCaret();
}

CWnd::CreateSolidCaret

Cria um retângulo sólido para o cursor do sistema e obtém a propriedade do cursor.

void CreateSolidCaret(
    int nWidth,
    int nHeight);

Parâmetros

nWidth
Especifica a largura do cursor (em unidades lógicas). Se esse parâmetro for 0, a largura será definida como a largura da borda da janela definida pelo sistema.

nHeight
Especifica a altura do cursor (em unidades lógicas). Se esse parâmetro for 0, a altura será definida como a altura da borda da janela definida pelo sistema.

Comentários

A forma do cursor pode ser uma linha ou um bloco.

Os parâmetros nWidth e nHeight especificam a largura e a altura do cursor (em unidades lógicas); a largura e a altura exatas (em pixels) dependem do modo de mapeamento.

A largura ou a altura da borda da janela do sistema pode ser recuperada pela função GetSystemMetrics do Windows com os índices SM_CXBORDER a SM_CYBORDER. Usar a largura ou a altura da borda da janela garante que o cursor fique visível em uma exibição de alta resolução.

A função membro CreateSolidCaret destrói automaticamente a forma de cursor anterior, se houver, independentemente da janela que possui o cursor. Depois de criado, o cursor será inicialmente oculto. Para mostrar o cursor, a função membro ShowCaret deve ser chamada.

O cursor do sistema é um recurso compartilhado. CWnd deve criar um cursor somente quando tiver o foco de entrada ou estiver ativo. Ele deve destruir o cursor antes de perder o foco de entrada ou ficar inativo.

Exemplo

// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
   m_MyEdit.CreateSolidCaret(5, 10);
   m_MyEdit.ShowCaret();
}

CWnd::CWnd

Constrói um objeto CWnd.

CWnd();

Comentários

A janela do Windows não é criada e anexada até que a função membro CreateEx ou Create membro seja chamada.

CWnd::Default

Chama o procedimento de janela padrão.

LRESULT Default();

Valor de retorno

Depende da mensagem enviada.

Comentários

O procedimento de janela padrão, fornece processamento padrão para quaisquer mensagens de janela que um aplicativo não processa. Essa função membro garante que cada mensagem seja processada.

Exemplo

// This sample shows how to avoid any button handling in base class,
// if any, and call the default window procedure directly.
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   CWnd::Default();
}

CWnd::DefWindowProc

Chama o procedimento de janela padrão, que fornece processamento padrão para quaisquer mensagens de janela que um aplicativo não processa.

virtual LRESULT DefWindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

message
Especifica a mensagem do Windows a ser processada.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

Valor de retorno

Depende da mensagem enviada.

Comentários

Essa função membro garante que cada mensagem seja processada. Ele deve ser chamado com os mesmos parâmetros que os recebidos pelo procedimento de janela.

CWnd::DeleteTempMap

Chamado automaticamente pelo manipulador de tempo ocioso do objeto CWinApp.

static void PASCAL DeleteTempMap();

Comentários

Exclui todos os objetos temporários CWnd criados pela função membro FromHandle.

Exemplo

// DeleteTempMap() is a static member and does not need 
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();

CWnd::DestroyWindow

Destrói a janela do Windows anexada ao objeto CWnd.

virtual BOOL DestroyWindow();

Valor de retorno

Diferente de zero se a janela for destruída; caso contrário, zero.

Comentários

A função membro DestroyWindow envia mensagens apropriadas para a janela para desativá-la e remover o foco de entrada. Ele também destrói o menu da janela, libera a fila do aplicativo, destrói temporizadores pendentes, remove a propriedade da área de transferência e quebra a cadeia do visualizador de área de transferência se CWnd estiver na parte superior da cadeia de visualizadores. Ele envia mensagens WM_DESTROY e WM_NCDESTROY para a janela. Ele não destrói o objeto CWnd.

DestroyWindow é um espaço reservado para executar a limpeza. Como DestroyWindow é uma função virtual, ela é mostrada em qualquer classe derivada por CWnd no Modo de Exibição de Classe. Mas mesmo que você substitua essa função em sua classe derivada por CWnd, DestroyWindow não será necessariamente chamado. Se DestroyWindow não for chamado no código MFC, você precisará chamar explicitamente seu próprio código se quiser que ele seja chamado.

Suponha, por exemplo, que você tenha substituído DestroyWindow em uma classe derivada por CView. Como o código-fonte MFC não chama DestroyWindow nenhuma de suas classes derivadas por CFrameWnd, seu DestroyWindow substituído não será chamado, a menos que você o chame explicitamente.

Se a janela for o pai de qualquer janela, essas janelas filho serão destruídas automaticamente quando a janela pai for destruída. A função membro DestroyWindow destrói primeiro as janelas filho e, em seguida, a própria janela.

A função membro DestroyWindow também destrói caixas de diálogo sem janela restrita criadas por CDialog::Create.

Se o CWnd sendo destruído for uma janela filho e não tiver o estilo WS_EX_NOPARENTNOTIFY definido, a mensagem WM_PARENTNOTIFY será enviada ao pai.

Exemplo

// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in 
// OnOK() & OnCancel() handlers
void CModeless::OnOK() 
{ 
   if (!UpdateData(TRUE)) 
   {
      TRACE(_T("UpdateData failed during dialog termination\n"));
      // The UpdateData routine will set focus to correct item
      return;
   }
   DestroyWindow();
}

void CModeless::OnCancel()
{
   DestroyWindow();
}

CWnd::Detach

Desanexa um identificador do Windows de um objeto CWnd e retorna o identificador.

HWND Detach();

Valor de retorno

Um HWND para o objeto do Windows.

Exemplo

Confira o exemplo de CWnd::Attach.

CWnd::DlgDirList

Preenche uma caixa de listagem com uma listagem de arquivo ou diretório.

int DlgDirList(
    LPTSTR lpPathSpec,
    int nIDListBox,
    int nIDStaticPath,
    UINT nFileType);

Parâmetros

lpPathSpec
Aponta para uma cadeia de caracteres com terminação nula que contém o caminho ou nome do arquivo. DlgDirList modifica essa cadeia de caracteres, que deve ser longa o suficiente para conter as modificações. Para obter mais informações, consulte a seção Comentários a seguir.

nIDListBox
Especifica o identificador da caixa de listagem. Se nIDListBox for 0, DlgDirList supõe que nenhuma caixa de listagem existe e não tenta preencher uma.

nIDStaticPath
Especifica o identificador do controle de texto estático usado para exibir a unidade e o diretório atuais. Se nIDStaticPath for 0, DlgDirList pressupõe que nenhum controle de texto está presente.

nFileType
Especifica os atributos dos arquivos a serem exibidos. Pode ser qualquer combinação dos valores seguintes:

  • DDL_READWRITE Arquivos de dados de leitura-gravação sem atributos adicionais.

  • DDL_READONLY Arquivos somente leitura.

  • DDL_HIDDEN Arquivos ocultos.

  • DDL_SYSTEM Arquivos do sistema.

  • DDL_DIRECTORY Diretórios.

  • DDL_ARCHIVE Arquivos.

  • DDL_POSTMSGSLB_DIR bandeira. Se o sinalizador LB_DIR estiver definido, o Windows colocará as mensagens geradas por DlgDirList na fila do aplicativo; caso contrário, elas serão enviadas diretamente para o procedimento de caixa de diálogo.

  • DDL_DRIVES Unidades. Se o sinalizador DDL_DRIVES estiver definido, o sinalizador DDL_EXCLUSIVE será definido automaticamente. Portanto, para criar uma listagem de diretório que inclua unidades e arquivos, você deve chamar DlgDirList duas vezes: uma com o sinalizador DDL_DRIVES definido e uma com os sinalizadores do restante da lista.

  • DDL_EXCLUSIVE Bit exclusivo. Se o bit exclusivo estiver definido, somente os arquivos do tipo especificado serão listados; caso contrário, arquivos normais e do tipo especificado serão listados.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

DlgDirList envia mensagens LB_RESETCONTENT e LB_DIR para a caixa de listagem. Ele preenche a caixa de listagem especificada por nIDListBox com os nomes de todos os arquivos que correspondem ao caminho fornecido por lpPathSpec.

O parâmetro lpPathSpec tem o seguinte formato:

[drive:] [ [\u]directory[\idirectory]...\u] [filename]

Neste exemplo, drive é uma letra de unidade, directory é um nome de diretório válido e filename é um nome de arquivo válido que deve conter pelo menos um curinga. Os curingas são um ponto de interrogação (?), o que significa que correspondem a qualquer caractere, e um asterisco (*), o que significa que correspondem a qualquer número de caracteres.

Se você especificar uma cadeia de caracteres de 0 de comprimento como lpPathSpec, ou se você especificar apenas um nome de diretório, mas não incluir nenhuma especificação de arquivo, a cadeia de caracteres será alterada para "*.*".

Se lpPathSpec incluir uma unidade e/ou um nome de diretório, a unidade e o diretório atuais serão alterados para a unidade e o diretório designados antes que a caixa de listagem seja preenchida. O controle de texto identificado por nIDStaticPath também é atualizado com a nova unidade e/ou o nome do diretório.

Depois que a caixa de listagem for preenchida, lpPathSpec será atualizada removendo a parte de unidade e/ou diretório do caminho.

Exemplo

// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));

pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);

CWnd::DlgDirListComboBox

Preenche uma caixa de listagem de uma caixa de combinação com uma listagem de arquivo ou diretório.

int DlgDirListComboBox(
    LPTSTR lpPathSpec,
    int nIDComboBox,
    int nIDStaticPath,
    UINT nFileType);

Parâmetros

lpPathSpec
Aponta para uma cadeia de caracteres com terminação nula que contém o caminho ou nome do arquivo. DlgDirListComboBox modifica essa cadeia de caracteres, portanto, esses dados não devem estar na forma de uma cadeia de caracteres literal. Consulte a seção "Comentários" a seguir.

nIDComboBox
Especifica o identificador de uma caixa de combinação em uma caixa de diálogo. Se nIDComboBox for 0, DlgDirListComboBox supõe que nenhuma caixa de combinação existe e não tenta preencher uma.

nIDStaticPath
Especifica o identificador do controle de texto estático usado para exibir a unidade e o diretório atuais. Se nIDStaticPath for 0, DlgDirListComboBox pressupõe que nenhum controle de texto está presente.

nFileType
Especifica os atributos de arquivos DOS dos arquivos a serem exibidos. Pode ser qualquer combinação dos valores seguintes:

  • DDL_READWRITE Arquivos de dados de leitura-gravação sem atributos adicionais.

  • DDL_READONLY Arquivos somente leitura.

  • DDL_HIDDEN Arquivos ocultos.

  • DDL_SYSTEM Arquivos do sistema.

  • DDL_DIRECTORY Diretórios.

  • DDL_ARCHIVE Arquivos.

  • DDL_POSTMSGSCB_DIR bandeira. Se o sinalizador CB_DIR estiver definido, o Windows colocará as mensagens geradas por DlgDirListComboBox na fila do aplicativo; caso contrário, elas serão enviadas diretamente para o procedimento de caixa de diálogo.

  • DDL_DRIVES Unidades. Se o sinalizador DDL_DRIVES estiver definido, o sinalizador DDL_EXCLUSIVE será definido automaticamente. Portanto, para criar uma listagem de diretório que inclua unidades e arquivos, você deve chamar DlgDirListComboBox duas vezes: uma com o sinalizador DDL_DRIVES definido e uma com os sinalizadores do restante da lista.

  • DDL_EXCLUSIVE Bit exclusivo. Se o bit exclusivo estiver definido, somente os arquivos do tipo especificado serão listados; caso contrário, arquivos normais e do tipo especificado serão listados.

Valor de retorno

Especifica o resultado da função . Diferente de zero se uma listagem foi feita, mesmo se for uma listagem vazia. Um valor de retorno 0 implica que a cadeia de caracteres de entrada não continha um caminho de busca válido.

Comentários

DlgDirListComboBox envia mensagens CB_RESETCONTENT e CB_DIR para a caixa de combinação. Ele preenche a caixa de listagem da caixa de combinação especificada por nIDComboBox com os nomes de todos os arquivos que correspondem ao caminho fornecido por lpPathSpec.

O parâmetro lpPathSpec tem o seguinte formato:

[drive:] [ [\u]directory[\idirectory]...\u] [filename]

Neste exemplo, drive é uma letra de unidade, directory é um nome de diretório válido e filename é um nome de arquivo válido que deve conter pelo menos um curinga. Os curingas são um ponto de interrogação (?), o que significa que correspondem a qualquer caractere, e um asterisco (*), o que significa que correspondem a qualquer número de caracteres.

Se você especificar uma cadeia de caracteres de comprimento zero para lpPathSpec, o diretório atual será usado e lpPathSpec não será modificado. Se você especificar apenas um nome de diretório, mas não incluir nenhuma especificação de arquivo, a cadeia de caracteres será alterada para "*.*".

Se lpPathSpec incluir uma unidade e/ou um nome de diretório, a unidade e o diretório atuais serão alterados para a unidade e o diretório designados antes que a caixa de listagem seja preenchida. O controle de texto identificado por nIDStaticPath também é atualizado com a nova unidade e/ou o nome do diretório.

Depois que a caixa de listagem da caixa de combinação for preenchida, lpPathSpec será atualizado removendo a parte da unidade e/ou diretório do caminho.

Exemplo

// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.

TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);

// Note that the first argument is a string and not a string
// literal. This is necessary because DlgDirListComboBox
// modifies the supplied string. Passing a string literal
// will result in an access violation.

CWnd::DlgDirSelect

Recupera a seleção atual de uma caixa de listagem.

BOOL DlgDirSelect(
    LPTSTR lpString,
    int nIDListBox);

Parâmetros

lpString
Aponta para um buffer que deve receber a seleção atual na caixa de listagem.

nIDListBox
Especifica o ID do inteiro de uma caixa de listagem na caixa de diálogo.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Ele pressupõe que a caixa de listagem foi preenchida pela função membro DlgDirList e que a seleção é uma letra de unidade, um arquivo ou um nome de diretório.

A função membro DlgDirSelect copia a seleção para o buffer fornecido por lpString. Se não houver seleção, lpString não será alterado.

DlgDirSelect envia mensagens LB_GETCURSEL e LB_GETTEXT para a caixa de listagem.

Ele não permite que mais de um nome de arquivo seja retornado de uma caixa de listagem. A caixa de listagem não deve ser uma caixa de listagem de seleção múltipla.

CWnd::DlgDirSelectComboBox

Recupera a seleção atual de uma caixa de listagem de uma caixa de combinação.

BOOL DlgDirSelectComboBox(
    LPTSTR lpString,
    int nIDComboBox);

Parâmetros

lpString
Aponta para um buffer que deve receber o caminho selecionado.

nIDComboBox
Especifica o ID do inteiro de uma caixa de combinação na caixa de diálogo.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Ele pressupõe que a caixa de listagem foi preenchida pela função membro DlgDirListComboBox e que a seleção é uma letra de unidade, um arquivo ou um nome de diretório.

A função membro DlgDirSelectComboBox copia a seleção para o buffer especificado. Se não houver seleção, o conteúdo do buffer não será alterado.

DlgDirSelectComboBox envia mensagens CB_GETCURSEL e CB_GETLBTEXT para a caixa de combinação.

Ele não permite que mais de um nome de arquivo seja retornado de uma caixa de combinação.

CWnd::DoDataExchange

Chamado pela estrutura para trocar e validar dados da caixa de diálogo.

virtual void DoDataExchange(CDataExchange* pDX);

Parâmetros

pDX
Um ponteiro para um objeto CDataExchange.

Comentários

Nunca chame essa função diretamente. Ele é chamado pela função membro UpdateData. Chame UpdateData para inicializar os controles de uma caixa de diálogo ou recuperar dados de uma caixa de diálogo.

Ao derivar uma classe de diálogo específica do aplicativo de CDialog, você precisará substituir essa função membro se quiser utilizar a troca de dados e a validação automáticas da estrutura. O assistente Adicionar Variável escreverá uma versão substituída dessa função membro para você que contém o "mapa de dados" desejado das chamadas de função global de troca de dados de caixa de diálogo (DDX) e validação de dados da caixa de diálogo (DDV).

Para gerar automaticamente uma versão substituída dessa função membro, primeiro crie um recurso de diálogo com o editor de diálogo e, em seguida, derive uma classe de diálogo específica do aplicativo. Em seguida, use o assistente Adicionar Variável para associar variáveis, dados e intervalos de validação a vários controles na nova caixa de diálogo. Em seguida, o assistente grava o DoDataExchange substituído, que contém um mapa de dados. Veja a seguir um exemplo de bloco de código DDX/DDV gerado pelo assistente Adicionar Variável:

void CPenWidthsDlg::DoDataExchange(CDataExchange *pDX)
{
   CDialog::DoDataExchange(pDX);
   DDX_Text(pDX, IDC_THINPENWIDTH, m_nThinWidth);
   DDV_MinMaxInt(pDX, m_nThinWidth, 1, 20);
   DDX_Text(pDX, IDC_THICKPENWIDTH, m_nThickWidth);
   DDV_MinMaxInt(pDX, m_nThickWidth, 1, 20);
}

A função membro substituída DoDataExchange deve preceder as instruções de macro no arquivo de origem.

Para obter mais informações sobre troca e validação de dados de caixa de diálogo, consulte Exibindo e manipulando dados em um formulário e Troca e validação de dados da caixa de diálogo. Para obter uma descrição das macros DDX_ e DDV_ geradas pelo assistente Adicionar Variável, consulte a Nota técnica 26.

CWnd::DragAcceptFiles

Chame essa função membro de dentro de uma janela, usando um ponteiro CWnd, na função CWinApp::InitInstance do aplicativo para indicar que a janela aceita arquivos removidos do Gerenciador de Arquivos do Windows ou Explorador de Arquivos.

void DragAcceptFiles(BOOL bAccept = TRUE);

Parâmetros

BAccept
Sinalizador que indica se os arquivos arrastados são aceitos.

Comentários

Somente a janela que chama DragAcceptFiles com o parâmetro bAccept definido como TRUE se identifica como capaz de processar a mensagem WM_DROPFILES do Windows. Por exemplo, em um aplicativo MDI, se o ponteiro da janela CMDIFrameWnd for usado na chamada de função DragAcceptFiles, somente a janela CMDIFrameWnd receberá a mensagem WM_DROPFILES. Esta mensagem não é enviada para todas as janelas abertas CMDIChildWnd. Para que uma janela CMDIChildWnd receba essa mensagem, você deve chamar DragAcceptFiles com o ponteiro da janela CMDIChildWnd.

Para descontinuar o recebimento de arquivos arrastados, chame a função membro com bAccept definido como FALSE.

CWnd::DragDetect

Captura o mouse e rastreia seu movimento até que o usuário libere o botão esquerdo, pressione a tecla ESC ou mova o mouse para fora do retângulo de arrastar ao redor do ponto especificado.

BOOL DragDetect(POINT pt) const;

Parâmetros

pt
A posição inicial do mouse nas coordenadas de tela. A função determina as coordenadas do retângulo de arrastar usando esse ponto.

Valor de retorno

Se o usuário moveu o mouse para fora do retângulo de arrastar ao segurar o botão esquerdo, o valor retornado será diferente de zero.

Se o usuário não moveu o mouse para fora do retângulo de arrastar ao segurar o botão esquerdo, o valor retornado será zero.

Comentários

Essa função membro emula a funcionalidade da função DragDetect, conforme descrito no SDK do Windows.

CWnd::DrawAnimatedRects

Desenha um retângulo delineado e o anima para indicar a abertura de um ícone ou a minimização ou maximização de uma janela.

BOOL DrawAnimatedRects(
    int idAni,
    CONST RECT* lprcFrom,
    CONST RECT* lprcTo);

Parâmetros

idAni
Especifica o tipo de animação. Se você especificar IDANI_CAPTION, a legenda da janela animará da posição especificada por lprcFrom para a posição especificada por lprcTo. O efeito é semelhante a minimizar ou maximizar uma janela.

lprcFrom
Ponteiro para uma estrutura RECT que especifica o local e o tamanho do ícone ou janela minimizada.

lprcTo
Ponteiro para uma estrutura RECT que especifica o local e o tamanho da janela restaurada

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função DrawAnimatedRects, conforme descrito no SDK do Windows.

CWnd::DrawCaption

Desenha uma legenda de janela.

BOOL DrawCaption(
    CDC* pDC,
    LPCRECT lprc,
    UINT uFlags);

Parâmetros

pDC
Um ponteiro para um contexto de dispositivo. A função desenha a legenda da janela nesse contexto do dispositivo.

lprc
Um ponteiro para uma estrutura RECT que especifica o retângulo delimitador para a legenda da janela.

uFlags
Especifica as opções de desenho. Para obter uma lista completa de valores, consulte DrawCaption.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função DrawCaption, conforme descrito no SDK do Windows.

CWnd::DrawMenuBar

Redesenha a barra de menus.

void DrawMenuBar();

Comentários

Se uma barra de menus for alterada depois que o Windows tiver criado a janela, chame essa função para desenhar a barra de menus alterada.

Exemplo

Confira o exemplo de CWnd::GetMenu.

CWnd::EnableActiveAccessibility

Habilita funções de Acessibilidade Ativa definidas pelo usuário.

void EnableActiveAccessibility();

Comentários

O suporte padrão de Acessibilidade Ativa do MFC é suficiente para janelas e controles padrão, incluindo controles ActiveX; no entanto, se sua classe derivada por CWnd contiver elementos de interface do usuário que não estão no modo janela, o MFC não terá como saber sobre eles. Nesse caso, você deve substituir as funções membro de Acessibilidade Ativa apropriadas em sua classe e chamar EnableActiveAccessibility no construtor da classe.

CWnd::EnableDynamicLayout

Habilita ou desabilita o gerenciador de layout dinâmico. Se o layout dinâmico estiver habilitado, a posição e o tamanho das janelas filho poderão ser ajustados dinamicamente quando o usuário redimensionar a janela.

void EnableDynamicLayout(BOOL bEnable = TRUE);

Parâmetros

bEnable
TRUE para habilitar o layout dinâmico; FALSE para desabilitar o layout dinâmico.

Comentários

Se você quiser habilitar o layout dinâmico, precisará fazer mais do que chamar esse método. Você também precisa fornecer informações de layout dinâmico de quais espécies os controles na janela respondem às alterações de tamanho. Você pode especificar essas informações no editor de recursos ou programaticamente para cada controle. Consulte Layout dinâmico.

CWnd::EnableD2DSupport

Habilita ou desabilita o suporte à janela D2D. Chame esse método antes que a janela principal seja inicializada.

void EnableD2DSupport(
    BOOL bEnable = TRUE,
    BOOL bUseDCRenderTarget = FALSE);

Parâmetros

bEnable
Especifica se deseja ativar ou desativar o suporte D2D.

bUseDCRenderTarget
Especifica se deve ser usado o destino de renderização do Contexto do Dispositivo (DC), CDCRenderTarget. Se FALSE, CHwndRenderTarget é usado.

CWnd::EnableScrollBar

Habilita ou desabilita uma ou ambas as setas de uma barra de rolagem.

BOOL EnableScrollBar(
    int nSBFlags,
    UINT nArrowFlags = ESB_ENABLE_BOTH);

Parâmetros

nSBFlags
Especifica o tipo de barra de rolagem. Pode ter um dos seguintes valores:

  • SB_BOTH Habilita ou desabilita as setas das barras de rolagem horizontal e vertical associadas à janela.

  • SB_HORZ Habilita ou desabilita as setas das barras de rolagem horizontal associadas à janela.

  • SB_VERT Habilita ou desabilita as setas das barras de rolagem vertical associadas à janela.

nArrowFlags
Especifica se as setas da barra de rolagem estão habilitadas ou desabilitadas e quais setas estão habilitadas ou desabilitadas. Pode ter um dos seguintes valores:

  • ESB_ENABLE_BOTH Habilita as duas setas de uma barra de rolagem (padrão).

  • ESB_DISABLE_LTUP Desabilita a seta para a esquerda de uma barra de rolagem horizontal ou a seta para cima de uma barra de rolagem vertical.

  • ESB_DISABLE_RTDN Desabilita a seta para a direita de uma barra de rolagem horizontal ou a seta para baixo de uma barra de rolagem vertical.

  • ESB_DISABLE_BOTH Desabilita as duas setas de uma barra de rolagem.

Valor de retorno

Diferente de zero se as setas estiverem habilitadas ou desabilitadas, conforme especificado. Caso contrário, é 0, o que indica que as setas já estão no estado solicitado ou que ocorreu um erro.

CWnd::EnableScrollBarCtrl

Habilita ou desabilita a barra de rolagem desta janela.

void EnableScrollBarCtrl(
    int nBar,
    BOOL bEnable = TRUE);

Parâmetros

nBar
O identificador da barra de rolagem.

bEnable
Especifica se a barra de rolagem deve ser habilitada ou desabilitada.

Comentários

Se a janela tiver um controle de barra de rolagem irmão, essa barra de rolagem será usada; caso contrário, a própria barra de rolagem da janela é usada.

CWnd::EnableToolTips

Habilita dicas de ferramenta para a janela fornecida.

BOOL EnableToolTips(BOOL bEnable = TRUE);

Parâmetros

bEnable
Especifica se o controle de dica de ferramenta está habilitado ou desabilitado. TRUE habilita o controle; FALSE desabilita o controle.

Valor de retorno

TRUE se as dicas de ferramenta estiverem habilitadas; caso contrário, FALSE.

Comentários

Substitua OnToolHitTest para fornecer o struct TOOLINFO ou structs para a janela.

Observação

Algumas janelas, como CToolBar, fornecem uma implementação interna de OnToolHitTest.

Para obter mais informações sobre essa estrutura, consulte TOOLINFO no SDK do Windows.

Simplesmente chamar EnableToolTips não é suficiente para exibir dicas de ferramenta para seus controles filho, a menos que a janela pai seja derivada por CFrameWnd. Isso ocorre porque CFrameWnd fornece um manipulador padrão para a notificação TTN_NEEDTEXT. Se a janela pai não for derivada por CFrameWnd, ou seja, se for uma caixa de diálogo ou um modo de exibição, as dicas de ferramenta para seus controles filho não serão exibidas corretamente, a menos que você forneça um manipulador para a notificação da dica de ferramenta TTN_NEEDTEXT. Consulte Dicas de ferramentas.

As dicas de ferramenta padrão fornecidas para suas janelas por EnableToolTips não têm textos associados a elas. Para recuperar o texto da dica de ferramenta a ser exibida, a notificação TTN_NEEDTEXT é enviada para a janela pai do controle de dica de ferramenta pouco antes da janela da dica de ferramenta ser exibida. Se não houver nenhum manipulador para essa mensagem para atribuir algum valor ao membro pszText da estrutura TOOLTIPTEXT, não haverá nenhum texto exibido para a dica de ferramenta.

Exemplo

// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)

 

void CMdiView::OnInitialUpdate()
{
   CView::OnInitialUpdate();

   m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
                 CRect(10, 10, 100, 100), this, IDC_TTEDIT);
   EnableToolTips(TRUE); // enable tool tips for view
}

//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
   UNREFERENCED_PARAMETER(id);
   UNREFERENCED_PARAMETER(pResult);

   // need to handle both ANSI and UNICODE versions of the message
   TOOLTIPTEXTA *pTTTA = (TOOLTIPTEXTA*)pNMHDR;
   TOOLTIPTEXTW *pTTTW = (TOOLTIPTEXTW*)pNMHDR;
   CStringA strTipText;
   UINT_PTR nID = pNMHDR->idFrom;
   if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
       pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
   {
      // idFrom is actually the HWND of the tool
      nID = ::GetDlgCtrlID((HWND)nID);
   }

   if (nID != 0) // will be zero on a separator
      strTipText.Format("Control ID = %d", nID);

   if (pNMHDR->code == TTN_NEEDTEXTA)
   {
      strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText,
                strTipText.GetLength() + 1);
   }
   else
   {
      ::MultiByteToWideChar(CP_ACP, 0, strTipText, strTipText.GetLength() + 1,
                            pTTTW->szText, sizeof(pTTTW->szText) / (sizeof pTTTW->szText[0]));
   }

   return TRUE; // message was handled
}

CWnd::EnableTrackingToolTips

Habilita ou desabilita o acompanhamento de dicas de ferramentas.

BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);

Parâmetros

bEnable
Especifica se as dicas de ferramenta de acompanhamento estão habilitadas ou desabilitadas. Se esse parâmetro for TRUE, as dicas da ferramenta de acompanhamento serão habilitadas. Se esse parâmetro for FALSE, as dicas da ferramenta de acompanhamento serão desabilitadas.

Valor de retorno

Indica o estado antes da função membro EnableWindow ser chamada. O valor retornado não será zero se a janela tiver sido desabilitada anteriormente. O valor retornado será 0 se a janela tiver sido habilitada anteriormente ou se tiver ocorrido um erro.

Comentários

Dicas de ferramenta de acompanhamento são janelas de dica de ferramenta que você pode posicionar dinamicamente na tela. Ao atualizar rapidamente a posição, a janela da dica de ferramenta parece se mover sem problemas, ou "acompanhar". Essa funcionalidade pode ser útil se você precisar de texto da dica de ferramenta para seguir a posição do ponteiro conforme ele se move.

CWnd::EnableWindow

Habilita ou desabilita a entrada de mouse e teclado.

BOOL EnableWindow(BOOL bEnable = TRUE);

Parâmetros

bEnable
Especifica se a janela fornecida deve ser habilitada ou desabilitada. Se esse parâmetro for TRUE, a janela será habilitada. Se esse parâmetro for FALSE, a janela será desabilitada.

Valor de retorno

Indica o estado antes da função membro EnableWindow ser chamada. O valor retornado não será zero se a janela tiver sido desabilitada anteriormente. O valor retornado será 0 se a janela tiver sido habilitada anteriormente ou se tiver ocorrido um erro.

Comentários

Quando a entrada é desabilitada, entradas como cliques do mouse e pressionamentos de teclas são ignoradas. Quando a entrada está habilitada, a janela processa todas as entradas.

Se o estado habilitado estiver sendo alterado, a mensagem WM_ENABLE será enviada antes que essa função retorne.

Se estiverem desabilitadas, todas as janelas filho serão desabilitadas implicitamente, embora não sejam enviadas mensagens WM_ENABLE.

Uma janela deve ser habilitada antes de ser ativada. Por exemplo, se um aplicativo estiver exibindo uma caixa de diálogo sem janela restrita e tiver desabilitado sua janela principal, a janela principal deverá ser habilitada antes que a caixa de diálogo seja destruída. Caso contrário, outra janela obterá o foco de entrada e será ativada. Se uma janela filho estiver desabilitada, ela será ignorada quando o Windows tentar determinar qual janela deve receber mensagens do mouse.

Por padrão, uma janela é habilitada quando é criada. Um aplicativo pode especificar o estilo WS_DISABLED na função membro Create ou CreateEx para criar uma janela inicialmente desabilitada. Depois que uma janela for criada, um aplicativo também poderá usar a função membro EnableWindow para habilitar ou desabilitar a janela.

Um aplicativo pode usar essa função para habilitar ou desabilitar um controle em uma caixa de diálogo. Um controle desabilitado não pode receber o foco de entrada nem um usuário pode acessá-lo.

Exemplo

//CMyFileDialog is a CFileDialog-derived class
//OnInitDialog is the handler for WM_INITDIALOG
BOOL CMyFileDialog::OnInitDialog()
{
   CFileDialog::OnInitDialog();

   CWnd *pWndParent = GetParent();

   //make sure you add #include <dlgs.h> for IDs 'edt1' & 'stc3'

   //disables the 'file name' edit and static control
   //of the standard file open dialog

   //get handle of 'file name' combobox control & disable it
   CWnd *pWnd = pWndParent->GetDlgItem(cmb13);
   pWnd->EnableWindow(FALSE);

   //get handle of 'file name' static control & disable it
   pWnd = pWndParent->GetDlgItem(stc3);
   pWnd->EnableWindow(FALSE);

   return TRUE;
}

CWnd::EndModalLoop

Encerra uma chamada para RunModalLoop.

virtual void EndModalLoop(int nResult);

Parâmetros

nResult
Contém o valor a ser retornado ao chamador de RunModalLoop.

Comentários

O parâmetro nResult é propagado para o valor retornado de RunModalLoop.

CWnd::EndModalState

Chame essa função membro para alterar uma janela de quadro de modal para não restrita.

virtual void EndModalState();

CWnd::EndPaint

Marca o fim da pintura na janela fornecida.

void EndPaint(LPPAINTSTRUCT lpPaint);

Parâmetros

lpPaint
Aponta para uma estrutura PAINTSTRUCT que contém as informações de pintura recuperadas pela função membro BeginPaint.

Comentários

A função membro EndPaint é necessária para cada chamada para a função membro BeginPaint, mas somente após a conclusão da pintura.

Se o cursor estiver oculto pela função membro BeginPaint, EndPaint restaura o cursor para a tela.

Exemplo

Confira o exemplo de CWnd::BeginPaint.

CWnd::ExecuteDlgInit

Inicia um recurso de caixa de diálogo.

BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);

Parâmetros

lpszResourceName
Um ponteiro para uma cadeia de caracteres terminada em nulo especificando o nome do recurso.

lpResource
Um ponteiro para um recurso.

Valor de retorno

TRUE se um recurso de caixa de diálogo for executado; caso contrário, FALSE.

Comentários

ExecuteDlgInit usará recursos associados ao módulo em execução ou recursos de outras fontes. Para fazer isso, ExecuteDlgInit localiza um identificador de recurso chamando AfxFindResourceHandle. Se o aplicativo MFC não usar a DLL compartilhada (MFCx0[U][D].DLL), AfxFindResourceHandle chama AfxGetResourceHandle, que retorna o identificador de recurso atual para o executável. Se seu aplicativo MFC usa MFCx0[U][D].DLL, AfxFindResourceHandle percorre a lista de objetos CDynLinkLibrary de DLLs de extensão MFC e compartilhadas procurando o identificador de recurso correto.

CWnd::FilterToolTipMessage

Chamado pela estrutura para exibir mensagens de dicas de ferramenta.

void FilterToolTipMessage(MSG* pMsg);

Parâmetros

pMsg
Um ponteiro para a mensagem de dica de ferramenta.

Comentários

Na maioria dos aplicativos MFC, esse método é chamado pela estrutura de PreTranslateMessage e EnableToolTips, e você não precisa chamá-lo por conta própria.

No entanto, em determinados aplicativos, por exemplo, alguns controles ActiveX, esses métodos podem não ser invocados pela estrutura e você precisará chamar FilterToolTipMessage. Para obter mais informações, consulte Métodos de criação de dicas de ferramenta.

CWnd::FindWindow

Retorna o CWnd de nível superior cuja classe de janela é fornecida por lpszClassName e cujo nome de janela, ou título, é fornecido por lpszWindowName.

static CWnd* PASCAL FindWindow(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName);

Parâmetros

lpszClassName
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome da classe da janela (uma estrutura WNDCLASS). Se lpClassName for NULL, todos os nomes de classe correspondem.

lpszWindowName
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome da classe da janela (o título da janela). Se lpWindowName for NULL, todos os nomes de janela correspondem.

Valor de retorno

Identifica a janela que tem o nome da classe e o nome da janela especificados. É NULL se nenhuma janela desse tipo for encontrada.

O CWnd* pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Essa função não busca janelas filho.

Exemplo

// activate an application with a window with a specific class name
BOOL CMyApp::FirstInstance()
{
   CWnd *pWndPrev, *pWndChild;

   // Determine if a window with the class name exists...
   pWndPrev = CWnd::FindWindow(_T("MyNewClass"), NULL);
   if (NULL != pWndPrev)
   {
      // If so, does it have any popups?
      pWndChild = pWndPrev->GetLastActivePopup();

      // If iconic, restore the main window
      if (pWndPrev->IsIconic())
         pWndPrev->ShowWindow(SW_RESTORE);

      // Bring the main window or its popup to the foreground
      pWndChild->SetForegroundWindow();

      // and you are done activating the other application
      return FALSE;
   }

   return TRUE;
}

CWnd::FindWindowEx

Recupera o objeto de janela cujo nome de classe e nome da janela correspondem às cadeias de caracteres especificadas.

static CWnd* FindWindowEx(
    HWND hwndParent,
    HWND hwndChildAfter,
    LPCTSTR lpszClass,
    LPCTSTR lpszWindow);

Parâmetros

hwndParent
Manipule para a janela pai cujas janelas filho devem ser procuradas.

hwndChildAfter
Manipule para uma janela filho. A busca começa com a próxima janela filho na ordem Z. A janela filho deve ser uma janela filho direta de hwndParent, não apenas uma janela descendente.

lpszClass
Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome da classe ou um atom de classe criado por uma chamada anterior para RegisterClass ou RegisterClassEx.

lpszWindow
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome da classe da janela (o título da janela). Se esse parâmetro for NULL, todos os nomes de janela corresponderão.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será um ponteiro para o objeto de janela que tem os nomes de classe e janela especificados. Se a função falhar, o valor retornado será NULL.

Comentários

Essa função membro emula a funcionalidade da função FindWindowEx, conforme descrito no SDK do Windows.

CWnd::FlashWindow

Pisca a janela determinada uma vez.

BOOL FlashWindow(BOOL bInvert);

Parâmetros

bInvert
Especifica se CWnd deve ser alternado ou retornado ao seu estado original. CWnd é alternado de um estado para outro se bInvert for TRUE. Se bInvert for FALSE, a janela será retornada ao estado original (ativa ou inativa).

Valor de retorno

Diferente de zero se a janela estava ativa antes da chamada para a função membro FlashWindow; caso contrário, 0.

Comentários

Para piscar sucessivamente, crie um temporizador do sistema e chame FlashWindow repetidamente. Exibir CWnd faz com que a aparência de sua barra de título seja alterada como se CWnd estivesse mudando de status inativo para ativo, ou vice-versa. (Uma barra de título inativa é alterada para uma barra de título ativa; uma barra de título ativa é alterada para uma barra de título inativa.)

Normalmente, uma janela é exibida para informar ao usuário que ela requer atenção, mas que atualmente não tem o foco de entrada.

O parâmetro bInvert deve ser FALSE somente quando a janela receber o foco de entrada e não estiver mais piscando; ele deve ser TRUE em chamadas sucessivas enquanto aguarda para obter o foco de entrada.

Essa função sempre retorna um valor diferente de zero para janelas minimizadas. Se a janela estiver minimizada, FlashWindow piscará o ícone da janela; bInvert será ignorado para janelas minimizadas.

Exemplo

BOOL CPenWidthsDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   // set timer to cause dialog to flash
   SetTimer(1, 500, NULL);
   return TRUE; // return TRUE unless you set the focus to a control
}

void CPenWidthsDlg::OnTimer(UINT_PTR nIDEvent)
{
   // cause the dialog to flash
   FlashWindow(TRUE);
   CDialog::OnTimer(nIDEvent);
}

CWnd::FlashWindowEx

Pisca a janela determinada.

BOOL FlashWindowEx(
    DWORD dwFlags,
    UINT uCount,
    DWORD dwTimeout);

Parâmetros

*dwFlags*
Especifica o status de exibição. Para obter uma lista completa de valores, consulte a estrutura FLASHWINFO.

uCount
Especifica o número de vezes que a janela será exibida.

dwTimeout
Especifica a taxa, em milissegundos, na qual a janela será exibida. Se dwTimeout for zero, a função usará a taxa de piscar do cursor padrão.

Valor de retorno

O valor retornado especifica o estado da janela antes da chamada para a função FlashWindowEx. Se a legenda da janela foi desenhada como ativa antes da chamada, o valor retornado não será diferente de zero. Caso contrário, o valor retornado será zero.

Comentários

Essa função de membro emula a funcionalidade da função FlashWindowEx, conforme descrito no SDK do Windows.

CWnd::FromHandle

Retorna um ponteiro para um objeto CWnd quando dado um identificador para uma janela. Se um objeto CWnd não estiver anexado ao identificador, um objeto temporário CWnd será criado e anexado.

static CWnd* PASCAL FromHandle(HWND hWnd);

Parâmetros

hWnd
Um HWND de uma janela do Windows.

Valor de retorno

Retorna um ponteiro para um objeto CWnd quando dado um identificador para uma janela. Se um objeto CWnd não estiver anexado ao identificador, um objeto temporário CWnd será criado e anexado.

O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

CWnd::FromHandlePermanent

Retorna um ponteiro para um objeto CWnd quando dado um identificador para uma janela.

static CWnd* PASCAL FromHandlePermanent(HWND hWnd);

Parâmetros

hWnd
Um HWND de uma janela do Windows.

Valor de retorno

Um ponteiro para um objeto CWnd.

Comentários

Se um objeto CWnd não estiver anexado ao identificador, NULL será retornado.

Essa função, ao contrário de FromHandle, não cria objetos temporários.

CWnd::get_accChild

Chamado pela estrutura para recuperar o endereço de uma interface IDispatch para o filho especificado.

virtual HRESULT get_accChild(
    VARIANT varChild,
    IDispatch** ppdispChild);

Parâmetros

varChild
Identifica o filho cuja interface IDispatch deve ser recuperada.

ppdispChild
Recebe o endereço da interface IDispatch do objeto filho.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accChild no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::get_accChild no SDK do Windows.

CWnd::get_accChildCount

Chamado pela estrutura para recuperar o número de filhos que pertencem a esse objeto.

virtual HRESULT get_accChildCount(long* pcountChildren);

Parâmetros

pcountChildren
Recebe o número de filhos.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accChildCount no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC). Chame a versão da classe base e adicione os elementos filho que não estão em janela.

Para obter mais informações, consulte IAccessible::get_accChildCount no SDK do Windows.

CWnd::get_accDefaultAction

Chamado pela estrutura para recuperar uma cadeia de caracteres que descreve a ação padrão do objeto.

virtual HRESULT get_accDefaultAction(
    VARIANT varChild,
    BSTR* pszDefaultAction);

Parâmetros

varChild
Especifica se a ação padrão a ser invocada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pszDefaultAction
Endereço de um BSTR que recebe uma cadeia de caracteres localizada que descreve a ação padrão para o objeto especificado, ou NULL se esse objeto não tem nenhuma ação padrão.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados em IAccessible::accDefaultAction no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função na sua classe derivada por CWnd para executar a ação padrão do objeto.

Para obter mais informações, consulte IAccessible::get_accDefaultAction no SDK do Windows.

CWnd::get_accDescription

Chamado pela estrutura para recuperar uma cadeia de caracteres que descreve a aparência visual do objeto especificado.

virtual HRESULT get_accDescription(
    VARIANT varChild,
    BSTR* pszDescription);

Parâmetros

varChild
Especifica se a descrição a ser recuperada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pszDescription
Endereço de um BSTR que recebe uma cadeia de caracteres localizada que descreve o objeto especificado, ou NULL se nenhuma descrição está disponível para esse objeto.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accDescription no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função na sua classe derivada por CWnd para descrever seu objeto. Chame a versão da classe base e adicione sua descrição.

Para obter mais informações, consulte IAccessible::get_accDescription no SDK do Windows.

CWnd::get_accFocus

Chamado pela estrutura para recuperar o objeto que tem o foco do teclado.

virtual HRESULT get_accFocus(VARIANT* pvarChild);

Parâmetros

pvarChild
Recebe informações sobre o objeto que tem o foco. Consulte pvarID em IAccessible::get_accFocus no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accFocus no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::get_accFocus no SDK do Windows.

CWnd::get_accHelp

Chamado pela estrutura para recuperar a cadeia de caracteres de Ajuda de propriedade de um objeto.

virtual HRESULT get_accHelp(
    VARIANT varChild,
    BSTR* pszHelp);

Parâmetros

varChild
Especifica se a informação de ajuda a ser recuperada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pszHelp
Endereço de um BSTR que recebe a cadeia de caracteres localizada que contém as informações de ajuda do objeto especificado, ou NULL se nenhuma informação de ajuda está disponível.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accHelp no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em sua classe derivada por CWnd para fornecer texto de ajuda para seu objeto.

Para obter mais informações, consulte IAccessible::get_accHelp no SDK do Windows.

CWnd::get_accHelpTopic

Chamado pela estrutura para recuperar o caminho completo do arquivo WinHelp associado ao objeto especificado e o identificador do tópico apropriado dentro desse arquivo.

virtual HRESULT get_accHelpTopic(
    BSTR* pszHelpFile,
    VARIANT varChild,
    long* pidTopic);

Parâmetros

pszHelpFile
Endereço de um BSTR que recebe o caminho completo do arquivo WinHelp associado ao objeto especificado, se houver.

varChild
Especifica se o tópico de Ajuda a ser recuperado é aquele do objeto ou um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter um tópico de Ajuda para o objeto) ou um ID filho (para obter um tópico de Ajuda para um dos elementos filho do objeto).

pidTopic
Identifica o tópico do arquivo de Ajuda associado ao objeto especificado. Consulte pidTopic em IAccessible::get_accHelpTopic no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accHelpTopic no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd para fornecer informações de ajuda sobre o seu objeto.

Para obter mais informações, consulte IAccessible::get_accHelpTopic no SDK do Windows.

CWnd::get_accKeyboardShortcut

Chamado pela estrutura para recuperar a tecla de atalho ou a tecla de acesso do objeto especificado.

virtual HRESULT get_accKeyboardShortcut(
    VARIANT varChild,
    BSTR* pszKeyboardShortcut);

Parâmetros

varChild
Especifica se o tópico de Ajuda a ser recuperado é aquele do objeto ou um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pszKeyboardShortcut
Endereço de um BSTR que recebe a cadeia de caracteres localizada que identifica o atalho de teclado, ou NULL se nenhum atalho de teclado estiver associado ao objeto especificado.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accKeyboardShortcut no SDK do Windows.

Comentários

Essa função faz parte do suporte Active Accessibility do MFC.

Substitua essa função em sua classe derivada por CWnd para identificar o atalho de teclado do objeto.

Para obter mais informações, consulte IAccessible::get_accKeyboardShortcut no SDK do Windows.

CWnd::get_accName

Chamado pela estrutura para recuperar o nome do objeto especificado.

virtual HRESULT get_accName(
    VARIANT varChild,
    BSTR* pszName);

Parâmetros

varChild
Especifica se o nome a ser recuperado é o do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pszName
Endereço de um BSTR que recebe uma cadeia de caracteres que contém o nome do objeto especificado.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accName no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função na classe derivada por CWnd para retornar o nome do objeto.

Para obter mais informações, consulte IAccessible::get_accName no SDK do Windows.

CWnd::get_accParent

Chamado pela estrutura para recuperar a interface IDispatch do pai do objeto.

virtual HRESULT get_accParent(IDispatch** ppdispParent);

Parâmetros

ppdispParent
Recebe o endereço da interface IDispatch do objeto pai. A variável será definida como NULL se nenhum pai existir ou se o filho não puder acessar seu pai.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accParent no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Na maioria dos casos, você não precisa substituir essa função.

Para obter mais informações, consulte IAccessible::get_accParent no SDK do Windows.

CWnd::get_accRole

Chamado pela estrutura para recuperar informações que descrevem a função do objeto especificado.

virtual HRESULT get_accRole(
    VARIANT varChild,
    VARIANT* pvarRole);

Parâmetros

varChild
Especifica se a informação da função a ser recuperada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pvarRole
Recebe as informações da função. Consulte pvarRole em IAccessible::get_accRole no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accRole no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::get_accRole no SDK do Windows.

CWnd::get_accSelection

Chamado pela estrutura para recuperar os filhos selecionados desse objeto.

virtual HRESULT get_accSelection(VARIANT* pvarChildren);

Parâmetros

pvarChildren
Recebe informações sobre quais crianças estão selecionadas. Consulte pvarChildren em IAccessible::get_accSelection no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accSelection no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::get_accSelection no SDK do Windows.

CWnd::get_accState

Chamado pela estrutura para recuperar o estado atual do objeto especificado.

virtual HRESULT get_accState(
    VARIANT varChild,
    VARIANT* pvarState);

Parâmetros

varChild
Especifica se a informação do estado a ser recuperada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pvarState
Recebe informações sobre o estado do objeto. Consulte pvarState em IAccessible::get_accState no SDK do Windows.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accState no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::get_accState no SDK do Windows.

CWnd::get_accValue

Chamado pela estrutura para recuperar o valor do objeto especificado.

virtual HRESULT get_accValue(
    VARIANT varChild,
    BSTR* pszValue);

Parâmetros

varChild
Especifica se a informação do valor a ser recuperada é a do objeto ou de um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF (para obter informações sobre o objeto) ou um ID filho (para obter informações sobre o elemento filho do objeto).

pszValue
Endereço do BSTR que recebe uma cadeia de caracteres localizada que contém o valor atual do objeto.

Valor de retorno

Retorna S_OK se houver êxito ou um código de erro COM em caso de falha. Consulte Valores retornados no IAccessible::get_accValue no SDK do Windows.

Comentários

Essa função faz parte do suporte à Acessibilidade Ativa do MFC.

Substitua essa função em uma classe derivada por CWnd se você tiver elementos de interface do usuário sem janelas (exceto por controles ActiveX sem janelas, tratados pelo MFC).

Para obter mais informações, consulte IAccessible::get_accValue no SDK do Windows.

CWnd::GetActiveWindow

Recupera um ponteiro para a janela ativa.

static CWnd* PASCAL GetActiveWindow();

Valor de retorno

A janela ativa ou NULL se nenhuma janela estava ativa no momento da chamada. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

A janela ativa é a janela que tem o foco de entrada atual ou a janela explicitamente ativada pela função membro SetActiveWindow.

CWnd::GetAncestor

Recupera o objeto de janela ancestral da janela especificada.

CWnd* GetAncestor(UINT gaFlags) const;

Parâmetros

gaFlags
Especifica o ancestral a ser recuperado. Para obter uma lista completa de valores possíveis, consulte GetAncestor.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será um ponteiro para o objeto de janela ancestral. Se a função falhar, o valor retornado será NULL.

Comentários

Essa função membro emula a funcionalidade da função GetAncestor, conforme descrito no SDK do Windows.

CWnd::GetCapture

Recupera a janela que tem a captura do mouse.

static CWnd* PASCAL GetCapture();

Valor de retorno

Identifica a janela que tem a captura do mouse. Será NULL se nenhuma janela tiver a captura do mouse.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Apenas uma janela tem a captura do mouse a qualquer momento. Uma janela recebe a captura do mouse quando a função membro SetCapture é chamada. Essa janela recebe a entrada do mouse se o cursor está ou não dentro de suas bordas.

CWnd::GetCaretPos

Recupera as coordenadas do cliente da posição atual do cursor e as retorna como CPoint.

static CPoint PASCAL GetCaretPos();

Valor de retorno

Objeto CPoint que contém as coordenadas da posição do cursor.

Comentários

A posição do cursor é fornecida nas coordenadas do cliente da janela CWnd.

CWnd::GetCheckedRadioButton

Recupera o ID do botão de opção selecionado no momento no grupo especificado.

int GetCheckedRadioButton(
    int nIDFirstButton,
    int nIDLastButton);

Parâmetros

nIDFirstButton
Especifica o identificador inteiro do primeiro botão de opção no grupo.

nIDLastButton
Especifica o identificador inteiro do último botão de opção no grupo.

Valor de retorno

ID do botão de opção selecionado ou 0 se nenhum estiver selecionado.

CWnd::GetClientRect

Copia as coordenadas da área do cliente CWnd na estrutura apontada por lpRect.

void GetClientRect(LPRECT lpRect) const;

Parâmetros

lpRect
Aponta para uma estrutura RECT ou um objeto CRect para receber as coordenadas do cliente. Os membros left e top serão 0. Os membros right e bottom conterão a largura e a altura da janela.

Comentários

As coordenadas do cliente especificam os cantos superior esquerdo e inferior direito da área do cliente. Como as coordenadas do cliente são relativas aos cantos superior esquerdos da área do cliente CWnd, as coordenadas do canto superior esquerdo são (0,0).

Exemplo

Confira o exemplo de CWnd::IsIconic.

CWnd::GetClipboardOwner

Recupera o proprietário atual da área de transferência.

static CWnd* PASCAL GetClipboardOwner();

Valor de retorno

Identifica a janela que possui a área de transferência se a função for bem-sucedida. Caso contrário, será NULL.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

A área de transferência ainda pode conter dados, mesmo que não sejam de propriedade no momento.

CWnd::GetClipboardViewer

Recupera a primeira janela na cadeia de visualizadores de área de transferência.

static CWnd* PASCAL GetClipboardViewer();

Valor de retorno

Identifica a janela atualmente responsável por exibir a área de transferência se tiver êxito; caso contrário, NULL (por exemplo, se não houver visualizador).

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

CWnd::GetControlUnknown

Chame essa função membro para recuperar um ponteiro para um controle OLE desconhecido.

LPUNKNOWN GetControlUnknown();

Valor de retorno

Um ponteiro para a interface IUnknown do controle OLE representado por este objeto CWnd. Se esse objeto não representar um controle OLE, o valor retornado será NULL.

Comentários

Você não deve liberar este ponteiro IUnknown. Normalmente, você usaria para obter uma interface específica do controle.

O ponteiro de interface retornado por GetControlUnknown não é contado por referência. Não chame IUnknown::Release no ponteiro, a menos que você tenha chamado IUnknown::AddRef anteriormente.

Exemplo

// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is a CDialog-derived class.

// IDC_MSACALCTRL1 is the ID of the Calendar control OCX embedded
// on this dialog
CWnd *pWndCal = GetDlgItem(IDC_MSACALCTRL1);

// Use the IUnknown of the control
LPUNKNOWN pUnk = pWndCal->GetControlUnknown();

// From there get the IDispatch interface of control
LPDISPATCH pDisp = NULL;
pUnk->QueryInterface(IID_IDispatch, (LPVOID*)&pDisp);

// use IDispatch method to invoke the control's functionality

CWnd::GetCurrentMessage

Retorna um ponteiro para a mensagem que esta janela está processando no momento. Só deve ser chamado quando estiver em uma função membro do manipulador de mensagens OnMessage.

static const MSG* PASCAL GetCurrentMessage();

Valor de retorno

Retorna um ponteiro para a estrutura MSG que contém a mensagem que a janela está processando no momento. Só deve ser chamado quando estiver em um manipulador OnMensagem.

Exemplo

Confira o exemplo de CMDIFrameWnd::MDICascade.

CWnd::GetDC

Recupera um ponteiro para um contexto de dispositivo comum, de classe ou privado para a área do cliente, dependendo do estilo de classe especificado para o CWnd.

CDC* GetDC();

Valor de retorno

Identifica o contexto do dispositivo para a área do cliente CWnd se tiver êxito; caso contrário, o valor retornado será NULL. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Para contextos comuns de dispositivo, GetDC define atributos padrão ao contexto sempre que ele é recuperado. Para contextos de classe e privados, GetDC deixa os atributos definidos anteriormente inalterados. O contexto do dispositivo pode ser usado em funções GDI (interface do dispositivo gráfico) subsequentes para desenhar na área do cliente.

A menos que o contexto do dispositivo pertença a uma classe de janela, a função membro ReleaseDC deve ser chamada para liberar o contexto após a pintura.

Um contexto de dispositivo que pertence à classe CWnd é retornado pela função membro GetDC se CS_CLASSDC, CS_OWNDCou CS_PARENTDC foi especificado como um estilo na estrutura WNDCLASS quando a classe foi registrada.

CWnd::GetDCEx

Recupera o identificador de um contexto de dispositivo para a janela CWnd.

CDC* GetDCEx(
    CRgn* prgnClip,
    DWORD flags);

Parâmetros

prgnClip
Identifica uma região de recorte que pode ser combinada com a região visível da janela do cliente.

flags
Pode ter um dos seguintes valores predefinidos:

  • DCX_CACHE Retorna um contexto de dispositivo do cache em vez da janela OWNDC ou CLASSDC. Substitui CS_OWNDC e CS_CLASSDC.

  • DCX_CLIPCHILDREN Exclui as regiões visíveis de todas as janelas filho abaixo da janela CWnd.

  • DCX_CLIPSIBLINGS Exclui as regiões visíveis de todas as janelas irmão acima da janela CWnd.

  • DCX_EXCLUDERGN Exclui a região de recorte identificada por prgnClip da região visível do contexto do dispositivo retornado.

  • DCX_INTERSECTRGN Intersecciona a região de recorte identificada por prgnClip dentro da região visível do contexto do dispositivo retornado.

  • DCX_LOCKWINDOWUPDATE Permite desenhar mesmo se houver uma chamada LockWindowUpdate em vigor que, de outra forma, excluiria essa janela. Esse valor é usado para desenhar durante o acompanhamento.

  • DCX_PARENTCLIPUsa a região visível da janela pai e ignora os bits de estilo WS_CLIPCHILDREN e WS_PARENTDC da janela pai. Esse valor define a origem do contexto do dispositivo como o canto superior esquerdo da janela CWnd.

  • DCX_WINDOW Retorna um contexto de dispositivo que corresponde ao retângulo da janela em vez do retângulo do cliente.

Valor de retorno

O contexto do dispositivo para a janela especificada se a função for bem-sucedida; caso contrário, NULL.

Comentários

O contexto do dispositivo pode ser usado em funções GDI (interface do dispositivo gráfico) subsequentes para desenhar na área do cliente.

Essa função, que é uma extensão para a função GetDC, fornece a aplicativos mais controle sobre como e se um contexto de dispositivo para uma janela é recortado.

A menos que o contexto do dispositivo pertença a uma classe de janela, a função membro ReleaseDC deve ser chamada para liberar o contexto após a pintura. Como apenas cinco contextos comuns de dispositivo estão disponíveis a qualquer momento, a falha ao liberar um contexto de dispositivo pode impedir que outros aplicativos obtenham acesso a um contexto de dispositivo.

Para obter um contexto de dispositivo armazenado em cache, um aplicativo deve especificar DCX_CACHE. Se DCX_CACHE não for especificado e a janela não for CS_OWNDC nem CS_CLASSDC, essa função retornará NULL.

Um contexto de dispositivo com características especiais é retornado pela função GetDCEx se o estilo CS_CLASSDC, CS_OWNDC ou CS_PARENTDC foi especificado na estrutura WNDCLASS quando a classe foi registrada.

Para obter mais informações sobre essas características, consulte a descrição da estrutura WNDCLASS no SDK do Windows.

CWnd::GetDCRenderTarget

Recupera o destino de renderização do contexto do dispositivo (DC) para a janela CWnd.

CDCRenderTarget* GetDCRenderTarget();

Valor de retorno

O destino de renderização do contexto do dispositivo para a janela especificada se a função for bem-sucedida; caso contrário, NULL.

Comentários

CWnd::GetDescendantWindow

Chame essa função membro para localizar a janela descendente especificada pelo ID fornecido.

CWnd* GetDescendantWindow(
    int nID,
    BOOL bOnlyPerm = FALSE) const;

Parâmetros

nID
Especifica o identificador da janela de controle ou filho a ser recuperada.

bOnlyPerm
Especifica se a janela a ser retornada pode ser temporária. Se TRUE, somente uma janela permanente pode ser retornada; se FALSE, a função pode retornar uma janela temporária. Para mais informações sobre janelas temporárias, consulte a Observação Técnica 3.

Valor de retorno

Um ponteiro para um objeto CWnd, ou NULL se nenhuma janela filho for encontrada.

Comentários

Essa função membro busca toda a árvore de janelas filho, não apenas as janelas filho imediatas.

CWnd::GetDesktopWindow

Recupera a janela da área de trabalho do Windows.

static CWnd* PASCAL GetDesktopWindow();

Valor de retorno

Identifica a janela da área de trabalho do Windows. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

A janela da área de trabalho cobre toda a tela e é a área na parte superior da qual todos os ícones e outras janelas são pintados.

CWnd::GetDlgCtrlID

Retorna o valor do ID de janela ou controle para qualquer janela filho, não apenas o de um controle em uma caixa de diálogo.

int GetDlgCtrlID() const;

Valor de retorno

O identificador numérico da janela filho CWnd se a função for bem-sucedida; caso contrário, 0.

Comentários

Como as janelas de nível superior não têm um valor de ID, o valor retornado dessa função é inválido se CWnd for uma janela de nível superior.

Exemplo

Confira o exemplo de CWnd::OnCtlColor.

CWnd::GetDlgItem

Recupera um ponteiro para o controle especificado ou janela filho em uma caixa de diálogo ou outra janela.

CWnd* GetDlgItem(int nID) const;

void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Parâmetros

nID
Especifica o identificador da janela de controle ou filho a ser recuperada.

phWnd
Um ponteiro para uma janela filho.

Valor de retorno

Um ponteiro para o controle determinado ou janela filho. Se nenhum controle com o ID inteiro fornecido pelo parâmetro nID existir, o valor será NULL.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

O ponteiro retornado geralmente é convertido no tipo de controle identificado por nID.

Exemplo

// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);

CWnd::GetDlgItemInt

Recupera o texto do controle identificado por nID.

UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans = NULL,
    BOOL bSigned = TRUE) const;

Parâmetros

nID
Especifica o identificador inteiro do controle de caixa de diálogo a ser convertido.

lpTrans
Aponta para a variável booliana que deve receber o sinalizador convertido.

bSigned
Especifica se o valor a ser recuperado está com sinal.

Valor de retorno

Especifica o valor convertido do texto do item da caixa de diálogo. Como 0 é um valor retornado válido, lpTrans deve ser usado para detectar erros. Se um valor de retorno com sinal for desejado, converta-o como um tipo int.

A função retornará 0 se o número convertido for maior que INT_MAX (para números com sinal) ou UINT_MAX (para números sem sinal).

Quando ocorrem erros, como encontrar caracteres não numéricos e exceder o máximo acima, GetDlgItemInt copia 0 para o local apontado por lpTrans. Se não houver erros, lpTrans receberá um valor diferente de zero. Se lpTrans for NULL, GetDlgItemInt não avisará sobre erros.

Comentários

Ele converte o texto do controle especificado na caixa de diálogo fornecida em um valor inteiro, tirando espaços extras no início do texto e convertendo dígitos decimais. Ele interrompe a conversão quando chega ao final do texto ou encontra qualquer caractere não numérico.

Se bSigned for TRUE, GetDlgItemInt verifica se há um sinal de menos (-) no início do texto e converte o texto em um número com sinal. Caso contrário, ele criará um valor sem sinal.

Ele envia uma mensagem WM_GETTEXT para o controle.

CWnd::GetDlgItemText

Chame essa função membro para recuperar o título ou texto associado a um controle em uma caixa de diálogo.

int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

int GetDlgItemText(
    int nID,
    CString& rString) const;

Parâmetros

nID
Especifica o identificador inteiro do controle cujo título deve ser recuperado.

lpStr
Aponta para o buffer para receber o título ou texto do controle.

nMaxCount
Especifica o comprimento máximo (em caracteres) da cadeia de caracteres a ser copiada para lpStr. Se a cadeia de caracteres for maior do que nMaxCount, ela será truncada.

rString
Uma referência a um CString.

Valor de retorno

Especifica o número real de caracteres copiados para o buffer, não incluindo o caractere nulo de encerramento. O valor será 0 se nenhum texto for copiado.

Comentários

A função membro GetDlgItemText copia o texto para o local apontado por lpStr e retorna uma contagem do número de bytes copiados.

CWnd::GetDSCCursor

Chame essa função membro para recuperar um ponteiro para o cursor subjacente definido por DataSource, UserName e Password, e as propriedades SQL do controle de fonte de dados.

IUnknown* GetDSCCursor();

Valor de retorno

Um ponteiro para um cursor definido por um controle de fonte de dados. O MFC chama AddRef para o ponteiro.

Comentários

Use o ponteiro retornado para definir a propriedade ICursor de um controle complexo associado a dados, como o controle de grade associado a dados. Um controle de fonte de dados não ficará ativo até que o primeiro controle associado solicite seu cursor. Isso pode acontecer explicitamente por uma chamada de GetDSCCursor ou implicitamente pelo gerente de associação do MFC. Em ambos os casos, você pode forçar um controle de fonte de dados a se tornar ativo chamando GetDSCCursor e depois chamando Release no ponteiro retornado para IUnknown. A ativação fará com que o controle da fonte de dados tente se conectar à fonte de dados subjacente. O ponteiro retornado pode ser usado no seguinte contexto:

Exemplo

BOOL CMyDlg::OnInitDialog()
{
   // Find the child controls on the dialog
   HRESULT hr = E_FAIL;
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pListWnd = GetDlgItem(IDC_DBLIST1);
   IUnknown *punkList = pListWnd->GetControlUnknown();
   IDBList *pList = NULL;

   if (NULL != punkList)
   {
      hr = punkList->QueryInterface(__uuidof(IDBList), (void **)&pList);
   }

   if (SUCCEEDED(hr))
   {
      // Tell the MFC binding manager that we are
      // binding DISPID 3 to the data-source control.
      pListWnd->BindProperty(0x3, pDSC);

      // Tell the listbox which field to expose as its bound column
      pList->put_BoundColumn(_T("ContactFirstName"));

      // Tell the listbox which cursor and column to populate its list from
      pList->put_ListField(_T("ContactFirstName"));

      IUnknown *punkCursor = pDSC->GetDSCCursor();
      if (NULL != punkCursor)
      {
         punkCursor->Release();
      }

      pList->Release();
      return TRUE;
   }

CWnd::GetDynamicLayout

Recupera um ponteiro para o objeto gerenciador de layout dinâmico.

CMFCDynamicLayout* GetDynamicLayout();

Valor de retorno

Um ponteiro para o objeto gerenciador de layout dinâmico ou NULL se o layout dinâmico não estiver habilitado.

Comentários

O objeto de janela possui e gerencia o tempo de vida do ponteiro retornado, portanto, ele só deve ser usado para acessar o objeto; não exclua o ponteiro ou armazene o ponteiro permanentemente.

CWnd::GetExStyle

Retorna os estilos estendidos da janela.

DWORD GetExStyle() const;

Valor de retorno

Os estilos estendidos da janela. Para obter mais informações sobre os estilos estendidos de janela usados no MFC, consulte Estilos de Janela Estendidos.

CWnd::GetFocus

Recupera um ponteiro para o CWnd que atualmente tem o foco de entrada.

static CWnd* PASCAL GetFocus();

Valor de retorno

Um ponteiro para a janela que tem o foco atual ou NULL se não há janela de foco.

O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

CWnd::GetFont

Envia a mensagem WM_GETFONT para a janela para recuperar a fonte atual.

CFont* GetFont() const;

Valor de retorno

Ponteiro para um objeto CFont anexado à fonte atual da janela.

Comentários

Esse método não tem efeito, a menos que a janela processe a mensagem WM_GETFONT. Muitas classes MFC derivam do processo CWnd dessa mensagem porque estão anexadas a uma classe de janela predefinida que inclui um manipulador de mensagens para a mensagem WM_GETFONT. Para usar esse método, as classes das quais você deriva de CWnd devem definir um manipulador de métodos para a mensagem WM_GETFONT.

CWnd::GetForegroundWindow

Retorna um ponteiro para a janela de primeiro plano (a janela de nível superior com a qual o usuário está trabalhando no momento).

static CWnd* PASCAL GetForegroundWindow();

Valor de retorno

Um ponteiro para a janela de primeiro plano. Essa pode ser um objeto CWnd temporário.

Comentários

A janela em primeiro plano se aplica apenas a janelas de nível superior (janelas de quadro ou caixas de diálogo).

CWnd::GetIcon

Chame essa função membro para obter o identificador para um ícone grande (32x32) ou o identificador para um ícone pequeno (16x16), conforme indicado por bBigIcon.

HICON GetIcon(BOOL bBigIcon) const;

Parâmetros

bBigIcon
Especifica um ícone de 32 por 32 pixels se TRUE; especifica um ícone de 16 por 16 pixels se FALSE.

Valor de retorno

Um identificador para um ícone. Caso contrário, retornará NULL.

CWnd::GetLastActivePopup

Determina qual janela pop-up de propriedade de CWnd foi mais recentemente ativa.

CWnd* GetLastActivePopup() const;

Valor de retorno

Identifica a janela pop-up ativa mais recentemente. O valor retornado será a própria janela se qualquer uma das seguintes condições for atendida:

  • A janela em si estava mais recentemente ativa.

  • A janela não possui janelas pop-up.

  • A janela não é uma janela de nível superior ou pertence a outra janela.

O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Exemplo

Confira o exemplo de CWnd::FindWindow.

CWnd::GetLayeredWindowAttributes

Recupera a chave de cor de opacidade e transparência de uma janela em camadas.

BOOL GetLayeredWindowAttributes(
    COLORREF* pcrKey,
    BYTE* pbAlpha,
    DWORD* pdwFlags) const;

Parâmetros

pcrKey
Ponteiro para um valor COLORREF que recebe a chave de cor de transparência a ser usada ao redigir a janela em camadas. Todos os pixels pintados pela janela nessa cor serão transparentes. Isso pode ser NULL se o argumento não for necessário.

pbAlpha
Ponteiro para um BYTE que recebe o valor Alfa usado para descrever a opacidade da janela em camadas. Quando a variável referida por pbAlpha é 0, a janela é completamente transparente. Quando a variável referida por pbAlpha é 255, a janela é completamente opaca. Isso pode ser NULL se o argumento não for necessário.

pdwFlags
Ponteiro para um DWORD que recebe um sinalizador em camadas. Isso pode ser NULL se o argumento não for necessário. Para uma lista completa de possíveis valores, consulte `GetLayeredWindowAttributes.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função GetLayeredWindowAttributes, conforme descrito no SDK do Windows.

CWnd::GetMenu

Recupera um ponteiro para o menu desta janela.

CMenu* GetMenu() const;

Valor de retorno

Identifica o menu. O valor será NULL se CWnd não tiver nenhum menu. O valor retornado será indefinido se CWnd for uma janela filho.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Essa função não deve ser usada para janelas filho porque elas não têm um menu.

Exemplo

void CMainFrame::OnCwndDeletefilemenu()
{
   // This example deletes the leftmost popup menu or leftmost
   // popup menu item from the application's main window.
   CWnd *pMain = AfxGetMainWnd();

   // The main window _can_ be NULL, so this code
   // doesn't ASSERT and actually tests.
   if (pMain != NULL)
   {
      // Get the main window's menu
      CMenu *pMenu = pMain->GetMenu();

      // If there is a menu and it has items, we'll
      // delete the first one.
      if (pMenu != NULL && pMenu->GetMenuItemCount() > 0)
      {
         pMenu->DeleteMenu(0, MF_BYPOSITION);
         // force a redraw of the menu bar
         pMain->DrawMenuBar();
      }

      // No need to delete pMenu because it is an MFC
      // temporary object.
   }
}

CWnd::GetMenuBarInfo

Recupera informações sobre a barra de menus especifica.

BOOL GetMenuBarInfo(
    LONG idObject,
    LONG idItem,
    PMENUBARINFO pmbi) const;

Parâmetros

idObject
Especifica o objeto de menu. Para obter uma lista de valores possíveis, consulte GetMenuBarInfo.

idItem
Especifica o item para o qual recuperar informações. Se esse parâmetro for zero, a função recuperará informações sobre o próprio menu. Se esse parâmetro for 1, a função recuperará informações sobre o primeiro item no menu, e assim por diante.

pmbi
Ponteiro para uma estrutura MENUBARINFO que recebe a informação.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função GetMenuBarInfo, conforme descrito no SDK do Windows.

CWnd::GetNextDlgGroupItem

Busca o controle anterior ou próximo dentro de um grupo de controles em uma caixa de diálogo.

CWnd* GetNextDlgGroupItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgGroupItem(
    COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;

Parâmetros

pWndCtl
Identifica o controle a ser usado como o ponto de partida para a busca.

bPrevious
Especifica como a função é buscar o grupo de controles na caixa de diálogo. Se TRUE, a função procura o controle anterior no grupo; se FALSE, ele procura o próximo controle no grupo.

pCurSiteOrWnd
Identifica o controle COleControlSiteOrWnd. Para obter mais informações sobre o COleControlSiteOrWnd, confira a seção Comentários.

Valor de retorno

Ponteiro para o controle anterior ou próximo no grupo se a função membro for bem-sucedida.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Um grupo de controles começa com um controle que foi criado com o estilo WS_GROUP e termina com o último controle que não foi criado com o estilo WS_GROUP.

Por padrão, a função membro GetNextDlgGroupItem retorna um ponteiro para o próximo controle no grupo. Se pWndCtl identificar o primeiro controle no grupo e bPrevious for TRUE, GetNextDlgGroupItem retornará um ponteiro para o último controle do grupo.

Observação

Como o MFC dá suporte a controles ActiveX sem janelas, controles ActiveX padrão e janelas, referir-se a um controle como apenas um HWND não basta mais. O objeto COleControlSiteOrWnd inclui informações que identificam o objeto como um controle ActiveX com janelas, um controle ActiveX sem janelas ou uma janela, da seguinte maneira:

Controle ou tipo de janela Informações de identificação
Controle ActiveX com janela Contém um HWND e associa um objeto COleControlSite a ele. O membro m_hWnd de COleControlSiteOrWnd é definido como o HWND do controle e o membro m_pSite aponta para o controle COleControlSite.
Controle ActiveX sem janela Não contém nenhum HWND. O membro m_pSite do COleControlSiteOrWnd aponta para o COleControlSite do controle e o membro m_hWnd é NULL.
Janela padrão Contém apenas um HWND. O membro m_hWnd de COleControlSiteOrWnd é definido como o HWND da janela e o membro m_pSite é NULL.

CWnd::GetNextDlgTabItem

Recupera um ponteiro para o primeiro controle que foi criado com o estilo WS_TABSTOP e que precede ou segue o controle especificado.

CWnd* GetNextDlgTabItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgTabItem(
    COleControlSiteOrWnd* pCurSiteOrWnd,
    BOOL bPrevious) const;

Parâmetros

pWndCtl
Identifica o controle a ser usado como o ponto de partida para a busca.

pCurSiteOrWnd
Identifica o controle COleControlSiteOrWnd. Para obter mais informações sobre COleControlSiteOrWnd, consulte CWnd::GetNextDlgGroupItem.

bPrevious
Especifica como a função é buscar a caixa de diálogo. Se TRUE, a função procura o controle anterior na caixa de diálogo; se FALSE, ele procura o próximo controle.

Valor de retorno

Ponteiro para o controle anterior ou próximo que tem o estilo WS_TABSTOP se a função membro for bem-sucedida.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Para obter mais informações sobre COleControlSiteOrWnd, consulte CWnd::GetNextDlgGroupItem.

CWnd::GetNextWindow

Busca a próxima janela (ou anterior) na lista do gerenciador de janelas.

CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;

Parâmetros

nFlag
Especifica se a função retorna um ponteiro para a próxima janela ou a janela anterior. Pode ser GW_HWNDNEXT, o que retorna a janela que segue o objeto CWnd na lista do gerenciador de janelas, ou GW_HWNDPREV, que retorna a janela anterior na lista do gerenciador de janelas.

Valor de retorno

Identifica a próxima janela (ou anterior) na lista do gerenciador de janelas se a função membro for bem-sucedida.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

A lista do gerenciador de janelas contém entradas para todas as janelas de nível superior, suas janelas filho associadas e as janelas filho de qualquer janela filho.

Se CWnd for uma janela de nível superior, a função procurará a próxima janela (ou anterior) de nível superior; se CWnd for uma janela filho, a função procurará a próxima janela (ou anterior) filho.

CWnd::GetOleControlSite

Recupera o site personalizado para o controle ActiveX especificado.

COleControlSite* GetOleControlSite(UINT idControl) const;

Parâmetros

idControl
O ID do controle ActiveX.

CWnd::GetOpenClipboardWindow

Recupera o identificador para a janela que atualmente tem a área de transferência aberta.

static CWnd* PASCAL GetOpenClipboardWindow();

Valor de retorno

O identificador da janela que atualmente tem a área de transferência aberta se a função for bem-sucedida; caso contrário, NULL.

CWnd::GetOwner

Recupera um ponteiro para o proprietário da janela.

CWnd* GetOwner() const;

Valor de retorno

Um ponteiro para um objeto CWnd.

Comentários

Se a janela não tiver proprietário, um ponteiro para o objeto da janela pai será retornado por padrão. Observe que a relação entre o proprietário e a propriedade difere do aspecto pai-filho em vários aspectos importantes. Por exemplo, uma janela com um pai está confinada à área de cliente da janela pai. Janelas de propriedade podem ser desenhadas em qualquer local na área de trabalho.

O conceito de propriedade dessa função é diferente do conceito de propriedade de GetWindow.

CWnd::GetParent

Chame essa função para obter um ponteiro para a janela pai de uma janela filho (se houver).

CWnd* GetParent() const;

Valor de retorno

Consulte a seção Valores retornados no GetParent no SDK do Windows.

Comentários

A função GetParent retorna um ponteiro para o pai imediato (se existir). Em contraste, a função GetParentOwner retorna um ponteiro para a janela pai ou proprietária mais imediata que não é uma janela filho (não tem o estilo WS_CHILD). Se você tiver uma janela filho dentro de uma janela filho, GetParent e GetParentOwner retornam resultados diferentes.

CWnd::GetParentFrame

Chame essa função membro para recuperar a janela do quadro pai.

CFrameWnd* GetParentFrame() const;

Valor de retorno

Um ponteiro para uma janela de quadro se tiver êxito; caso contrário, NULL.

Comentários

A função membro pesquisa a cadeia pai até que um objeto CFrameWnd (ou classe derivada) seja encontrado.

CWnd::GetParentOwner

Chame essa função membro para obter um ponteiro para a janela pai ou a janela proprietária de uma janela filho.

CWnd* GetParentOwner() const;

Valor de retorno

Um ponteiro para um objeto CWnd. Se um objeto CWnd não estiver anexado ao identificador, um objeto temporário CWnd será criado e anexado. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

GetParentOwner retorna um ponteiro para a janela pai ou proprietária mais imediata que não é uma janela filho (não tem o estilo WS_CHILD). A janela proprietária atual pode ser definida com SetOwner. Por padrão, o pai de uma janela é seu proprietário.

Em contraste, a função GetParent retorna um ponteiro para o pai imediato, seja uma janela filho ou não. Se você tiver uma janela filho dentro de uma janela filho, GetParent e GetParentOwner retornam resultados diferentes.

CWnd::GetProperty

Chame essa função membro para obter a propriedade de controle ActiveX especificada por dwDispID.

void GetProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    void* pvProp)const;

Parâmetros

dwDispID
Identifica a propriedade a ser recuperada.

vtProp
Especifica o tipo da propriedade a ser recuperada. Para valores possíveis, consulte a seção Comentários para COleDispatchDriver::InvokeHelper.

pvProp
Endereço da variável que receberá o valor da propriedade. Ele deve corresponder ao tipo especificado por vtProp.

Comentários

GetProperty retorna o valor por meio de pvProp.

Observação

Essa função deve ser chamada somente em um objeto CWnd que representa um controle ActiveX.

Para obter mais informações sobre como usar essa função membro com contêineres de controle ActiveX, consulte o artigo Contêineres de Controle ActiveX: programação de controles ActiveX em um contêiner de controle ActiveX.

CWnd::GetRenderTarget

Obtém um destino de renderização associado a essa janela.

CHwndRenderTarget* GetRenderTarget();

Valor de retorno

Ponteiro para o destino de renderização ou NULL.

CWnd::GetSafeHwnd

Retorna m_hWnd, ou NULL se ponteiro this for NULL.

HWND GetSafeHwnd() const;

Valor de retorno

Retorna o identificador de janela de uma janela. Retorna NULL se o não estiver anexado CWnd a uma janela ou se for usado com um NULL CWnd ponteiro.

Exemplo

Confira o exemplo de CWnd::SubclassWindow.

CWnd::GetSafeOwner

Chame essa função membro para recuperar a janela proprietária que deve ser usada para caixas de diálogo ou outras janelas restritas.

static CWnd* GetSafeOwner(
    CWnd* pParent = NULL,
    HWND* pWndTop = NULL);

Parâmetros

pParent
Um ponteiro para uma janela CWnd pai. Pode ser NULL.

pWndTop
Um ponteiro para a janela que está atualmente na parte superior. Pode ser NULL.

Valor de retorno

Um ponteiro para o proprietário seguro da janela fornecida.

Comentários

O proprietário seguro é a primeira janela pai não filho de pParent. Se pParent for NULL, a janela principal do thread (recuperada via AfxGetMainWnd) é usada para localizar um proprietário.

Observação

A estrutura em si usa essa função para determinar a janela proprietária correta para caixas de diálogo e folhas de propriedades em que o proprietário não é especificado.

CWnd::GetScrollBarCtrl

Chame essa função membro para obter um ponteiro para a barra de rolagem ou divisor de janela irmão especificado.

virtual CScrollBar* GetScrollBarCtrl(int nBar) const;

Parâmetros

nBar
Especifica o tipo de barra de rolagem. O parâmetro pode ter um dos seguintes valores:

  • SB_HORZ Recupera a posição da barra de rolagem horizontal.

  • SB_VERT Recupera a posição da barra de rolagem vertical.

Valor de retorno

Um controle de barra de rolagem irmão, ou NULL se nenhum.

Comentários

Essa função membro não opera em barras de rolagem criadas quando os bits WS_HSCROLL ou WS_VSCROLL são definidos durante a criação de uma janela. A implementação CWnd dessa função simplesmente retorna NULL. Classes derivadas, como CView, implementam a funcionalidade descrita.

CWnd::GetScrollBarInfo

Recupera informações sobre a barra de rolagem especificada.

BOOL GetScrollBarInfo(
    LONG idObject,
    PSCROLLBARINFO psbi) const;

Parâmetros

idObject
Especifica o objeto de menu. Para obter uma lista de valores possíveis, consulte GetScrollBarInfo.

psbi
Ponteiro para uma estrutura SCROLLBARINFO que recebe a informação.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função GetScrollBarInfo, conforme descrito no SDK do Windows.

CWnd::GetScrollInfo

Chame essa função membro para recuperar as informações que a estrutura SCROLLINFO mantém sobre uma barra de rolagem.

BOOL GetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    UINT nMask = SIF_ALL);

Parâmetros

nBar
Especifica se a barra de rolagem é um controle ou parte da área não cliente de uma janela. Se fizer parte da área não cliente, nBar também indicará se a barra de rolagem está posicionada horizontalmente, verticalmente ou ambas. Deve ser um dos seguintes:

  • SB_CTL Recupera os parâmetros de um controle de barra de rolagem. O membro de dados m_hWnd deve ser o identificador do controle de barra de rolagem.

  • SB_HORZ Recupera os parâmetros da barra de rolagem horizontal padrão da janela.

  • SB_VERT Recupera os parâmetros da barra de rolagem vertical padrão da janela.

lpScrollInfo
Um ponteiro para uma estrutura SCROLLINFO. Para obter mais informações sobre essa estrutura, consulte o SDK do Windows.

nMask
Especifica os parâmetros da barra de rolagem a serem recuperados. O padrão especifica uma combinação de SIF_PAGE, SIF_POS, SIF_TRACKPOS e SIF_RANGE. Confira SCROLLINFO para mais informações sobre os valores nMask.

Valor de retorno

Se a mensagem tiver recuperado qualquer valor, o retorno será TRUE. Caso contrário, será FALSE.

Comentários

GetScrollInfo permite que os aplicativos usem posições de rolagem de 32 bits.

A estrutura SCROLLINFO contém informações sobre uma barra de rolagem, incluindo as posições de rolagem mínimas e máximas, o tamanho da página e a posição da caixa de rolagem (o polegar). Confira o tópico de estrutura SCROLLINFO no SDK do Windows para mais informações sobre como alterar os padrões de estrutura.

Os manipuladores de mensagens do Windows MFC que indicam a posição da barra de rolagem, CWnd::OnHScroll e CWnd::OnVScroll, fornecem apenas 16 bits de dados de posição. GetScrollInfo e SetScrollInfo fornecem 32 bits de dados de posição da barra de rolagem. Assim, um aplicativo pode chamar GetScrollInfo durante o processamento de CWnd::OnHScrollou CWnd::OnVScroll para obter dados de posição da barra de rolagem de 32 bits.

CWnd::GetScrollLimit

Chame essa função membro para recuperar a posição máxima de rolagem da barra de rolagem.

int GetScrollLimit(int nBar);

Parâmetros

nBar
Especifica o tipo de barra de rolagem. O parâmetro pode ter um dos seguintes valores:

  • SB_HORZ Recupera o limite de rolagem da barra de rolagem horizontal.

  • SB_VERT Recupera o limite de rolagem da barra de rolagem vertical.

Valor de retorno

Especifica a posição máxima de uma barra de rolagem se tiver êxito; caso contrário, 0.

CWnd::GetScrollPos

Recupera a posição atual da caixa de rolagem de uma barra de rolagem.

int GetScrollPos(int nBar) const;

Parâmetros

nBar
Especifica a barra de rolagem a ser examinada. O parâmetro pode ter um dos seguintes valores:

  • SB_HORZ Recupera a posição da barra de rolagem horizontal.

  • SB_VERT Recupera a posição da barra de rolagem vertical.

Valor de retorno

Especifica a posição máxima da caixa de rolagem na barra de rolagem se tiver êxito; caso contrário, 0.

Comentários

A posição atual é um valor relativo que depende do intervalo de rolagem atual. Por exemplo, se o intervalo de rolagem for de 50 a 100 e a caixa de rolagem estiver no meio da barra, a posição atual será 75.

CWnd::GetScrollRange

Copia as posições de barra de rolagem mínimas e máximas atuais para a barra de rolagem fornecida para os locais especificados por lpMinPos e lpMaxPos.

void GetScrollRange(
    int nBar,
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Parâmetros

nBar
Especifica a barra de rolagem a ser examinada. O parâmetro pode ter um dos seguintes valores:

  • SB_HORZ Recupera a posição da barra de rolagem horizontal.

  • SB_VERT Recupera a posição da barra de rolagem vertical.

lpMinPos
Aponta para a variável inteira que deve receber a posição mínima.

lpMaxPos
Aponta para a variável inteira que deve receber a posição máxima.

Comentários

Se CWnd não tiver uma barra de rolagem, a função membro GetScrollRange copiará 0 para lpMinPos e lpMaxPos.

O intervalo padrão para uma barra de rolagem padrão é de 0 a 100. O intervalo padrão para um controle de barra de rolagem está vazio (ambos os valores são 0).

CWnd::GetStyle

Retorna o estilo da janela atual.

DWORD GetStyle() const;

Valor de retorno

O estilo da janela. Para obter mais informações sobre os estilos de janela usados no MFC, consulte Estilos de janela.

CWnd::GetSystemMenu

Permite que o aplicativo acesse o menu Controle para cópia e modificação.

CMenu* GetSystemMenu(BOOL bRevert) const;

Parâmetros

bRevert
Especifica a ação a ser executada. Se bRevert for FALSE, GetSystemMenu retorna um identificador para uma cópia do menu Controle atualmente em uso. Essa cópia é inicialmente idêntica ao menu Controle, mas pode ser modificada. Se bRevert for TRUE, GetSystemMenu redefine o menu Controle de volta para o estado padrão. O menu Controle anterior, possivelmente modificado, será destruído. O valor retornado é indefinido nesse caso.

Valor de retorno

Identifica uma cópia do menu Controle se bRevert for FALSE. Se bRevert for TRUE, o valor retornado será indefinido.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Qualquer janela que não usa GetSystemMenu para fazer sua própria cópia do menu Controle recebe o menu Controle padrão.

O ponteiro retornado pela função membro GetSystemMenu pode ser usado com as funções CMenu::AppendMenu, CMenu::InsertMenuou CMenu::ModifyMenu para alterar o menu Controle.

Inicialmente, o menu Controle contém itens identificados com vários valores de ID, como SC_CLOSE, SC_MOVEe SC_SIZE. Itens no menu Controle geram mensagens WM_SYSCOMMAND. Todos os itens predefinidos do menu Controle têm números de ID maiores que 0xF000. Se um aplicativo adicionar itens ao menu Controle, ele deverá usar números de ID menores que F000.

O Windows pode tornar os itens indisponíveis automaticamente no menu Controle padrão. CWnd pode realizar sua própria seleção ou indisponibilidade respondendo às mensagens WM_INITMENU, que são enviadas antes que qualquer menu seja exibido.

Exemplo

// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
   CString strAboutMenu;
   strAboutMenu.LoadString(IDS_ABOUT);
   if (!strAboutMenu.IsEmpty())
   {
      pSysMenu->AppendMenu(MF_SEPARATOR);
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
   }
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE);  // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

CWnd::GetTitleBarInfo

Recupera informações sobre a barra de legenda especificada.

BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;

Parâmetros

pti
Ponteiro para uma estrutura TITLEBARINFO que recebe a informação.

Comentários

Essa função membro emula a funcionalidade da função GetTitleBarInfo, conforme descrito no SDK do Windows.

CWnd::GetTopLevelFrame

Chame essa função membro para recuperar a janela de quadro de nível superior da janela, se houver.

CFrameWnd* GetTopLevelFrame() const;

Valor de retorno

Identifica a janela de quadro de nível superior da janela.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Se CWnd não tiver nenhuma janela anexada ou seu pai de nível superior não for um objeto derivado por CFrameWnd, essa função retornará NULL.

CWnd::GetTopLevelOwner

Chame essa função membro para recuperar a janela de nível superior.

CWnd* GetTopLevelOwner() const;

Valor de retorno

Identifica a janela de nível superior. O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

A janela de nível superior é a janela que é filho da área de trabalho. Se CWnd não tiver nenhuma janela anexada, essa função retornará NULL.

CWnd::GetTopLevelParent

Chame essa função membro para recuperar a janela pai de nível superior da janela, se houver.

CWnd* GetTopLevelParent() const;

Valor de retorno

Identifica a janela pai de nível superior da janela.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

GetTopLevelParent é semelhante a GetTopLevelFrame e GetTopLevelOwner; no entanto, ele ignora o valor definido como a janela proprietária atual.

CWnd::GetTopWindow

Busca a janela filho de nível superior que pertence a CWnd.

CWnd* GetTopWindow() const;

Valor de retorno

Identifica a janela filho de nível superior em uma lista vinculada de janelas filho CWnd. Se nenhuma janela filho existir, o valor será NULL.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Se CWnd não tiver filho, essa função retornará NULL.

CWnd::GetUpdateRect

Recupera as coordenadas do menor retângulo que envolve completamente a região de atualização.

BOOL GetUpdateRect(
    LPRECT lpRect,
    BOOL bErase = FALSE);

Parâmetros

lpRect
Aponta para um objeto CRect ou estruturaRECT que deve receber as coordenadas de cliente da atualização que inclui a região de atualização.

Defina esse parâmetro para NULL para determinar se existe uma região de atualização dentro do CWnd. Se lpRect for NULL, a função membro GetUpdateRect retornará um valor diferente de zero se existir uma região de atualização e 0 se não existir. Isso permite uma maneira de determinar se uma mensagem WM_PAINT resultou de uma área inválida. Não defina esse parâmetro como NULL na versão 3.0 ou anterior do Windows.

bErase
Especifica se a tela de fundo dentro da região de atualização deve ser apagada.

Valor de retorno

Especifica o status da região de atualização. O valor será diferente de zero se a região de atualização não estiver vazia; caso contrário, 0.

Se o parâmetro lpRect for definido como NULL, o valor retornado será diferente de zero se existir uma região de atualização; caso contrário, 0.

Comentários

Se CWnd foi criado com o estilo CS_OWNDC e o modo de mapeamento não é MM_TEXT, a função membro GetUpdateRect fornece o retângulo em coordenadas lógicas. Caso contrário, GetUpdateRect fornece o retângulo nas coordenadas do cliente. Se não houver nenhuma região de atualização, GetUpdateRect definirá o retângulo como vazio (define todas as coordenadas como 0).

O parâmetro bErase especifica se GetUpdateRect deve apagar o plano de fundo da região de atualização. Se bErase for TRUE e a região de atualização não estiver vazia, a tela de fundo será apagada. Para apagar o plano de fundo, GetUpdateRect envia a mensagem WM_ERASEBKGND.

O retângulo de atualização recuperado pela função membro BeginPaint é idêntico ao recuperado pela função membro GetUpdateRect.

A função membro BeginPaint valida automaticamente a região de atualização, portanto, qualquer chamada de GetUpdateRect feita imediatamente após uma chamada de BeginPaint recupera uma região de atualização vazia.

CWnd::GetUpdateRgn

Recupera a região de atualização em uma região identificada por pRgn.

int GetUpdateRgn(
    CRgn* pRgn,
    BOOL bErase = FALSE);

Parâmetros

pRgn
Identifica a região de atualização.

bErase
Especifica se a tela de fundo será apagada e áreas não cliente de janelas filho serão desenhadas. Se o valor for FALSE, nenhum desenho será feito.

Valor de retorno

Especifica um sinalizador de inteiro curto que indica o tipo de região resultante. O valor pode levar qualquer um dos seguintes:

  • SIMPLEREGION A região não tem bordas sobrepostas.

  • COMPLEXREGION A região tem bordas sobrepostas.

  • NULLREGION A região está vazia.

  • ERROR Nenhuma região foi criada.

Comentários

As coordenadas dessa região são relativas ao canto superior esquerdo (coordenadas do cliente).

A função membro BeginPaint valida automaticamente a região de atualização, portanto, qualquer chamada de GetUpdateRgn feita imediatamente após uma chamada de BeginPaint recupera uma região de atualização vazia.

CWnd::GetWindow

Retorna um ponteiro para a janela solicitada ou NULL se nenhum.

CWnd* GetWindow(UINT nCmd) const;

Parâmetros

*nCmd*
Especifica a relação entre CWnd e a janela retornada. Pode usar um dos seguintes valores:

  • GW_CHILD Identifica a primeira janela filho CWnd.

  • GW_HWNDFIRST Se CWnd for uma janela filho, retornará a primeira janela irmão. Caso contrário, ele retornará a primeira janela de nível superior da lista.

  • GW_HWNDLAST Se CWnd for uma janela filho, retornará a última janela irmão. Caso contrário, ele retornará a última janela de nível superior da lista.

  • GW_HWNDNEXT Retorna a próxima janela na lista do gerenciador de janelas.

  • GW_HWNDPREV Retorna a janela anterior na lista do gerenciador de janelas.

  • GW_OWNER Identifica o proprietário CWnd.

Valor de retorno

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

CWnd::GetWindowContextHelpId

Chame essa função membro para recuperar o identificador de contexto de ajuda, se houver, associado à janela.

DWORD GetWindowContextHelpId() const;

Valor de retorno

O identificador de contexto de ajuda. Retorna 0 se a janela não tiver nenhuma.

CWnd::GetWindowedChildCount

Chame essa função membro para recuperar o número de janelas filho associadas.

long GetWindowedChildCount();

Valor de retorno

O número de janelas filho associadas ao objeto CWnd.

CWnd::GetWindowDC

Recupera o contexto de exibição de toda a janela, incluindo a barra de legendas, menus e barras de rolagem.

CDC* GetWindowDC();

Valor de retorno

Identifica o contexto de exibição da janela fornecida se a função for bem-sucedida; caso contrário, NULL.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior. ReleaseDC deve ser chamado uma vez para cada chamada bem-sucedida de GetWindowDC.

Comentários

Um contexto de exibição de janela permite a pintura em qualquer lugar em CWnd, uma vez que a origem do contexto é o canto superior esquerdo em CWnd vez da área do cliente.

Os atributos padrão são atribuídos ao contexto de exibição sempre que ele recupera o contexto. Atributos anteriores são perdidos.

GetWindowDC deve ser usado para efeitos especiais de pintura dentro da área não cliente CWnd. Não é recomendável pintar em áreas não cliente de qualquer janela.

A função GetSystemMetrics do Windows pode ser usada para recuperar as dimensões de várias partes da área não cliente, como a barra de legendas, o menu e as barras de rolagem.

Após a conclusão da pintura, a função membro ReleaseDC deve ser chamada para liberar o contexto de exibição. A falha ao liberar o contexto de exibição afetará seriamente a pintura solicitada pelos aplicativos devido a limitações no número de contextos de dispositivo que podem ser abertos ao mesmo tempo.

CWnd::GetWindowInfo

Recupera informações sobre a janela.

BOOL GetWindowInfo(PWINDOWINFO pwi) const;

Parâmetros

pwi
Um ponteiro para uma estrutura WINDOWINFO.

Comentários

Essa função membro emula a funcionalidade da função GetWindowInfo, conforme descrito no SDK do Windows.

CWnd::GetWindowlessChildCount

Recupera o número de janelas filho sem janelas associadas.

long GetWindowlessChildCount();

Valor de retorno

O número de janelas filho sem janela associadas ao objeto CWnd.

CWnd::GetWindowPlacement

Recupera o estado do show e as posições normais (restauradas), minimizadas e maximizadas de uma janela.

BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;

Parâmetros

lpwndpl
Aponta para a estrutura WINDOWPLACEMENT que recebe as informações de estado e posição de exibição.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

O membro flags da estrutura WINDOWPLACEMENT recuperada por essa função é sempre 0. Se CWnd for maximizado, o membro showCmd de WINDOWPLACEMENT é SW_SHOWMAXIMIZED. Se a janela é minimizada, é SW_SHOWMINIMIZED. Caso contrário, é SW_SHOWNORMAL.

CWnd::GetWindowRect

Copia as dimensões do retângulo delimitador do objeto CWnd para a estrutura apontada por lpRect.

void GetWindowRect(LPRECT lpRect) const;

Parâmetros

lpRect
Aponta para um objeto CRect ou uma estrutura RECT que receberá as coordenadas de tela dos cantos superior esquerdo e inferior direito.

Comentários

As dimensões são fornecidas em coordenadas de tela relativas ao canto superior esquerdo da tela de exibição. As dimensões das barras de legenda, borda e rolagem, se presentes, estão incluídas.

CWnd::GetWindowRgn

Chame essa função membro para obter a região da janela de uma janela.

int GetWindowRgn(HRGN hRgn)const;

Parâmetros

hRgn
O identificador de uma região de janela.

Valor de retorno

O valor retornado especifica o tipo da região que a função obtém. Pode ser um dos seguintes valores:

  • NULLREGION A região está vazia.

  • SIMPLEREGION A região é um único retângulo.

  • COMPLEXREGION A região é maior do que um retângulo.

  • ERROR Ocorreu um erro; a região não é afetada.

Comentários

A região da janela determina a área dentro da janela em que o sistema operacional permite o desenho. O sistema operacional não exibe nenhuma parte de uma janela que esteja fora da região da janela.

As coordenadas da região da janela de uma janela são relativas ao canto superior esquerdo da janela, não à área do cliente da janela.

Para definir a região da janela de uma janela, chame CWnd::SetWindowRgn.

CWnd::GetWindowText

Copia o título da legenda CWnd (se ele tiver um) no buffer apontado por lpszStringBuf ou para a cadeia de caracteres de destino rString.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(
    CString& rString) const;

Parâmetros

lpszStringBuf
Aponta para o buffer que deve receber a cadeia de caracteres copiada do título da janela.

nMaxCount
Especifica o número máximo de caracteres a serem copiados para o buffer, incluindo o caractere nulo de encerramento. Se a cadeia de caracteres for maior do que o número de caracteres especificado em nMaxCount, ele será truncado.

rString
Um objeto CString que deve receber a cadeia de caracteres copiada do título da janela.

Valor de retorno

Especifica o comprimento, em caracteres, da cadeia de caracteres copiada, sem incluir o caractere nulo de terminação. É 0 se CWnd não tiver legenda ou se a legenda estiver vazia.

Comentários

Se o objeto CWnd for um controle, a função membro GetWindowText copiará o texto dentro do controle em vez de copiar a legenda.

Essa função membro faz com que a mensagem WM_GETTEXT seja enviada ao objeto CWnd.

Exemplo

Confira o exemplo de CWnd::SetWindowText.

CWnd::GetWindowTextLength

Retorna o comprimento do título da legenda do objeto CWnd.

int GetWindowTextLength() const;

Valor de retorno

Especifica o comprimento do texto em caracteres, sem incluir nenhum caractere de encerramento nulo. O valor será 0 se esse texto não existir.

Comentários

Se CWnd for um controle, a função membro GetWindowTextLength retornará o comprimento do texto dentro do controle em vez da legenda.

Essa função membro faz com que a mensagem WM_GETTEXTLENGTH seja enviada ao objeto CWnd.

Exemplo

Confira o exemplo de CWnd::SetWindowText.

CWnd::HideCaret

Oculta o cursor removendo-o da tela de exibição.

void HideCaret();

Comentários

Embora o cursor não esteja mais visível, ele pode ser exibido novamente usando a função membro ShowCaret. Ocultar o cursor não destrói sua forma atual.

Ocultar é cumulativo. Se HideCaret tiver sido chamada cinco vezes seguidas, a função membro ShowCaret deverá ser chamada cinco vezes antes que o cursor seja mostrado.

CWnd::HiliteMenuItem

Realça ou remove o realce de um item de menu (da barra de menus) de nível superior.

BOOL HiliteMenuItem(
    CMenu* pMenu,
    UINT nIDHiliteItem,
    UINT nHilite);

Parâmetros

pMenu
Identifica o menu de nível superior que contém o item a ser realçado.

nIDHiliteItem
Especifica o item de menu a ser realçado, dependendo do valor do parâmetro nHilite.

nHilite
Especifica se o item de menu está realçado ou se o realce é removido. Pode ser uma combinação de MF_HILITE ou MF_UNHILITE com MF_BYCOMMAND ou MF_BYPOSITION. Esses valores podem ser combinados usando o operador OR bit a bit. Esses valores têm estes significados:

  • MF_BYCOMMAND Interpreta nIDHiliteItem como o ID do item de menu (a interpretação padrão).

  • MF_BYPOSITION Interpreta nIDHiliteItem como o deslocamento baseado em zero do item de menu.

  • MF_HILITE Realça o item. Se esse valor não for fornecido, o realce será removido do item.

  • MF_UNHILITE Remove o realce do item.

Valor de retorno

Especifica se o item de menu foi realçado. Diferente de zero se o item foi realçado; caso contrário, 0.

Comentários

Os sinalizadores MF_HILITE e MF_UNHILITE só podem ser usados com essa função membro; eles não podem ser usados com a função membro CMenu::ModifyMenu.

CWnd::HtmlHelp

Chame essa função membro para invocar o aplicativo HTMLHelp.

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

Parâmetros

dwData
Especifica os dados adicionais. O valor usado depende do valor do parâmetro nCmd.

nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte o parâmetro uCommand descrito na Referência de API de Ajuda HTML no SDK do Windows.

Comentários

Consulte CWinApp::HtmlHelp para obter mais informações.

CWnd::InitDynamicLayout

Chamado pela estrutura para inicializar o layout dinâmico da janela.

void InitDynamicLayout();

Comentários

Não chame este método diretamente.

CWnd::Invalidate

Invalida toda a área de cliente de CWnd.

void Invalidate(BOOL bErase = TRUE);

Parâmetros

bErase
Especifica se a tela de fundo dentro da região de atualização deve ser apagada.

Comentários

A área do cliente é marcada para pintura quando a próxima mensagem WM_PAINT ocorre. A região também pode ser validada antes que uma mensagem WM_PAINT ocorra pela função membro ValidateRect ou ValidateRgn.

O parâmetro bErase especifica se o plano de fundo dentro da área de atualização deve ser apagado quando a região de atualização é processada. Se bErase for TRUE, o plano de fundo é apagado quando a função membro BeginPaint é chamada; se bErase for FALSE, o plano de fundo permanece inalterado. Se bErase for TRUE para qualquer parte da região de atualização, o plano de fundo em toda a região, não apenas na parte específica, será apagado.

O Windows envia uma mensagem WM_PAINT sempre que a região de atualização CWnd não estiver vazia e não houver outras mensagens na fila do aplicativo para essa janela.

Exemplo

Confira o exemplo de CWnd::UpdateWindow.

CWnd::InvalidateRect

Invalida a área do cliente dentro do retângulo especificado adicionando esse retângulo à região de atualização CWnd.

void InvalidateRect(
    LPCRECT lpRect,
    BOOL bErase = TRUE);

Parâmetros

lpRect
Aponta para um objeto CRect ou uma estrutura RECT que contém o retângulo (nas coordenadas do cliente) a ser adicionado à região de atualização. Se lpRect for NULL, toda a área do cliente será adicionada à região.

bErase
Especifica se a tela de fundo dentro da região de atualização deve ser apagada.

Comentários

O retângulo invalidado, juntamente com todas as outras áreas na região de atualização, é marcado para pintura quando a próxima mensagem WM_PAINT é enviada. As áreas invalidadas se acumulam na região de atualização até que a região seja processada quando a próxima chamada WM_PAINT ocorrer ou até que a região seja validada pela função membro ValidateRect ou ValidateRgn.

O parâmetro bErase especifica se o plano de fundo dentro da área de atualização deve ser apagado quando a região de atualização é processada. Se bErase for TRUE, o plano de fundo é apagado quando a função membro BeginPaint é chamada; se bErase for FALSE, o plano de fundo permanece inalterado. Se bErase for TRUE para qualquer parte da região de atualização, o plano de fundo em toda a região, não apenas na parte específica, será apagado.

O Windows envia uma mensagem WM_PAINT sempre que a região de atualização CWnd não estiver vazia e não houver outras mensagens na fila do aplicativo para essa janela.

CWnd::InvalidateRgn

Invalida a área do cliente dentro da região especificada adicionando essa região à região de atualização de CWnd.

void InvalidateRgn(
    CRgn* pRgn,
    BOOL bErase = TRUE);

Parâmetros

pRgn
Um ponteiro para um objeto CRgn que identifica a região a ser adicionada à região de atualização. Supõe-se que a região tenha coordenadas do cliente. Se esse parâmetro for NULL, toda a área do cliente será adicionada à região de atualização.

bErase
Especifica se a tela de fundo dentro da região de atualização deve ser apagada.

Comentários

O retângulo invalidado, juntamente com todas as outras áreas na região de atualização, é marcado para pintura quando a próxima mensagem WM_PAINT é enviada. As áreas invalidadas se acumulam na região de atualização até que a região seja processada quando a mensagem WM_PAINT é enviada ou até que a região seja validada pela função membro ValidateRect ou ValidateRgn.

O parâmetro bErase especifica se o plano de fundo dentro da área de atualização deve ser apagado quando a região de atualização é processada. Se bErase for TRUE, o plano de fundo é apagado quando a função membro BeginPaint é chamada; se bErase for FALSE, o plano de fundo permanece inalterado. Se bErase for TRUE para qualquer parte da região de atualização, o plano de fundo em toda a região, não apenas na parte específica, será apagado.

O Windows envia uma mensagem WM_PAINT sempre que a região de atualização CWnd não estiver vazia e não houver outras mensagens na fila do aplicativo para essa janela.

A região fornecida deve ter sido criada anteriormente por uma das funções de região.

CWnd::InvokeHelper

Chame essa função membro para invocar o método de Controle ActiveX ou a propriedade especificada por dwDispID, no contexto especificado por wFlags.

void AFX_CDECL InvokeHelper(
    DISPID dwDispID,
    WORD wFlags,
    VARTYPE vtRet,
    void* pvRet,
    const BYTE* pbParamInfo,
    ... );

Parâmetros

dwDispID
Identifica o método ou a propriedade que será invocada.

wFlags
Sinalizadores que descrevem o contexto da chamada de IDispatch::Invoke.

vtRet
Especifica o tipo de valor retornado. Para valores possíveis, consulte a seção Comentários para COleDispatchDriver::InvokeHelper.

pvRet
Endereço da variável que receberá o valor da propriedade ou o valor retornado. Ele deve corresponder ao tipo especificado por vtRet.

pbParamInfo
Ponteiro para uma cadeia de cadeia de caracteres de bytes com terminada em valor nulo que especifica os tipos dos parâmetros que seguem pbParamInfo. Para valores possíveis, consulte a seção Comentários para COleDispatchDriver::InvokeHelper.

...
Lista variável de parâmetros, de tipos especificados em pbParamInfo.

Comentários

O parâmetro pbParamInfo especifica os tipos dos parâmetros passados para o método ou propriedade. A lista variável de argumentos é representada por ... na declaração de sintaxe.

Essa função converte os parâmetros em valores VARIANTARG e, em seguida, invoca o método IDispatch::Invoke no controle ActiveX. Se a chamada de IDispatch::Invoke falhar, essa função gerará uma exceção. Se o SCODE (código de status) retornado por IDispatch::Invoke for DISP_E_EXCEPTION, essa função gera um objeto COleException; caso contrário, ele gera um COleDispatchException.

Observação

Essa função deve ser chamada somente em um objeto CWnd que representa um controle ActiveX.

Para obter mais informações sobre como usar essa função membro com contêineres de controle ActiveX, consulte o artigo Contêineres de Controle ActiveX: programação de controles ActiveX em um contêiner de controle ActiveX.

CWnd::IsChild

Indica se a janela especificada por pWnd é uma janela filho ou outro descendente direto de CWnd.

BOOL IsChild(const CWnd* pWnd) const;

Parâmetros

pWnd
Identifica a janela a ser testada.

Valor de retorno

Especifica o resultado da função . O valor será diferente de zero se a janela identificada por pWnd for uma janela filho de CWnd; caso contrário, 0.

Comentários

Uma janela filho é o descendente direto de CWnd se o objeto CWnd está na cadeia de janelas pai que leva da janela pop-up original para a janela filho.

CWnd::IsD2DSupportEnabled

Determina se o suporte a D2D está habilitado.

BOOL IsD2DSupportEnabled();

Valor de retorno

TRUE se o recurso estiver habilitado; caso contrário, FALSE.

CWnd::IsDialogMessage

Chame essa função membro para determinar se a mensagem determinada destina-se a uma caixa de diálogo sem janela restrita; se for, essa função processará a mensagem.

BOOL IsDialogMessage(LPMSG lpMsg);

Parâmetros

lpMsg
Aponta para uma estrutura MSG que contém a mensagem a ser verificada.

Valor de retorno

Especifica se a função membro processou a mensagem fornecida. Será diferente de zero se a mensagem tiver sido processada; caso contrário, 0. Se o retorno for 0, chame a função membro CWnd::PreTranslateMessage da classe base para processar a mensagem. Em uma substituição da função membro CWnd::PreTranslateMessage, o código tem esta aparência:

BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
   if (IsDialogMessage(pMsg))
      return TRUE;
   else
      return CDialog::PreTranslateMessage(pMsg);
}

Comentários

Quando a função IsDialogMessage processa uma mensagem, ela verifica mensagens de teclado e as converte em comandos de seleção para a caixa de diálogo correspondente. Por exemplo, a tecla TAB seleciona o próximo controle ou grupo de controles e a tecla SETA PARA BAIXO seleciona o próximo controle em um grupo.

Você não deve passar uma mensagem processada por IsDialogMessage pelas funções do Windows TranslateMessage ou DispatchMessage Windows, pois ela já foi processada.

CWnd::IsDlgButtonChecked

Determina se um controle de botão tem uma marca de seleção ao lado dele.

UINT IsDlgButtonChecked(int nIDButton) const;

Parâmetros

nIDButton
Especifica o identificador inteiro do controle de botão.

Valor de retorno

Diferente de zero se o controle determinado estiver selecionado; 0 se ele não estiver selecionado. Somente botões de opção e caixas de seleção podem ser selecionados. Para botões de três estados, o valor retornado poderá ser 2 se o botão for indeterminado. Essa função membro retorna 0 para um botão push.

Comentários

Se o botão for um controle de três estados, a função membro determinará se ele está esmaecido, selecionado ou nenhum dos dois.

CWnd::IsDynamicLayoutEnabled

Determina se o layout dinâmico está habilitado nesta janela. Se o layout dinâmico estiver habilitado, a posição e o tamanho das janelas filho poderão ser alterados quando o usuário redimensionar a janela pai.

BOOL IsDynamicLayoutEnabled() const;

Valor de retorno

TRUE se o layout dinâmico estiver habilitado; caso contrário, FALSE.

Comentários

CWnd::IsIconic

Determina se CWnd está minimizada (em ícone).

BOOL IsIconic() const;

Valor de retorno

Diferente de zero se CWnd estiver minimizado; caso contrário, 0.

Exemplo

void CAboutDlg::OnPaint()
{
   // This code, normally emitted by the Application Wizard for a dialog-
   // based project for the dialog's WM_PAINT handler, runs only if the
   // window is iconic. The window erases the icon's area, then
   // paints the icon referenced by m_hIcon.
   if (IsIconic())
   {
      CPaintDC dc(this); // device context for painting

      SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);

      // Center icon in client rectangle
      int cxIcon = GetSystemMetrics(SM_CXICON);
      int cyIcon = GetSystemMetrics(SM_CYICON);
      CRect rect;
      GetClientRect(&rect);
      int x = (rect.Width() - cxIcon + 1) / 2;
      int y = (rect.Height() - cyIcon + 1) / 2;

      // Draw the icon
      dc.DrawIcon(x, y, m_hIcon);
   }
   else
   {
      CDialog::OnPaint();
   }
}

CWnd::IsTouchWindow

Especifica se CWnd possui suporte a toque.

BOOL IsTouchWindow() const;

Valor de retorno

TRUE se CWnd tiver suporte a toque; caso contrário, FALSE.

Comentários

CWnd::IsWindowEnabled

Especifica se CWnd está habilitado para entrada de mouse e teclado.

BOOL IsWindowEnabled() const;

Valor de retorno

Diferente de zero se CWnd estiver habilitado; caso contrário, 0.

Exemplo

//change the background color of an edit control on the dialog
HBRUSH CMyDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
   {
      if (pWnd->IsWindowEnabled())
      {
         // Red brush for the background...
         pDC->SetBkColor(RGB(255, 0, 0));
         // m_pRedBrush is the CBrush object initialized with a red brush
         // using CreateSolidBrush
         return (HBRUSH)m_RedBrush.GetSafeHandle();
      }
      else
      {
         // Blue brush for the background...
         pDC->SetBkColor(RGB(0, 0, 255));
         // m_pBlueBrush is the CBrush object initialized with a blue
         // brush using CreateSolidBrush
         return (HBRUSH)m_BlueBrush.GetSafeHandle();
      }
   }

   return hbr;
}

CWnd::IsWindowVisible

Determina o estado de visibilidade da janela fornecida.

BOOL IsWindowVisible() const;

Valor de retorno

Diferente de zero se CWnd estiver visível (tem o conjunto de bits de estilo WS_VISIBLE e a janela pai está visível). Como o valor retornado reflete o estado do bit de estilo WS_VISIBLE, o valor retornado pode ser diferente de zero, embora CWnd seja totalmente obscurecido por outras janelas.

Comentários

Uma janela possui um estado de visibilidade indicado pelo bit de estilo WS_VISIBLE. Quando esse bit de estilo é definido com uma chamada para a função membro ShowWindow, a janela é exibida e o desenho subsequente para a janela é exibido desde que a janela tenha o conjunto de bits de estilo.

Qualquer desenho para uma janela que tenha o estilo WS_VISIBLE não será exibido se a janela for coberta por outras janelas ou for recortada pela janela pai.

Exemplo

// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is not, it calls
// CWnd::ShowWindow with the SW_SHOWNORMAL command.
void CMainFrame::DisplayModeless()
{
   if(!m_Modeless.IsWindowVisible())
   {
      m_Modeless.ShowWindow(SW_SHOWNORMAL);
   }
}

// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is, it calls
// CWnd::ShowWindow with the SW_HIDE command.
void CMainFrame::HideModeless()
{
   if(m_Modeless.IsWindowVisible())
   {
      m_Modeless.ShowWindow(SW_HIDE);
   }
}

CWnd::IsZoomed

Determina se CWnd foi maximizada.

BOOL IsZoomed() const;

Valor de retorno

Diferente de zero se CWnd estiver maximizada; caso contrário, 0.

CWnd::KillTimer

Encerra o evento de temporizador identificado por nIDEvent da chamada anterior de SetTimer.

BOOL KillTimer(UINT_PTR nIDEvent);

Parâmetros

nIDEvent
O valor do evento de temporizador passado para SetTimer.

Valor de retorno

Especifica o resultado da função . O valor será diferente de zero se o evento tiver sido encerrado. Será 0 se a função membro KillTimer não puder localizar o evento de temporizador especificado.

Comentários

As mensagens pendentes WM_TIMER associadas ao temporizador não são removidas da fila de mensagens.

Exemplo

Confira o exemplo de CWnd::SetTimer.

CWnd::LoadDynamicLayoutResource

Chamado pela estrutura para carregar informações de layout dinâmico do arquivo de recurso.

BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);

Parâmetros

lpszResourceName
O nome do recurso que contém as informações de layout dinâmico desejadas para esta janela.

Valor de retorno

Diferente de zero se a função for bem-sucedida. Será 0 se ocorrer uma falha.

Comentários

Não chame este método diretamente.

CWnd::LockWindowUpdate

Desabilita o desenho na janela fornecida.

BOOL LockWindowUpdate();

Valor de retorno

Diferente de zero se a função for bem-sucedida. Será 0 se ocorrer uma falha ou se a função LockWindowUpdate tiver sido usada para bloquear outra janela.

Comentários

Não é possível mover uma janela bloqueada. Apenas uma janela pode ser bloqueada de cada vez. Para desbloquear uma janela bloqueada com LockWindowUpdate, chame UnlockWindowUpdate.

Se um aplicativo com uma janela bloqueada (ou qualquer janela filho bloqueada) chamar a função do Windows GetDC, GetDCExou BeginPaint, a função chamada retornará um contexto de dispositivo cuja região visível estará vazia. Isso ocorrerá até que o aplicativo desbloqueie a janela chamando a função membro UnlockWindowUpdate.

Embora as atualizações de janela estejam bloqueadas, o sistema mantém o controle do retângulo delimitador de quaisquer operações de desenho para contextos de dispositivo associados a uma janela bloqueada. Quando o desenho é habilitado novamente, esse retângulo delimitador é invalidado na janela bloqueada e suas janelas filho para forçar uma mensagem eventual WM_PAINT para atualizar a tela. Se nenhum desenho tiver ocorrido enquanto as atualizações da janela estiverem bloqueadas, nenhuma área será invalidada.

A função membro LockWindowUpdate não torna a janela determinada invisível e não limpa o bit de estilo WS_VISIBLE.

CWnd::m_hWnd

O identificador da janela do Windows anexada a esse CWnd.

HWND m_hWnd;

Comentários

Esse membro de dados m_hWnd é uma variável pública do tipo HWND.

CWnd::MapWindowPoints

Converte (mapeia) um conjunto de pontos do espaço de coordenadas da CWnd para o espaço de coordenadas de outra janela.

void MapWindowPoints(
    CWnd* pwndTo,
    LPRECT lpRect) const;

void MapWindowPoints(
    CWnd* pwndTo,
    LPPOINT lpPoint,
    UINT nCount) const;

Parâmetros

pwndTo
Identifica a janela para a qual os pontos são convertidos. Se esse parâmetro for NULL, os pontos serão convertidos em coordenadas de tela.

lpRect
Especifica o retângulo cujos pontos devem ser convertidos. A primeira versão dessa função está disponível apenas para o Windows 3.1 e posterior.

lpPoint
Um ponteiro para uma matriz de estrutura POINT que contém o conjunto de pontos a ser convertido.

nCount
Especifica o número de estruturas POINT na matriz apontada por lpPoint.

CWnd::MessageBox

Cria e exibe uma janela que contém uma mensagem e legenda fornecidas pelo aplicativo, além de uma combinação de ícones predefinidos e botões push descritos na lista Estilos de caixa de mensagens.

int MessageBox(
    LPCTSTR lpszText,
    LPCTSTR lpszCaption = NULL,
    UINT nType = MB_OK);

Parâmetros

lpszText
Aponta para um objeto CString ou cadeia de caracteres terminada em nulo que contém a mensagem a ser exibida.

lpszCaption
Aponta para um objeto CString ou cadeia de caracteres terminada em nulo a ser usada para a legenda da caixa de mensagem. Se lpszCaption for NULL, a legenda padrão "Erro" será usada.

nType
Especifica o conteúdo e o comportamento da caixa de mensagem.

Valor de retorno

Esse método utiliza a função MessageBox conforme definido no SDK do Windows. Esse método retorna o resultado de chamar essa função.

Comentários

Use a função AfxMessageBox global em vez dessa função membro para implementar uma caixa de mensagem em seu aplicativo.

O seguinte mostra os vários ícones do sistema que podem ser usados em uma caixa de mensagem:

Ícone Macro
Ícone de parada ou X, que consiste em um círculo vermelho com um x branco no meio. MB_ICONHAND, MB_ICONSTOP e MB_ICONERROR
Ícone de ajuda ou ponto de interrogação, que consiste em um ícone de balão de pensamento com um ponto de interrogação. MB_ICONQUESTION
Ícone importante ou de ponto de exclamação, que consiste em um triângulo amarelo com um ponto de exclamação preto. MB_ICONEXCLAMATION e MB_ICONWARNING
Ícone de informação ou letra I, consistindo de um balão de pensamento com uma letra minúscula i. MB_ICONASTERISK e MB_ICONINFORMATION

Exemplo

void CMainFrame::OnDisplayErrorMessage()
{
   // This displays a message box with the title "Error"
   // and the message "Help, Something went wrong."
   // The error icon is displayed in the message box, along with
   // an OK button.
   MessageBox(_T("Help, Something went wrong."), _T("Error"),
              MB_ICONERROR | MB_OK);
}

CWnd::ModifyStyle

Chame essa função membro para modificar o estilo de uma janela.

BOOL ModifyStyle(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags = 0);

Parâmetros

dwRemove
Especifica os estilos de janela a serem removidos durante a modificação de estilo.

dwAdd
Especifica os estilos de janela a serem adicionados durante a modificação de estilo.

nFlags
Sinalizadores a serem passados para SetWindowPos, ou zero, se SetWindowPos não devem ser chamados. O padrão é zero. Consulte a seção Comentários para obter uma lista de sinalizadores predefinidos.

Valor de retorno

Diferente de zero se o estilo foi modificado com êxito; caso contrário, 0.

Comentários

Estilos a serem adicionados ou removidos poderão ser combinados usando o operador bit a bit OR (|). Consulte os tópicos Estilos de janela e CreateWindow no SDK do Windows para obter informações sobre os estilos de janela disponíveis.

Se nFlags for diferente de zero, ModifyStyle chamará a função API do Windows SetWindowPos e redesenhará a janela combinando nFlags com os quatro sinalizadores predefinidos a seguir:

  • SWP_NOSIZE Retém o tamanho atual.

  • SWP_NOMOVE Retém a posição atual.

  • SWP_NOZORDER Retém a ordem Z atual.

  • SWP_NOACTIVATE Não ativa a janela.

Para modificar os estilos estendidos de uma janela, confira ModifyStyleEx.

Observação

Para alguns estilos em determinados controles (o estilo ES_READONLY no controle de edição, por exemplo), ModifyStyle pode não alterar corretamente o estilo porque o controle pode precisar executar um processamento interno especial. Nesses casos, uma mensagem correspondente para alterar o estilo estará disponível (EM_SETREADONLY no exemplo mencionado).

Exemplo

// This example adds the WS_CLIPCHILDREN style to the window.
// No Styles are removed from the window.
void CMyView::OnInitialUpdate()
{
   CView::OnInitialUpdate();
   ModifyStyle(0, WS_CLIPCHILDREN);
}

CWnd::ModifyStyleEx

Chame essa função membro para modificar o estilo estendido de uma janela.

BOOL ModifyStyleEx(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags = 0);

Parâmetros

dwRemove
Especifica os estilos estendidos a serem removidos durante a modificação de estilo.

dwAdd
Especifica os estilos estendidos a serem adicionados durante a modificação de estilo.

nFlags
Sinalizadores a serem passados para SetWindowPos, ou zero, se SetWindowPos não devem ser chamados. O padrão é zero. Consulte a seção Comentários para obter uma lista de sinalizadores predefinidos.

Valor de retorno

Diferente de zero se o estilo foi modificado com êxito; caso contrário, 0.

Comentários

Estilos a serem adicionados ou removidos poderão ser combinados usando o operador bit a bit OR (|). Consulte os tópicos Estilos de janela estendidos e CreateWindowEx no SDK do Windows para obter informações sobre os estilos de janela estendidos disponíveis

Se nFlags for diferente de zero, ModifyStyleEx chamará a função API do Windows SetWindowPos e redesenhará a janela combinando nFlags com os quatro sinalizadores predefinidos a seguir:

  • SWP_NOSIZE Retém o tamanho atual.

  • SWP_NOMOVE Retém a posição atual.

  • SWP_NOZORDER Retém a ordem Z atual.

  • SWP_NOACTIVATE Não ativa a janela.

Para modificar janelas usando estilos de janela regulares, confira ModifyStyle.

Exemplo

// This example would make the dialog box transparent by
// changing the dialog window's extended styles.
int CAboutDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
   if (CDialog::OnCreate(lpCreateStruct) == -1)
      return -1;

   ModifyStyleEx(0, WS_EX_TRANSPARENT);   
   
   return 0;
}

CWnd::MoveWindow

Altera a posição e as dimensões.

void MoveWindow(
    int x,
    int y,
    int nWidth,
    int nHeight,
    BOOL bRepaint = TRUE);

void MoveWindow(
    LPCRECT lpRect,
    BOOL bRepaint = TRUE);

Parâmetros

x
Especifica a nova posição do lado esquerdo do CWnd.

y
Especifica a nova posição do topo do CWnd.

nWidth
Especifica a nova largura da CWnd.

nHeight
Especifica a nova altura da CWnd.

bRepaint
Especifica se CWnd deve ser repintado. Se TRUE, CWnd recebe uma mensagem WM_PAINT em seu manipulador de mensagens OnPaint como de costume. Se esse parâmetro for FALSE, não ocorrerá nenhuma repintura de qualquer tipo. Isso se aplica à área do cliente, à área não cliente (incluindo as barras de título e rolagem) e a qualquer parte da janela pai descoberta como resultado da movimentação de CWnd. Quando esse parâmetro é FALSE, o aplicativo deve invalidar ou redesenhar explicitamente todas as partes da CWnd e a janela pai que devem ser redesenhadas.

lpRect
O objeto CRect ou estrutura RECT que especifica o novo tamanho e a posição.

Comentários

Para um objeto CWnd de nível superior, os parâmetros x e y são relativos ao canto superior esquerdo da tela. Para um objeto CWnd filho, são relativos ao canto superior esquerdo da área do cliente da janela pai.

A função MoveWindow envia a mensagem WM_GETMINMAXINFO. Lidar com essa mensagem dá a CWnd a oportunidade de modificar os valores padrão para as maiores e menores janelas possíveis. Se os parâmetros para a função membro MoveWindow excederem esses valores, os valores poderão ser substituídos pelos valores mínimos ou máximos no manipulador WM_GETMINMAXINFO.

Exemplo

Confira o exemplo de CWnd::ClientToScreen.

CWnd::NotifyWinEvent

Sinaliza ao sistema que ocorreu um evento predefinido. Se algum aplicativo cliente tiver registrado uma função de gancho para o evento, o sistema chamará a função de gancho do cliente.

void NotifyWinEvent(
    DWORD event,
    LONG idObjectType,
    LONG idObject);

Parâmetros

event
Especifica se o evento ocorreu. I valor deve ser uma das constantes de evento.

idObjectType
Identifica o tipo de objeto que gerou o evento. Esse valor é um dos identificadores de objeto predefinidos ou um valor de ID de objeto personalizado.

idObject
Identifica se o evento foi gerado por um objeto ou um elemento filho do objeto. Se esse valor for CHILDID_SELF, o evento foi gerado pelo próprio objeto. Caso contrário, esse valor será o ID filho do elemento que gerou o evento.

Comentários

Essa função membro emula a funcionalidade da função NotifyWinEvent, conforme descrito no SDK do Windows.

CWnd::OnActivate

A estrutura chama essa função membro quando um objeto CWnd está sendo ativado ou desativado.

afx_msg void OnActivate(
    UINT nState,
    CWnd* pWndOther,
    BOOL bMinimized);

Parâmetros

nState
Especifica se a CWnd está sendo ativada ou desativada. Pode ser um dos seguintes valores:

  • WA_INACTIVE A janela está sendo desativada.

  • WA_ACTIVE A janela está sendo ativada por meio de algum método diferente de um clique do mouse (por exemplo, usando a interface do teclado para selecionar a janela).

  • WA_CLICKACTIVE A janela está sendo ativada por um clique do mouse.

pWndOther
Ponteiro para a CWnd sendo ativada ou desativada. O ponteiro pode ser NULL e pode ser temporário.

bMinimized
Especifica o estado minimizado da CWnd sendo ativada ou desativada. Um valor TRUE indica que a janela está minimizada.

Se TRUE, a CWnd está sendo ativada; caso contrário, desativada.

Comentários

Se o objeto CWnd for ativado com um clique do mouse, ele também receberá uma chamada de função membro OnMouseActivate.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnActivateApp

A estrutura chama essa função membro para todas as janelas de nível superior da tarefa que estão sendo ativadas e para todas as janelas de nível superior da tarefa que estão sendo desativadas.

afx_msg void OnActivateApp(
    BOOL bActive,
    DWORD dwThreadID);

Parâmetros

bActive
Especifica se a CWnd está sendo ativada ou desativada. TRUE significa que o CWnd está sendo ativado. FALSE significa que o CWnd está sendo desativado.

dwThreadID
Especifica o valor do ID do thread. Se bActive for TRUE, dwThreadID identifica o thread que possui o CWnd ser desativado. Se bActive for FALSE, dwThreadID identifica o thread que possui o CWnd ser ativado.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnAmbientProperty

A estrutura chama essa função membro para obter valores de propriedade ambiente de uma janela que contém controles OLE.

virtual BOOL OnAmbientProperty(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvar);

Parâmetros

pSite
Ponteiro para o site do controle que solicitou a propriedade de ambiente.

dispid
O ID de expedição da propriedade de ambiente solicitada.

pvar
Ponteiro para uma estrutura alocada pelo chamador VARIANT, por meio da qual o valor da propriedade de ambiente será retornado.

Valor de retorno

TRUE se houver suporte para a propriedade de ambiente; FALSE se não.

Comentários

Substitua essa função para alterar os valores de propriedade ambiente padrão retornados por um contêiner de controle OLE para seus controles. Todas as solicitações de propriedade ambiente não tratadas por uma função de substituição devem ser encaminhadas para a implementação da classe base.

CWnd::OnAppCommand

A estrutura chama essa função membro quando o usuário gera um evento de comando do aplicativo. Esse evento ocorre quando o usuário clica em um botão de comando do aplicativo ou digita uma chave de comando do aplicativo.

afx_msg void OnAppCommand(
    CWnd* pWnd,
    UINT nCmd,
    UINT nDevice,
    UINT nKey);

Parâmetros

pWnd
[in] Ponteiro para um objeto CWnd que representa a janela em que o usuário clicou no botão de comando ou pressionou a tecla de comando. Essa janela pode ser uma janela filho da janela que recebe a mensagem.

nCmd
[in] Indica o comando do aplicativo. Para obter uma lista de valores possíveis, consulte os comandos na seção cmd do parâmetro lParam de WM_APPCOMMAND.

nDevice
[in] O dispositivo de entrada que gerou o evento de entrada. Para obter uma lista de valores possíveis, consulte os dispositivos na seção uDevice do parâmetro lParam de WM_APPCOMMAND.

nKey
[in] Indica todas as teclas virtuais que estão inativas, como a tecla CTRL ou o botão esquerdo do mouse. Para obter uma lista de valores possíveis, consulte as teclas na seção dwKeys do parâmetro lParam de WM_APPCOMMAND. Para obter mais informações, consulte o subtítulo "Parâmetros de mensagem" em Sobre a entrada sobre o mouse.

Comentários

Esse método recebe a notificação WM_APPCOMMAND, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnAskCbFormatName

A estrutura chama essa função membro quando a área de transferência contém um identificador de dados para o formato CF_OWNERDISPLAY (ou seja, quando o proprietário da área de transferência exibirá o conteúdo da área de transferência).

afx_msg void OnAskCbFormatName(
    UINT nMaxCount,
    LPTSTR lpszString);

Parâmetros

nMaxCount
Especifica o número máximo de bytes a serem copiados.

lpszString
Aponta para o buffer em que a cópia do nome do formato deve ser armazenada.

Comentários

O proprietário da área de transferência deve fornecer um nome para seu formato.

Substitua essa função membro e copie o nome do formato CF_OWNERDISPLAY no buffer especificado, não excedendo o número máximo de bytes especificados.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCancelMode

A estrutura chama essa função membro para informar CWnd para cancelar qualquer modo interno.

afx_msg void OnCancelMode();

Comentários

Se o objeto CWnd tiver o foco, sua função membro OnCancelMode será chamada quando uma caixa de diálogo ou uma caixa de mensagem for exibida. Isso dá a CWnd a oportunidade de cancelar modos como a captura do mouse.

A implementação padrão responde chamando a função do Windows ReleaseCapture. Substitua essa função membro em sua classe derivada para lidar com outros modos.

CWnd::OnCaptureChanged

A estrutura chama essa função membro para notificar a janela que está perdendo a captura do mouse.

afx_msg void OnCaptureChanged(CWnd* pWnd);

Parâmetros

pWnd
Um ponteiro para a janela para obter a captura do mouse

Comentários

Uma janela recebe essa mensagem mesmo que ela se chame ReleaseCapture. Um aplicativo não deve tentar definir a captura do mouse em resposta a essa mensagem. Quando ela recebe essa mensagem, uma janela deve ser redesenhada, se necessário, para refletir o novo estado de captura de mouse.

Consulte o SDK do Windows para obter informações sobre a função Windows ReleaseCapture.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnChangeCbChain

A estrutura chama essa função membro para cada janela na cadeia de visualizadores de área de transferência para notificá-la de que uma janela está sendo removida da cadeia.

afx_msg void OnChangeCbChain(
    HWND hWndRemove,
    HWND hWndAfter);

Parâmetros

hWndRemove
Especifica o identificador de janela que está sendo removida da cadeia de visualizadores de área de transferência.

hWndAfter
Especifica o identificador de janela que segue a janela que está sendo removida da cadeia de visualizadores de área de transferência.

Comentários

Cada objeto CWnd que recebe uma chamada OnChangeCbChain deve usar a função do Windows SendMessage para enviar a mensagem WM_CHANGECBCHAIN para a próxima janela na cadeia de visualizadores de área de transferência (o identificador retornado por SetClipboardViewer). Se hWndRemove for a próxima janela na cadeia, a janela especificada por hWndAfter se tornará a próxima janela e as mensagens da área de transferência serão passadas para ela.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnChangeUIState

Chamado quando o estado da interface do usuário deve ser alterado.

afx_msg void OnChangeUIState(
    UINT nAction,
    UINT nUIElement);

Parâmetros

nAction
Especifica a ação a ser executada. Pode ser um dos seguintes valores:

  • UIS_CLEAR O elemento de estado da interface do usuário (especificado por nUIElement) deve estar oculto.

  • UIS_INITIALIZE O elemento de estado da interface do usuário (especificado por nUIElement) deve ser alterado com base no último evento de entrada. Para obter mais informações, consulte a seção Comentários de WM_CHANGEUISTATE.

  • UIS_SET O elemento de estado da interface do usuário (especificado por nUIElement) deve estar visível.

nUIElement
Especifica quais elementos de estado da interface do usuário são afetados ou o estilo do controle. Pode ser um dos seguintes valores:

  • UISF_HIDEACCEL Aceleradores de teclado.

  • UISF_HIDEFOCUS Indicadores de foco.

  • UISF_ACTIVE Windows XP: um controle deve ser desenhado no estilo usado para controles ativos.

Comentários

Essa função de membro emula a funcionalidade da mensagem WM_CHANGEUISTATE, conforme descrito no SDK do Windows.

CWnd::OnChar

A estrutura chama essa função membro quando um pressionamento de tecla é convertido em um caractere que não é do sistema.

afx_msg void OnChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Contém o valor do código de caractere da tecla.

nRepCnt
Contém a contagem de repetição, o número de vezes que o pressionamento de tecla é repetido quando o usuário segura a tecla.

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Significado
0-15 Especifica a contagem de repetição. O valor é o número de vezes que o pressionamento de tecla é repetido como resultado do usuário que mantém a tecla pressionada.
16-23 Especifica o código de verificação. O valor depende do OEM (fabricante de equipamento original)
24 Especifica se a tecla é uma tecla estendida, como as teclas ALT e CTRL à direita que aparecem em um teclado avançado de 101 ou 102 teclas. O valor será 1 se for uma tecla estendida; caso contrário, é 0.
25-28 Usado internamente pelo Windows.
29 Especifica o código de contexto. O valor será 1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, o valor será 0.
30 Especifica o estado da tecla anterior. O valor será 1 se a tecla estiver pressionada antes do envio da mensagem, ou 0 se a tecla não estiver pressionada.
31 Especifica o estado de transição. O valor será 1 se a tecla estiver sendo liberada, ou 0 se a tecla estiver sendo pressionada.

Comentários

Essa função é chamada antes da função membro OnKeyUp e depois que a função membro OnKeyDown é chamada. OnChar contém o valor da tecla de teclado que está sendo pressionada ou liberada.

Como não há necessariamente uma correspondência um-para-um entre teclas pressionadas e chamadas de OnChar geradas, as informações em nFlags geralmente não são úteis para aplicativos. As informações em nFlags se aplicam somente à chamada mais recente à função membro OnKeyUp ou à função membro OnKeyDown que precede a chamada para OnChar.

Para teclados IBM aprimorados de 101 e 102 teclas, as teclas aprimoradas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nFlags.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCharToItem

Chamado quando uma caixa de listagem com o estilo LBS_WANTKEYBOARDINPUT envia ao proprietário uma mensagem WM_CHARTOITEM em resposta a uma mensagem WM_CHAR.

afx_msg int OnCharToItem(
    UINT nChar,
    CListBox* pListBox,
    UINT nIndex);

Parâmetros

nChar
Especifica o valor da tecla pressionada pelo usuário.

pListBox
Especifica um ponteiro para a caixa de listagem. Pode ser temporário.

nIndex
Especifica a posição atual do cursor.

Valor de retorno

A estrutura chama essa função membro para especificar a ação executada pelo aplicativo em resposta à chamada. Um valor retornado de -2 indica que o aplicativo lidou com todos os aspectos da seleção do item e não deseja mais nenhuma ação da caixa de listagem. Um valor retornado de -1 indica que a caixa de listagem deve executar a ação padrão em resposta ao pressionamento de teclas. Um valor retornado igual a 0 ou maior especifica o índice baseado em zero de um item na caixa de listagem e indica que a caixa de listagem deve executar a ação padrão para o pressionamento de teclas no item fornecido.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnChildActivate

Se o objeto CWnd for uma janela filho de várias interfaces de documento (MDI), OnChildActivate será chamado pela estrutura quando o usuário clica na barra de título da janela ou quando a janela é ativada, movida ou dimensionada.

afx_msg void OnChildActivate();

CWnd::OnChildNotify

Essa função membro é chamada pela janela pai desta janela quando recebe uma mensagem de notificação que se aplica a essa janela.

virtual BOOL OnChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parâmetros

message
Um número de mensagem do Windows enviado para uma janela pai.

wParam
A wparam associada à mensagem.

lParam
A lparam associada à mensagem.

pLResult
Um ponteiro para um valor a ser retornado do procedimento de janela pai. Esse ponteiro será NULL se nenhum valor retornado for esperado.

Valor de retorno

Diferente de zero se essa janela for responsável por lidar com a mensagem enviada ao seu pai; caso contrário, 0.

Comentários

Nunca chame essa função membro diretamente.

A implementação padrão dessa função membro retorna 0, o que significa que o pai deve lidar com a mensagem.

Substitua essa função membro para estender a maneira como um controle responde às mensagens de notificação.

CWnd::OnClipboardUpdate

A estrutura chama essa função membro quando o conteúdo da área de transferência é alterado.

afx_msg void OnClipboardUpdate();

CWnd::OnClose

A estrutura chama essa função membro como um sinal de que um aplicativo ou o CWnd deve ser encerrado.

afx_msg void OnClose();

Comentários

A implementação padrão chama DestroyWindow.

CWnd::OnColorizationColorChanged

A estrutura chama esse membro quando a política de renderização para a área não cliente for alterada.

afx_msg void OnColorizationColorChanged(
    DWORD dwColorizationColor,
    BOOL bOpacity);

Parâmetros

dwColorizationColor
[in] Especifica a nova cor de colorização. O formato de cor é um número hexadecimal no formato 0xAARRGGBB, em que cada um dos quatro componentes varia de 0x00 a 0xFF. O componente AA é o valor alfa, RR é a cor vermelha, GG é verde e BB é azul.

bOpacity
[in] TRUE se a nova cor for misturada com opacidade; FALSE se não for.

Comentários

Esse método recebe a notificação WM_DWMNCRENDERINGCHANGED, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCommand

A estrutura chama essa função membro quando o usuário seleciona um item em um menu, quando um controle filho envia uma mensagem de notificação ou quando um pressionamento de uma tecla de aceleração é traduzido.

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

wParam
A palavra de baixa ordem wParam identifica o ID de comando do item de menu, controle ou acelerador. A palavra de alta ordem wParam especifica a mensagem de notificação se a mensagem for de um controle. Se a mensagem for de um acelerador, a palavra de alta ordem será 1. Se a mensagem for de um menu, a palavra de alta ordem será 0.

lParam
Identifica o controle que envia a mensagem se a mensagem for de um controle. Caso contrário, lParam será 0.

Valor de retorno

Um aplicativo retornará um número diferente de zero se processar essa mensagem; caso contrário, retornará 0.

Comentários

OnCommand processa o mapa de mensagens para notificação de controle e entradas ON_COMMAND, e chama a função membro apropriada.

Substitua essa função membro em sua classe derivada para lidar com a mensagem WM_COMMAND. Uma substituição não processará o mapa de mensagens, a menos que a classe base OnCommand seja chamada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCompacting

A estrutura chama essa função membro para todas as janelas de nível superior quando o Windows detecta que mais de 12,5% do tempo do sistema em um intervalo de 30 a 60 segundos está sendo gasto compactando memória.

afx_msg void OnCompacting(UINT nCpuTime);

Parâmetros

nCpuTime
Especifica a taxa de tempo de CPU sendo gasta atualmente pela memória de compactação do Windows em comparação ao tempo de CPU gasto executando outras operações. Por exemplo, 8000h representa 50% do tempo de CPU gasto compactando a memória.

Comentários

Isso indica que a memória do sistema está baixa.

Quando um objeto CWnd recebe essa chamada, ele deve liberar o máximo de memória possível, levando em conta o nível atual de atividade do aplicativo e o número total de aplicativos em execução no Windows. O aplicativo pode chamar a função do Windows para determinar quantos aplicativos estão em execução.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCompareItem

A estrutura chama essa função membro para especificar a posição relativa de um novo item em uma caixa de listagem ou combinação de desenho de proprietário classificado como filho.

afx_msg int OnCompareItem(
    int nIDCtl,
    LPCOMPAREITEMSTRUCT lpCompareItemStruct);

Parâmetros

nIDCtl
O identificador do controle que enviou a mensagem WM_COMPAREITEM.

lpCompareItemStruct
Contém um ponteiro longo para uma estrutura de dados COMPAREITEMSTRUCT que contém os identificadores e os dados fornecidos pelo aplicativo para dois itens na caixa de combinação ou listagem.

Valor de retorno

Indica a posição relativa dos dois itens. Pode ser qualquer um dos seguintes valores:

Valor Significado
-1 O item 1 classifica antes do item 2.
0 O item 1 e o item 2 classificam do mesmo modo.
1 O item 1 classifica depois do item 2.

Comentários

Se uma caixa de combinação ou listagem for criada com o estilo ou CBS_SORT ou LBS_SORT, o Windows enviará uma mensagem WM_COMPAREITEM ao proprietário da caixa de combinação ou da caixa de listagem sempre que o aplicativo adicionar um novo item.

Dois itens na caixa de combinação ou listagem são reformados em uma estrutura COMPAREITEMSTRUCT apontada por lpCompareItemStruct. OnCompareItem deve retornar um valor que indica qual dos itens deve aparecer antes do outro. Normalmente, o Windows faz essa chamada várias vezes até determinar a posição exata do novo item.

Se o membro hwndItem da estrutura COMPAREITEMSTRUCT pertencer a um objeto CListBox ou CComboBox, a função virtual CompareItem da classe apropriada será chamada. Substitua CComboBox::CompareItem ou CListBox::CompareItem em sua classe derivada por CListBox ou CComboBox para fazer a comparação de item.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCompositionChanged

A estrutura chama essa função membro para todas as janelas de nível superior quando a composição do DWM (Gerenciador de Janelas da Área de Trabalho) estiver habilitada ou desabilitada.

afx_msg void OnCompositionChanged();

Comentários

Esse método recebe a notificação WM_DWMCOMPOSITIONCHANGED, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnContextMenu

Chamado pela estrutura quando o usuário clica com o botão direito do mouse na janela.

afx_msg void OnContextMenu(
    CWnd* pWnd,
    CPoint pos);

Parâmetros

pWnd
Identificador para a janela na qual o usuário clicou com o botão direito do mouse. Essa janela pode ser uma janela filho da janela que recebe a mensagem. Para obter mais informações sobre como processar essa mensagem, consulte a seção Comentários.

pos
Posição do cursor, nas coordenadas da tela, no momento do clique do mouse.

Comentários

Você pode processar essa mensagem exibindo um menu de contexto usando o TrackPopupMenu.

Se você não exibir um menu de contexto, deverá passar essa mensagem para a função DefWindowProc. Se a janela for uma janela filho, DefWindowProc envia a mensagem para o pai. Caso contrário, DefWindowProc exibirá um menu de contexto padrão se a posição especificada estiver na legenda da janela.

CWnd::OnCopyData

Essa função membro é chamada pela estrutura para copiar dados de um aplicativo para outro.

afx_msg BOOL OnCopyData(
    CWnd* pWnd,
    COPYDATASTRUCT* pCopyDataStruct);

Parâmetros

pWnd
Um ponteiro para um objeto CWnd que está enviando os dados.

pCopyDataStruct
Um ponteiro para uma estrutura COPYDATASTRUCT que contém os dados que estão sendo enviados.

Valor de retorno

Retornará TRUE se o aplicativo receptor aceitar com êxito os dados. Caso contrário, retorna FALSE.

Comentários

Os dados que estão sendo passados não devem conter ponteiros ou outras referências a objetos não acessíveis ao aplicativo que está recebendo os dados.

Embora os dados estejam sendo copiados, eles não devem ser alterados por outro thread do processo de envio.

O aplicativo receptor deve considerar os dados somente leitura. A estrutura apontada pelo parâmetro pCopyDataStruct é válida somente durante a transferência de dados; no entanto, o aplicativo receptor não deve liberar a memória associada à estrutura.

Se o aplicativo receptor precisar de acesso aos dados após o retorno dessa função, ele deverá copiar os dados recebidos em um buffer local.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCreate

A estrutura chama essa função membro quando um aplicativo solicita que a janela do Windows seja criada chamando a função membro Create ou CreateEx.

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

Parâmetros

lpCreateStruct
Aponta para uma estrutura CREATESTRUCT que contém informações sobre o objeto CWnd que está sendo criado.

Valor de retorno

OnCreate deve retornar 0 para continuar a criação do objeto CWnd. Se o aplicativo retornar -1, a janela será destruída.

Comentários

O objeto CWnd recebe essa chamada depois que a janela é criada, mas antes de ficar visível. OnCreate é chamado antes que a função membro Create ou CreateEx retorne.

Substitua essa função membro para executar qualquer inicialização necessária de uma classe derivada.

A estrutura CREATESTRUCT contém cópias dos parâmetros usados para criar a janela.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnCtlColor

A estrutura chama essa função membro quando um controle filho está prestes a ser desenhado.

afx_msg HBRUSH OnCtlColor(
    CDC* pDC,
    CWnd* pWnd,
    UINT nCtlColor);

Parâmetros

pDC
Contém um ponteiro para o contexto de exibição da janela filho. Pode ser temporário.

pWnd
Contém um ponteiro para o controle que está solicitando a cor. Pode ser temporário.

nCtlColor
Contém um dos seguintes valores, especificando o tipo de controle:

  • CTLCOLOR_BTN Controle de botão

  • CTLCOLOR_DLG Caixa de diálogo

  • CTLCOLOR_EDIT Controle de edição

  • CTLCOLOR_LISTBOX Controle de caixa de listagem

  • CTLCOLOR_MSGBOX Caixa de mensagem

  • CTLCOLOR_SCROLLBAR Controle de barra de rolagem

  • CTLCOLOR_STATIC Controle estático

Valor de retorno

OnCtlColor deve retornar um identificador para o pincel que deve ser usado para pintar a tela de fundo do controle.

Comentários

A maioria dos controles envia essa mensagem para seus pais (geralmente uma caixa de diálogo) para preparar o pDC para desenhar o controle usando as cores corretas.

Para alterar a cor do texto, chame a função membro SetTextColor com os valores RGB (vermelho, verde e azul) desejados.

Para alterar a cor da tela de fundo de um controle de edição de linha única, defina o identificador de pincel nos códigos de mensagem CTLCOLOR_EDIT e CTLCOLOR_MSGBOX e chame a função CDC::SetBkColor em resposta ao código CTLCOLOR_EDIT.

OnCtlColor não será chamada para a caixa de listagem de uma caixa de combinação suspensa porque a caixa de listagem suspensa é, na verdade, um filho da caixa de combinação e não um filho da janela. Para alterar a cor da caixa de listagem suspensa, crie uma CComboBox com uma substituição da OnCtlColor que verifica CTLCOLOR_LISTBOX no parâmetro nCtlColor. Neste manipulador, a função membro SetBkColor deve ser usada para definir a cor da tela de fundo do texto.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função. Para adicionar o método a seguir à classe de diálogo, use o painel de propriedades do Visual Studio para adicionar um manipulador de mensagens para WM_CTLCOLOR. Como alternativa, você pode adicionar manualmente uma entrada ON_WM_CTLCOLOR() ao mapa de mensagens.

Exemplo

// This OnCtlColor handler will change the color of a static control
// with the ID of IDC_MYSTATIC. The code assumes that the CPenWidthsDlg
// class has an initialized and created CBrush member named m_brush.
// The control will be painted with red text and a background
// color of m_brush.
HBRUSH CPenWidthsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   // Call the base class implementation first! Otherwise, it may
   // undo what we're trying to accomplish here.
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   // Are we painting the IDC_MYSTATIC control? We can use
   // CWnd::GetDlgCtrlID() to perform the most efficient test.
   if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC)
   {
      // Set the text color to red
      pDC->SetTextColor(RGB(255, 0, 0));

      // Set the background mode for text to transparent 
      // so background will show thru.
      pDC->SetBkMode(TRANSPARENT);

      // Return handle to our CBrush object
      hbr = m_brush;
   }

   return hbr;
}

CWnd::OnDeadChar

A estrutura chama essa função membro quando a função membro OnKeyUp e as funções membro OnKeyDown são chamadas.

afx_msg void OnDeadChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o valor do caractere de uma tecla inativa.

nRepCnt
Especifica a contagem de repetição.

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Descrição
0-7 Código de varredura (valor dependente de OEM). Baixo byte de palavra de alta ordem.
8 Teclas estendidas, como uma tecla de função ou uma tecla no teclado numérico (1 se for uma tecla estendida; caso contrário, 0).
9-10 Não usado.
11-12 Usado internamente pelo Windows.
13 Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, 0).
14 Estado de tecla anterior (1 se a tecla estiver pressionada antes da chamada, 0 se a tecla não estiver pressionada).
15 Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada).

Comentários

Essa função membro pode ser usada para especificar o valor de caractere de uma tecla desativada. Uma tecla desativada é uma tecla, como o caractere umlaut (ponto duplo), que é combinado com outros caracteres para formar um caractere composto. Por exemplo, o caractere umlaut-O consiste na tecla desativada, umlaut e na tecla O.

Um aplicativo normalmente usa OnDeadChar para fornecer aos usuários comentários sobre cada tecla pressionada. Por exemplo, um aplicativo pode exibir a ênfase na posição atual do caractere sem mover o cursor.

Como não há necessariamente uma correspondência um-para-um entre teclas pressionadas e chamadas de OnDeadChar, as informações em nFlags geralmente não são úteis para aplicativos. As informações em nFlags se aplicam somente à chamada mais recente à função membro OnKeyUp ou à função membro OnKeyDown que precede a chamada para OnDeadChar.

Para teclados IBM aprimorados de 101 e 102 teclas, as teclas aprimoradas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nFlags.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnDeleteItem

A estrutura chama essa função membro para informar ao proprietário de uma caixa de listagem de desenho do proprietário ou caixa de combinação que a caixa de listagem ou caixa de combinação foi destruída ou que os itens foram removidos por CComboBox::DeleteString, CListBox::DeleteString, CComboBox::ResetContent ou CListBox::ResetContent.

afx_msg void OnDeleteItem(
    int nIDCtl,
    LPDELETEITEMSTRUCT lpDeleteItemStruct);

Parâmetros

nIDCtl
O identificador do controle que enviou a mensagem WM_DELETEITEM.

lpDeleteItemStruct
Especifica um ponteiro longo para uma estrutura de dados DELETEITEMSTRUCT que contém informações sobre o item da caixa de listagem excluído.

Comentários

Se o membro hwndItem da estrutura DELETEITEMSTRUCT pertencer a uma caixa de combinação ou caixa de listagem, então a função virtual DeleteItem da classe apropriada será chamada. Substitua a função membro DeleteItem da classe do controle apropriado para excluir dados específicos do item.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnDestroy

A estrutura chama essa função membro para informar o objeto CWnd de que ele está sendo destruído.

afx_msg void OnDestroy();

Comentários

OnDestroy é chamado depois que o objeto CWnd é removido da tela.

OnDestroy é chamado primeiro para o CWnd que está sendo destruído; em seguida, para as janelas filho de CWnd conforme elas são destruídas. Pode-se supor que todas as janelas filho ainda existam enquanto OnDestroy é executada.

Se o objeto CWnd que está sendo destruído faz parte da cadeia de visualizadores de área de transferência (definida chamando a função membro SetClipboardViewer), a CWnd deve ser removida da cadeia de visualizadores de área de transferência chamando a função membro ChangeClipboardChain antes de retornar da função OnDestroy.

CWnd::OnDestroyClipboard

A estrutura chama essa função membro para o proprietário da área de transferência quando a área de transferência é esvaziada por meio de uma chamada para a função EmptyClipboard do Windows.

afx_msg void OnDestroyClipboard();

CWnd::OnDeviceChange

A estrutura chama essa função membro para notificar um driver de aplicativo ou dispositivo de uma alteração na configuração de hardware de um dispositivo ou do computador.

afx_msg BOOL OnDeviceChange(
    UINT nEventType,
    DWORD_PTR dwData);

Parâmetros

nEventType
Um tipo de evento. Consulte a seção Comentários para obter uma descrição dos valores disponíveis

dwData
O endereço de uma estrutura que contém dados específicos do evento. Seu significado depende do evento especificado.

Comentários

Para dispositivos que oferecem recursos controláveis por software, como ejeção e bloqueio, o sistema operacional normalmente envia uma mensagem DBT_DEVICEREMOVEPENDING para permitir que aplicativos e drivers de dispositivo terminem o uso do dispositivo normalmente.

Se o sistema operacional for removido com força de um dispositivo, ele poderá não enviar uma mensagem DBT_DEVICEQUERYREMOVE antes de fazê-lo.

O parâmetro nEvent pode ser um dos seguintes:

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnDevModeChange

A estrutura chama essa função membro para todos os objetos CWnd de nível superior quando o usuário altera as configurações do modo de dispositivo.

afx_msg void OnDevModeChange(LPTSTR lpDeviceName);

Parâmetros

lpDeviceName
Aponta para o nome do dispositivo especificado no arquivo de inicialização do Windows, WIN.INI.

Comentários

Os aplicativos que lidam com a mensagem WM_DEVMODECHANGE podem reinicializar suas configurações de modo de dispositivo. Os aplicativos que usam a função Windows ExtDeviceMode para salvar e restaurar as configurações do dispositivo normalmente não processam essa função.

Essa função não é chamada quando o usuário altera a impressora padrão de Painel de Controle. Nesse caso, a função OnWinIniChange é chamada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnDrawClipboard

A estrutura chama essa função membro para cada janela na cadeia de visualizadores de área de transferência quando o conteúdo da área de transferência é alterado.

afx_msg void OnDrawClipboard();

Comentários

Somente os aplicativos que ingressaram na cadeia de visualizadores de área de transferência chamando a função membro SetClipboardViewer precisam responder a essa chamada.

Cada janela que recebe uma chamada OnDrawClipboard deve chamar a função SendMessage do Windows para passar uma mensagem WM_DRAWCLIPBOARD para a próxima janela na cadeia de visualizadores de área de transferência. O identificador da próxima janela é retornado pela função membro SetClipboardViewer; ele pode ser modificado em resposta a uma chamada de função membro OnChangeCbChain.

CWnd::OnDrawIconicThumbnailOrLivePreview

Chamado pela estrutura quando ele precisa obter um bitmap a ser exibido na miniatura da guia do Windows 7 ou no cliente para espiar o aplicativo.

virtual void OnDrawIconicThumbnailOrLivePreview(
    CDC& dc,
    CRect rect,
    CSize szRequiredThumbnailSize,
    BOOL bIsThumbnail,
    BOOL& bAlphaChannelSet);

Parâmetros

dc
Especifica o contexto de dispositivo.

rect
Especifica o retângulo delimitador da imagem.

szRequiredThumbnailSize
Especifica o tamanho da miniatura de destino. Deve ser ignorado se bIsThumbnail for FALSE.

bIsThumbnail
Especifica se esse método é chamado para miniatura em ícone ou visualização ao vivo (espiada).

bAlphaChannelSet
[out] Defina-o como TRUE se sua implementação inicializar o canal alfa de um bitmap selecionado em dc.

Comentários

Substitua esse método em uma classe derivada e desenhe o contexto do dispositivo especificado para personalizar a miniatura e espiar. Se bThumbnail for TRUE, szRequiredThumbnailSize pode ser ignorado. Nesse caso, você deve estar ciente de que desenha um bitmap de tamanho completo (ou seja, um bitmap que abrange toda a área do cliente). O contexto do dispositivo (dc) vem com o bitmap de 32 bits selecionado. A implementação padrão é envia WM_PRINT para essa janela com sinalizadores PRF_CLIENT, PRF_CHILDREN e PRF_NONCLIENT.

CWnd::OnDrawItem

A estrutura chama essa função membro para o proprietário de um controle de botão de desenho do proprietário, controle de caixa de combinação, controle de caixa de listagem ou menu quando um aspecto visual do controle ou menu for alterado.

afx_msg void OnDrawItem(
    int nIDCtl,
    LPDRAWITEMSTRUCT lpDrawItemStruct);

Parâmetros

nIDCtl
Contém o identificador do controle que enviou a mensagem WM_DRAWITEM. Se um menu enviou a mensagem, nIDCtl contém 0.

lpDrawItemStruct
Especifica um ponteiro longo para uma estrutura de dados DRAWITEMSTRUCT que contém informações sobre o item a ser desenhado e o tipo de desenho necessário.

Comentários

O membro itemAction da estrutura DRAWITEMSTRUCT define a ação de desenho a ser executada. Os dados neste membro permitem que o proprietário do controle determine qual ação de desenho é necessária.

Antes de retornar do processamento dessa mensagem, um aplicativo deve garantir que o contexto do dispositivo identificado pelo membro hDC da estrutura DRAWITEMSTRUCT seja restaurado para o estado padrão.

Se o membro hwndItem pertencer a um objeto CButton, CMenu, CListBox, ou CComboBox, a função virtual DrawItem da classe apropriada será chamada. Substitua a função membro DrawItem da classe do controle apropriado para desenhar o item.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnDropFiles

A estrutura chama essa função membro quando o usuário libera o botão esquerdo do mouse sobre uma janela que se registrou como o destinatário dos arquivos removidos.

afx_msg void OnDropFiles(HDROP hDropInfo);

Parâmetros

hDropInfo
Um ponteiro para uma estrutura de dados interna que descreve os arquivos removidos. Esse identificador é usado pelas funções DragFinish, DragQueryFile e DragQueryPoint do Windows para recuperar informações sobre os arquivos removidos.

Comentários

Normalmente, uma classe derivada será projetada para dar suporte a arquivos removidos e ela se registrará durante a construção da janela.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnEnable

A estrutura chama essa função membro quando um aplicativo altera o estado habilitado do objeto CWnd.

afx_msg void OnEnable(BOOL bEnable);

Parâmetros

bEnable
Especifica se o objeto CWnd foi habilitado ou desabilitado. Esse parâmetro será TRUE se o CWnd tiver sido habilitado; ele será FALSE se o CWnd tiver sido desabilitado.

Comentários

OnEnable é chamado antes que a função membro EnableWindow retorne, mas depois que o estado habilitado para janela (bit de estilo WS_DISABLED) for alterado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnEndSession

A estrutura chama essa função membro depois que o objeto CWnd retorna um valor diferente de zero de uma chamada de função membro OnQueryEndSession.

afx_msg void OnEndSession(BOOL bEnding);

Parâmetros

bEnding
Especifica se a sessão está ou não sendo encerrada. Será TRUE se a sessão estiver sendo encerrada; caso contrário, FALSE.

Comentários

A chamada OnEndSession informa ao objeto CWnd se a sessão está realmente terminando.

Se bEnding for TRUE, o Windows poderá ser encerrado a qualquer momento depois que todos os aplicativos tiverem retornado do processamento dessa chamada. Consequentemente, faça com que um aplicativo execute todas as tarefas necessárias para o encerramento dentro do OnEndSession.

Você não precisa chamar a função membro DestroyWindow ou a função PostQuitMessage do Windows quando a sessão estiver sendo encerrada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnEnterIdle

Essa estrutura chama essa função membro para informar o procedimento de janela principal de um aplicativo de que uma caixa de diálogo de janela restrita ou um menu está entrando em um estado ocioso.

afx_msg void OnEnterIdle(
    UINT nWhy,
    CWnd* pWho);

Parâmetros

nWhy
Especifica se a mensagem é o resultado de uma caixa de diálogo ou de um menu sendo exibido. Esse parâmetro pode usar um dos valores a seguir:

  • MSGF_DIALOGBOX O sistema está ocioso porque uma caixa de diálogo está sendo exibida.

  • MSGF_MENU O sistema está ocioso porque um menu está sendo exibido.

pWho
Especifica um ponteiro para a caixa de diálogo (se nWhy for MSGF_DIALOGBOX) ou a janela que contém o menu exibido (se nWhy for MSGF_MENU). O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Uma caixa de diálogo ou menu de janela restrita insere um estado ocioso quando nenhuma mensagem está esperando em sua fila depois de ter processado uma ou mais mensagens anteriores.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnEnterMenuLoop

A estrutura chama essa função membro quando um loop modal de menu é inserido.

afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);

Parâmetros

bIsTrackPopupMenu
Especifica se o menu envolvido é um menu pop-up. Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnEnterSizeMove

A estrutura chama essa função membro uma vez depois que a janela afetada entra em um loop modal móvel ou de dimensionamento.

afx_msg void OnEnterSizeMove();

Comentários

Esse método recebe a notificação WM_ENTERSIZEMOVE, que é descrita no SDK do Windows.

Uma janela entra em um loop modal móvel ou de dimensionamento quando o usuário clica na barra de título da janela ou na borda de dimensionamento, ou quando a janela passa a mensagem WM_SYSCOMMAND para a função CWnd::DefWindowProc e o parâmetro wParam dessa mensagem especifica SC_MOVE ou SC_SIZE.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnEraseBkgnd

A estrutura chama essa função membro quando o plano de fundo do objeto CWnd precisa ser apagado (por exemplo, quando redimensionado).

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

Parâmetros

pDC
Especifica o objeto de contexto do dispositivo.

Valor de retorno

Diferente de zero se apagar o plano de fundo; caso contrário, 0.

Comentários

Ele é chamado para preparar uma região invalidada para pintura.

A implementação padrão apaga a tela de fundo usando o pincel de tela de fundo da classe de janela especificado pelo membro hbrBackground da estrutura de classe de janela.

Se o membro hbrBackground for NULL, sua versão substituída de OnEraseBkgnd deverá apagar a cor da tela de fundo. Sua versão também deve alinhar a origem do pincel pretendido com as coordenadas CWnd chamando UnrealizeObject primeiro para o pincel e, em seguida, selecionando o pincel.

Um OnEraseBkgnd substituído deve retornar um valor diferente de zero em resposta a WM_ERASEBKGND se ele processar a mensagem e apagar o plano de fundo; isso indica que nenhum novo apagamento será necessário. Se retornar 0, a janela permanecerá marcada como precisando ser apagada. (Normalmente, isso significa que o membro fErase da estrutura PAINTSTRUCT será TRUE.)

O Windows pressupõe que a tela de fundo seja calculada com o modo de mapeamento MM_TEXT. Se o contexto do dispositivo estiver usando qualquer outro modo de mapeamento, a área apagada poderá não estar dentro da parte visível da área do cliente.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnExitMenuLoop

A estrutura chama essa função membro quando um loop modal de menu é encerrado.

afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);

Parâmetros

bIsTrackPopupMenu
Especifica se o menu envolvido é um menu pop-up. Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnExitSizeMove

A estrutura chama essa função membro uma vez depois que a janela afetada sai de um loop modal móvel ou de dimensionamento.

afx_msg void OnExitSizeMove();

Comentários

Esse método recebe a notificação WM_EXITSIZEMOVE, que é descrita no SDK do Windows.

Uma janela entra em um loop modal móvel ou de dimensionamento quando o usuário clica na barra de título ou na borda de dimensionamento da janela, ou quando a janela passa a mensagem WM_SYSCOMMAND para a função CWnd::DefWindowProc e o parâmetro wParam dessa mensagem especifica SC_MOVE ou SC_SIZE.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnFontChange

Todas as janelas de nível superior no sistema recebem uma chamada OnFontChange da estrutura depois do aplicativo alterar o pool de recursos de fonte.

afx_msg void OnFontChange();

Comentários

Um aplicativo que adiciona ou remove fontes do sistema (por exemplo, por meio da função AddFontResourceou RemoveFontResource do Windows) deve enviar a mensagem WM_FONTCHANGE para todas as janelas de nível superior.

Para enviar essa mensagem, use a função SendMessage do Windows com o parâmetro hWnd definido como HWND_BROADCAST.

CWnd::OnGetDlgCode

Chamado para um controle para que o controle possa processar a tecla de direção e a entrada da tecla TAB.

afx_msg UINT OnGetDlgCode();

Valor de retorno

Um ou mais dos seguintes valores, indicando qual tipo de entrada o aplicativo processa:

  • DLGC_BUTTON Botão (genérico).

  • DLGC_DEFPUSHBUTTON Botão push padrão.

  • DLGC_HASSETSELEM_SETSEL Mensagens.

  • DLGC_UNDEFPUSHBUTTON Sem o processamento de botão push padrão. (Um aplicativo pode usar esse sinalizador com DLGC_BUTTON para indicar que ele processa a entrada do botão, mas depende do sistema para processamento de botão push padrão.)

  • DLGC_RADIOBUTTON Botão de opção.

  • DLGC_STATIC Controle estático.

  • DLGC_WANTALLKEYS Todas as entradas de teclado.

  • DLGC_WANTARROWS Teclas de direção.

  • DLGC_WANTCHARSWM_CHAR Mensagens.

  • DLGC_WANTMESSAGE Todas as entradas de teclado. O aplicativo passa essa mensagem para o controle.

  • DLGC_WANTTAB Tecla TAB.

Comentários

Normalmente, o Windows manipula todas as entradas de tecla de direção e TAB para um controle CWnd. Ao substituir OnGetDlgCode, um controle CWnd pode escolher um tipo específico de entrada para processar a si mesmo.

As funções OnGetDlgCode padrão para as classes de controle predefinidas retornam um código apropriado para cada classe.

CWnd::OnGetMinMaxInfo

A estrutura chama a função membro sempre que o Windows precisar saber a posição ou dimensões maximizadas, ou o tamanho mínimo ou máximo de acompanhamento.

afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);

Parâmetros

lpMMI
Aponta para uma estrutura MINMAXINFO que contém informações sobre o tamanho e a posição maximizados de uma janela e seu tamanho mínimo e máximo de acompanhamento. Para obter mais informações sobre essa estrutura, consulte a estrutura MINMAXINFO.

Comentários

O tamanho maximizado é o tamanho da janela quando suas bordas são totalmente estendidas. O tamanho máximo de acompanhamento da janela é o maior tamanho de janela que pode ser obtido usando as bordas para dimensionar a janela. O tamanho mínimo de acompanhamento da janela é o menor tamanho de janela que pode ser obtido usando as bordas para dimensionar a janela.

O Windows preenche uma matriz de pontos que especifica valores padrão para as várias posições e dimensões. O aplicativo pode alterar esses valores em OnGetMinMaxInfo.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnHelp

Manipula a F1 Ajuda dentro do aplicativo (usando o contexto atual).

afx_msg void OnHelp();

Comentários

Consulte CWinApp::OnHelp para obter mais informações.

CWnd::OnHelpFinder

Manipula os comandos ID_HELP_FINDER e ID_DEFAULT_HELP.

afx_msg void OnHelpFinder();

Comentários

Consulte CWinApp::OnHelpFinder para obter mais informações.

CWnd::OnHelpIndex

Manipula o comando ID_HELP_INDEX e fornece um tópico de Ajuda padrão.

afx_msg void OnHelpIndex();

Comentários

Consulte CWinApp::OnHelpIndex para obter mais informações.

CWnd::OnHelpInfo

Chamado pela estrutura quando o usuário pressiona a tecla F1.

afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);

Parâmetros

lpHelpInfo
Ponteiro para uma estrutura HELPINFO que contém informações sobre o item de menu, controle, caixa de diálogo ou janela para a qual a ajuda é solicitada.

Valor de retorno

Retorna TRUE se uma janela tiver o foco do teclado ou se um menu estiver ativo dentro de uma janela. Se nenhuma janela tiver o foco do teclado, retornará FALSE.

Comentários

Se um menu estiver ativo quando F1 for pressionado, WM_HELP será enviado para a janela associada ao menu; caso contrário, WM_HELP será enviado para a janela que tem o foco do teclado. Se nenhuma janela tiver o foco do teclado, WM_HELP será enviada para a janela ativa no momento.

CWnd::OnHelpUsing

Manipula o comando ID_HELP_USING.

afx_msg void OnHelpUsing();

Comentários

Consulte CWinApp::OnHelpUsing para obter mais informações.

CWnd::OnHotKey

A estrutura chama essa função membro quando o usuário pressiona uma tecla de acesso em todo o sistema.

afx_msg void OnHotKey(
    UINT nHotKeyId,
    UINT nKey1,
    UINT nKey2);

Parâmetros

nHotKeyId
[in] Identificador da tecla de acesso que gerou a mensagem. Se a mensagem foi gerada por uma tecla de acesso definida pelo sistema, esse parâmetro será um dos seguintes valores:

  • IDHOT_SNAPDESKTOP - A tecla de acesso de ajuste da área de trabalho foi pressionada.
  • IDHOT_SNAPWINDOW - A tecla de acesso de ajuste da área de trabalho foi pressionada.

nKey1
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam as teclas que foram pressionadas em combinação com a tecla especificada pelo parâmetro nKey2. Os valores possíveis são:

  • MOD_ALT - Alguma tecla ALT foi mantida pressionada.
  • MOD_CONTROL - Alguma tecla CTRL foi mantida pressionada.
  • MOD_SHIFT - Alguma tecla SHIFT foi mantida pressionada.
  • MOD_WIN - Alguma tecla WINDOWS foi mantida pressionada. Essas teclas estão rotuladas com o logotipo do Microsoft Windows.

nKey2
[in] O código de tecla virtual da tecla de acesso.

Comentários

Esse método recebe a notificação WM_HOTKEY, que é descrita no SDK do Windows. Essa mensagem é colocada na parte superior da fila de mensagens associada ao thread que registrou a tecla de acesso. Use a função RegisterHotKey para registrar uma tecla de acesso em todo o sistema.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnHScroll

A estrutura chama essa função membro quando o usuário clica na barra de rolagem horizontal de uma janela.

afx_msg void OnHScroll(
    UINT nSBCode,
    UINT nPos,
    CScrollBar* pScrollBar);

Parâmetros

nSBCode
Especifica um código de barra de rolagem que indica a solicitação de rolagem do usuário. Esse parâmetro pode ser um dos seguintes:

  • SB_LEFT Role para a esquerda até o fim.

  • SB_ENDSCROLL Rolagem final.

  • SB_LINELEFT Role para a esquerda.

  • SB_LINERIGHT Role para a direita.

  • SB_PAGELEFT Role uma página para a esquerda.

  • SB_PAGERIGHT Role uma página para a direita.

  • SB_RIGHT Role para a direita até o fim.

  • SB_THUMBPOSITION Role até a posição absoluta. A posição atual é especificada pelo parâmetro nPos.

  • SB_THUMBTRACK Arraste a caixa de rolagem para a posição especificada. A posição atual é especificada pelo parâmetro nPos.

nPos
Especifica a posição da caixa de rolagem se o código da barra de rolagem for SB_THUMBPOSITION ou SB_THUMBTRACK; caso contrário, não será usado. Dependendo do intervalo de rolagem inicial, nPos pode ser negativo e deve ser convertido em um int, se necessário.

pScrollBar
Se a mensagem de rolagem veio de um controle de barra de rolagem, contém um ponteiro para o controle. Se o usuário clicou na barra de rolagem de uma janela, esse parâmetro será NULL. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

O código da barra de rolagem SB_THUMBTRACK normalmente é usado por aplicativos que fornecem alguns comentários enquanto a caixa de rolagem está sendo arrastada.

Se um aplicativo rolar o conteúdo controlado pela barra de rolagem, ele também deverá redefinir a posição da caixa de rolagem com a função membro SetScrollPos.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

Exemplo

void CMdiView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
   // Get the minimum and maximum scroll-bar positions.
   int minpos;
   int maxpos;
   GetScrollRange(SB_HORZ, &minpos, &maxpos);
   maxpos = GetScrollLimit(SB_HORZ);

   // Get the current position of scroll box.
   int curpos = GetScrollPos(SB_HORZ);

   // Determine the new position of scroll box.
   switch (nSBCode)
   {
   case SB_LEFT: // Scroll to far left.
      curpos = minpos;
      break;

   case SB_RIGHT: // Scroll to far right.
      curpos = maxpos;
      break;

   case SB_ENDSCROLL: // End scroll.
      break;

   case SB_LINELEFT: // Scroll left.
      if (curpos > minpos)
         curpos--;
      break;

   case SB_LINERIGHT: // Scroll right.
      if (curpos < maxpos)
         curpos++;
      break;

   case SB_PAGELEFT: // Scroll one page left.
   {
      // Get the page size.
      SCROLLINFO info;
      GetScrollInfo(SB_HORZ, &info, SIF_ALL);

      if (curpos > minpos)
         curpos = max(minpos, curpos - (int)info.nPage);
   }
   break;

   case SB_PAGERIGHT: // Scroll one page right.
   {
      // Get the page size.
      SCROLLINFO info;
      GetScrollInfo(SB_HORZ, &info, SIF_ALL);

      if (curpos < maxpos)
         curpos = min(maxpos, curpos + (int)info.nPage);
   }
   break;

   case SB_THUMBPOSITION: // Scroll to absolute position. nPos is the position
      curpos = nPos;      // of the scroll box at the end of the drag operation.
      break;

   case SB_THUMBTRACK: // Drag scroll box to specified position. nPos is the
      curpos = nPos;   // position that the scroll box has been dragged to.
      break;
   }

   // Set the new position of the thumb (scroll box).
   SetScrollPos(SB_HORZ, curpos);

   CView::OnHScroll(nSBCode, nPos, pScrollBar);
}

CWnd::OnHScrollClipboard

A função membro OnHScrollClipboard do proprietário da área de transferência é chamada pelo visualizador da área de transferência quando os dados da área de transferência têm o formato CF_OWNERDISPLAY e há um evento na barra de rolagem horizontal do visualizador da área de transferência.

afx_msg void OnHScrollClipboard(
    CWnd* pClipAppWnd,
    UINT nSBCode,
    UINT nPos);

Parâmetros

pClipAppWnd
Especifica um ponteiro para uma janela de visualizador de área de transferência. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

nSBCode
Especifica um dos seguintes códigos de barra de rolagem na palavra de baixa ordem:

  • SB_BOTTOM Role para a parte inferior direita.

  • SB_ENDSCROLL Rolagem final.

  • SB_LINEDOWN Role uma linha para baixo.

  • SB_LINEUP Role uma linha para cima.

  • SB_PAGEDOWN Role uma página para baixo.

  • SB_PAGEUP Role uma página para cima.

  • SB_THUMBPOSITION Role até a posição absoluta. A posição atual é fornecida em nPos.

  • SB_TOP Role para a parte superior esquerda.

nPos
Especifica a posição da caixa de rolagem se o código da barra de rolagem for SB_THUMBPOSITION; caso contrário, não será usado.

Comentários

O proprietário deve rolar a imagem da área de transferência, invalidar a seção adequada e atualizar os valores da barra de rolagem.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnIconEraseBkgnd

A estrutura chama essa função membro para um objeto minimizado (em ícone) CWnd quando a tela de fundo do ícone deve ser preenchida antes de pintar o ícone.

afx_msg void OnIconEraseBkgnd(CDC* pDC);

Parâmetros

pDC
Especifica o objeto de contexto do dispositivo. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

CWnd recebe essa chamada somente se um ícone de classe for definido para a implementação padrão da janela; caso contrário, OnEraseBkgnd é chamado.

A função membro DefWindowProc preenche a tela de fundo do ícone com o pincel de fundo da janela pai.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnInitMenu

A estrutura chama essa função membro quando um menu está prestes a se tornar ativo.

afx_msg void OnInitMenu(CMenu* pMenu);

Parâmetros

pMenu
Especifica o menu a ser inicializado. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

OnInitMenu é chamado quando o usuário clica em um item na barra de menus ou pressiona uma tecla de menu. Substitua essa função membro para modificar o menu antes de ser exibido.

OnInitMenu é chamado apenas uma vez, quando um menu é acessado pela primeira vez (por exemplo, quando um usuário clica em um item na barra de menus). Esse método não fornece informações sobre itens de menu. À medida que o usuário se move para itens dentro do menu (por exemplo, movendo o mouse por vários itens de menu), a função não é chamada novamente. Depois que o usuário sair do menu (por exemplo, clicando na área do cliente do aplicativo) e, posteriormente, clicar em um item na barra de menus, a função será chamada novamente.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnInitMenuPopup

A estrutura chama essa função membro quando um menu pop-up está prestes a se tornar ativo.

afx_msg void OnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nIndex,
    BOOL bSysMenu);

Parâmetros

pPopupMenu
Especifica o objeto de menu do menu pop-up. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

nIndex
Especifica o índice do menu pop-up no menu principal.

bSysMenu
TRUE se o menu pop-up for o menu Controle; caso contrário, FALSE.

Comentários

Isso permite que um aplicativo modifique o menu pop-up antes de ser exibido sem alterar o menu inteiro.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnInputDeviceChange

A estrutura chama essa função membro quando um dispositivo de E/S é adicionado ou removido do sistema.

afx_msg void OnInputDeviceChange(unsigned short uFlag);

Parâmetros

uFlag
[in] Este sinalizador pode conter os valores a seguir:

  • GIDC_ARRIVAL - Um novo dispositivo foi adicionado ao sistema.
  • GIDC_REMOVAL - Um novo dispositivo foi removido do sistema.

Comentários

Esse método recebe a notificação WM_INPUT_DEVICE_CHANGE, que é descrita no SDK do Windows. É uma mensagem de dispositivo de entrada genérica.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnInputLangChange

A estrutura chama esse membro para a janela mais superior afetada após a alteração do idioma de entrada de um aplicativo.

afx_msg void OnInputLangChange(
    UINT nCharSet,
    UINT nLocaleId);

Parâmetros

nCharSet
[in] O conjunto de caracteres da nova localidade. Para obter mais informações, consulte o parâmetro lfCharSet da estrutura LOGFONT.

nLocaleId
O identificador de localidade de entrada. Para obter mais informações, consulte Constantes e cadeias de caracteres do identificador de idioma.

Comentários

Esse método recebe a notificação WM_INPUTLANGCHANGE, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnInputLangChangeRequest

A estrutura chama esse membro para janela com o foco quando o usuário escolhe um novo idioma de entrada.

afx_msg void OnInputLangChangeRequest(
    UINT nFlags,
    UINT nLocaleId);

Parâmetros

nFlags
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam que a nova localidade foi selecionada na localidade anterior ou próxima na lista instalada de localidades ou que o layout do teclado da nova localidade de entrada pode ter sido usado com o conjunto de caracteres do sistema. Os valores possíveis são INPUTLANGCHANGE_BACKWARD, INPUTLANGCHANGE_FORWARD e INPUTLANGCHANGE_SYSCHARSET.

nLocaleId
O identificador de localidade de entrada. Para obter mais informações, consulte Constantes e cadeias de caracteres do identificador de idioma.

Comentários

Esse método recebe a notificação WM_INPUTLANGCHANGEREQUEST, que é descrita no SDK do Windows. Essa mensagem é postada quando o usuário escolhe uma nova linguagem de entrada com uma tecla de acesso especificada no aplicativo do painel de controle de teclado ou no indicador na barra de tarefas do sistema.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnKeyDown

A estrutura chama essa função membro quando uma tecla que não é do sistema é pressionada.

afx_msg void OnKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o código de tecla virtual da tecla fornecida. Para obter uma lista de códigos de tecla virtual padrão, consulte Winuser.h

nRepCnt
Contagem de repetição (o número de vezes que o pressionamento de tecla é repetido como resultado do usuário que mantém a tecla pressionada).

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Descrição
0-7 Código de varredura (valor dependente de OEM).
8 Teclas estendidas, como uma tecla de função ou uma tecla no teclado numérico (1 se for uma tecla estendida).
9-10 Não usado.
11-12 Usado internamente pelo Windows.
13 Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, 0).
14 Estado de tecla anterior (1 se a tecla estiver pressionada antes da chamada, 0 se a tecla não estiver pressionada).
15 Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada).

Para uma mensagem WM_KEYDOWN, o bit de transição de tecla (bit 15) é 0 e o bit de código de contexto (bit 13) é 0.

Comentários

Uma tecla que não é do sistema é uma tecla de teclado pressionada quando a tecla ALT não é pressionada ou uma tecla de teclado pressionada quando CWnd tem o foco de entrada.

Devido à repetição automática, mais de uma chamada OnKeyDown pode ocorrer antes de uma chamada OnKeyUp de função membro ser feita. O bit que indica o estado de tecla anterior pode ser usado para determinar se a chamada OnKeyDown é a primeira transição para baixo ou uma transição repetida para baixo.

Para teclados IBM aprimorados de 101 e 102 teclas, as teclas aprimoradas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nFlags.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnKeyUp

A estrutura chama essa função membro quando uma tecla que não é do sistema é liberada.

afx_msg void OnKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o código de tecla virtual da tecla fornecida. Para obter uma lista de códigos de tecla virtual padrão, consulte Winuser.h

nRepCnt
Contagem de repetição (o número de vezes que o pressionamento de tecla é repetido como resultado do usuário que mantém a tecla pressionada).

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Descrição
0-7 Código de varredura (valor dependente de OEM). Baixo byte de palavra de alta ordem.
8 Teclas estendidas, como uma tecla de função ou uma tecla no teclado numérico (1 se for uma tecla estendida; caso contrário, 0).
9-10 Não usado.
11-12 Usado internamente pelo Windows.
13 Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, 0).
14 Estado de tecla anterior (1 se a tecla estiver pressionada antes da chamada, 0 se a tecla não estiver pressionada).
15 Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada).

Para uma mensagem WM_KEYUP, o bit de transição de tecla (bit 15) é 1 e o bit de código de contexto (bit 13) é 0.

Comentários

Uma tecla que não é do sistema é uma tecla de teclado pressionada quando a tecla ALT não é pressionada ou uma tecla de teclado pressionada quando CWnd tem o foco de entrada.

Para teclados IBM aprimorados de 101 e 102 teclas, as teclas aprimoradas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nSinalizadores.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnKillFocus

A estrutura chama essa função membro imediatamente antes de perder o foco de entrada.

afx_msg void OnKillFocus(CWnd* pNewWnd);

Parâmetros

pNewWnd
Especifica um ponteiro para a janela que recebe o foco de entrada (pode ser NULL ou pode ser temporário).

Comentários

Se o objeto CWnd estiver exibindo um cursor, o cursor deverá ser destruído neste momento.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnLButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes no botão esquerdo do mouse.

afx_msg void OnLButtonDblClk(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Somente as janelas que têm o CS_DBLCLKS WNDCLASS estilo receberão OnLButtonDblClk chamadas. Esse é o padrão para janelas de classe do Microsoft Foundation. O Windows chama OnLButtonDblClk quando o usuário pressiona, libera e pressiona o botão esquerdo do mouse novamente dentro do limite de tempo de clique duplo do sistema. Clicar duas vezes no botão esquerdo do mouse gera quatro eventos: WM_LBUTTONDOWN, mensagens WM_LBUTTONUP, a chamada WM_LBUTTONDBLCLK e outra mensagem WM_LBUTTONUP quando o botão é liberado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnLButtonDown

A estrutura chama essa função membro quando o usuário clica no botão esquerdo do mouse.

afx_msg void OnLButtonDown(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnLButtonUp

A estrutura chama essa função membro quando o usuário libera o botão esquerdo do mouse.

afx_msg void OnLButtonUp(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes no botão do meio do mouse.

afx_msg void OnMButtonDblClk(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Somente as janelas que têm o CS_DBLCLKS WNDCLASS estilo receberão OnMButtonDblClk chamadas. Esse é o padrão para janelas de classe do Microsoft Foundation. O Windows chama OnMButtonDblClk quando o usuário pressiona, libera e pressiona o botão do meio do mouse novamente dentro do limite de tempo de clique duplo do sistema. Clicar duas vezes no botão do meio do mouse gera quatro eventos: mensagens WM_MBUTTONDOWN e WM_MBUTTONUP, a chamada WM_MBUTTONDBLCLK e outra mensagem WM_MBUTTONUP.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMButtonDown

A estrutura chama essa função membro quando o usuário clica no botão do meio do mouse.

afx_msg void OnMButtonDown(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMButtonUp

A estrutura chama essa função membro quando o usuário libera o botão do meio do mouse.

afx_msg void OnMButtonUp(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMDIActivate

A estrutura chama essa função membro para a janela filho que está sendo desativada e a janela filho que está sendo ativada.

afx_msg void OnMDIActivate(
    BOOL bActivate,
    CWnd* pActivateWnd,
    CWnd* pDeactivateWnd);

Parâmetros

bActivate
TRUE se a criança estiver sendo ativada e FALSE se ela estiver sendo desativada.

pActivateWnd
Contém um ponteiro para a janela filho do MDI a ser ativada. Quando recebido por uma janela filho MDI, pActivateWnd contém um ponteiro para a janela filho que está sendo ativada. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

pDeactivateWnd
Contém um ponteiro para a janela filho do MDI a ser desativada. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Uma janela filho da interface MDI é ativada independentemente da janela com moldura da MDI. Quando o quadro fica ativo, a janela filho que foi ativada pela última vez com uma chamada OnMDIActivate recebe uma mensagem WM_NCACTIVATE para desenhar uma barra de legenda e um quadro de janela ativo, mas não recebe outra chamada OnMDIActivate.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMeasureItem

A estrutura chama essa função membro pela estrutura para o proprietário de uma caixa de combinação, caixa de listagem, item de menu ou botão de desenho do proprietário quando o controle é criado.

afx_msg void OnMeasureItem(
    int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Parâmetros

nIDCtl
O ID do controle.

lpMeasureItemStruct
Aponta para uma estrutura de dados MEASUREITEMSTRUCT que contém as dimensões do controle de desenho do proprietário.

Comentários

Substitua essa função membro e preencha a estrutura de dados MEASUREITEMSTRUCT apontada por lpMeasureItemStruct e retorne; isso informa o Windows sobre as dimensões do controle e permite que o Windows processe a interação do usuário com o controle corretamente.

Se uma caixa de listagem ou uma caixa de combinação for criada com o estilo LBS_OWNERDRAWVARIABLE ou CBS_OWNERDRAWVARIABLE, a estrutura chamará essa função para o proprietário de cada item no controle; caso contrário, essa função será chamada uma vez.

O Windows inicia a chamada à OnMeasureItem para o proprietário de caixas de combinação e caixas de listagem criadas com o estilo OWNERDRAWFIXED antes de enviar a mensagem WM_INITDIALOG. Como resultado, quando o proprietário recebe essa chamada, o Windows ainda não determinou a altura e a largura da fonte usada no controle; as chamadas de função e os cálculos que exigem esses valores devem ocorrer na função principal do aplicativo ou da biblioteca.

Se o item que está sendo medido for um objeto CMenu, CListBox ou CComboBox, a função virtual MeasureItem da classe apropriada será chamada. Substitua a função membro MeasureItem da classe do controle apropriado para calcular e definir o tamanho de cada item.

OnMeasureItem será chamado somente se a classe do controle for criada em tempo de execução, ou se ela é criada com o estilo LBS_OWNERDRAWVARIABLE ou CBS_OWNERDRAWVARIABLE. Se o controle for criado pelo editor de diálogo, OnMeasureItem não será chamado. Isso ocorre porque a mensagem WM_MEASUREITEM é enviada no início do processo de criação do controle. Se você fizer uma subclasse usando DDX_Control, SubclassDlgItem ou SubclassWindow, isso geralmente ocorre após o processo de criação. Portanto, não há nenhuma maneira de lidar com a mensagem WM_MEASUREITEM na função OnChildNotify do controle, que é o mecanismo que o MFC usa para implementar ON_WM_MEASUREITEM_REFLECT.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMenuChar

A estrutura chama essa função membro quando o usuário pressiona um caractere mnemônico de menu que não corresponde a nenhum dos mnemônicos predefinidos no menu atual.

afx_msg LRESULT OnMenuChar(
    UINT nChar,
    UINT nFlags,
    CMenu* pMenu);

Parâmetros

nChar
Dependendo das configurações de compilação, especifica o caractere ANSI ou Unicode que o usuário pressionou.

nFlags
Contém o sinalizador MF_POPUP se o menu for um menu pop-up. Contém o sinalizador MF_SYSMENU se o menu for um menu Controle.

pMenu
Contém um ponteiro para o CMenu selecionado. O ponteiro pode ser temporário e não deve ser armazenado.

Valor de retorno

A palavra de alta ordem do valor retornado deve conter um dos seguintes códigos de comando:

Valor Descrição
0 Informa ao Windows para descartar o caractere que o usuário pressionou e cria um bipe curto no alto-falante do sistema.
1 Informa ao Windows para fechar o menu atual.
2 Informa ao Windows que a palavra de baixa ordem do valor retornado contém o número do item para um item específico. Este item é selecionado pelo Windows.

A palavra de baixa ordem será ignorada se a palavra de alta ordem contiver 0 ou 1. Os aplicativos devem processar essa mensagem quando as teclas de aceleração (atalho) são usadas para selecionar bitmaps colocados em um menu.

Comentários

Ele é enviado para o CWnd que possui o menu. OnMenuChar também é chamado quando o usuário pressiona ALT e qualquer outra tecla, mesmo que a tecla não corresponda a um caractere mnemônico. Nesse caso, pMenu aponta para o menu de propriedade de CWnd, e nFlags é 0.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMenuDrag

A estrutura chama essa função membro do menu de arrastar e soltar atual quando o usuário começa a arrastar um item de menu.

afx_msg UINT OnMenuDrag(
    UINT nPos,
    CMenu* pMenu);

Parâmetros

nPos
[in] A posição do índice do item de menu quando a operação de arrastar começa.

pMenu
[in] Ponteiro para o objeto CMenu que contém o item do menu.

Valor de retorno

Valor de retorno Significado
MND_CONTINUE O menu deve permanecer ativo. Se o mouse for liberado, ele deverá ser ignorado.
MND_ENDMENU O menu deve ser encerrado.

Comentários

Esse método recebe a notificação WM_MENUDRAG, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMenuGetObject

A estrutura chama essa função membro do menu de arrastar e soltar atual quando o cursor do mouse insere um item de menu ou se move do centro do item para a parte superior ou inferior do item.

afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);

Parâmetros

pMenu
[in] Ponteiro para uma estrutura MENUGETOBJECTINFO que contém informações sobre o menu de arrastar e soltar em que o cursor do mouse está ativado.

Valor de retorno

Valor de retorno Significado
MNGO_NOERROR Um ponteiro de interface que dá suporta a operações de arrastar e soltar é retornado no membro pvObj da estrutura MENUGETOBJECTINFO. Atualmente, há suporte apenas para a interface IDropTarget.
MNGO_NOINTERFACE Não há suporte para nenhuma interface de arrastar e soltar.

Comentários

Esse método recebe a notificação WM_MENUGETOBJECT, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMenuRButtonUp

A estrutura chama essa função membro quando o usuário libera o botão direito do mouse enquanto o cursor está em um item de menu.

afx_msg void OnMenuRButtonUp(
    UINT nPos,
    CMenu* pMenu);

Parâmetros

nPos
[in] A posição do índice do item de menu quando o botão direito do mouse foi liberado.

pMenu
[in] Ponteiro para o objeto CMenu que contém o item do menu.

Comentários

Esse método recebe a notificação WM_MENURBUTTONUP, que é descrita no SDK do Windows. A mensagem WM_MENURBUTTONUP permite que um aplicativo forneça um menu de ajuda contextual para o item de menu especificado na mensagem.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMenuSelect

Se o objeto CWnd estiver associado a um menu, OnMenuSelect será chamado pela estrutura quando o usuário seleciona um item de menu.

afx_msg void OnMenuSelect(
    UINT nItemID,
    UINT nFlags,
    HMENU hSysMenu);

Parâmetros

nItemID
Identifica o item selecionado. Se o item selecionado for um item de menu, nItemID conterá o ID do item de menu. Se o item selecionado contiver um menu pop-up, nItemID conterá o índice de menu pop-up e hSysMenu conterá o identificador do menu principal (clicado).

nFlags
Contém uma combinação dos seguintes sinalizadores de menu:

  • MF_BITMAP O item é um bitmap.

  • MF_CHECKED O item é verificado.

  • MF_DISABLED O item é desabilitado.

  • MF_GRAYED O item é esmaecido.

  • MF_MOUSESELECT O item foi selecionado com um mouse.

  • MF_OWNERDRAW O item é um item de desenho do proprietário.

  • MF_POPUP O item contém um menu pop-up.

  • MF_SEPARATOR O item é um separador de item de menu.

  • MF_SYSMENU O item está contido no menu Controle.

hSysMenu
Se nFlags contiver MF_SYSMENU, identificará o menu associado à mensagem. Se nFlags contiver MF_POPUP, identificará o identificador do menu principal. Se nFlags não contiver MF_SYSMENU nem MF_POPUP, ele não é utilizado.

Comentários

Se nFlags contiver 0xFFFF e hSysMenu contiver 0, o Windows fechou o menu porque o usuário pressionou a tecla ESC ou clicou fora do menu.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMouseActivate

A estrutura chama essa função membro quando o cursor está em uma janela inativa e o usuário pressiona um botão do mouse.

afx_msg int OnMouseActivate(
    CWnd* pDesktopWnd,
    UINT nHitTest,
    UINT message);

Parâmetros

pDesktopWnd
Especifica um ponteiro para a janela pai de nível superior da janela que está sendo ativada. O ponteiro pode ser temporário e não deve ser armazenado.

nHitTest
Especifica o código da área do teste de clique. Um teste de clique é um teste que determina o local do cursor.

message
Especifica o número da mensagem do mouse.

Valor de retorno

Especifica se o CWnd deve ser ativado e se o evento do mouse deve ser descartado. Deve ser um dos seguintes valores:

  • MA_ACTIVATE Ative o objeto CWnd.

  • MA_NOACTIVATE Não ative o objeto CWnd.

  • MA_ACTIVATEANDEAT Ative o objeto CWnd e descarte o evento do mouse.

  • MA_NOACTIVATEANDEAT Não ative o objeto CWnd e descarte o evento do mouse.

Comentários

A implementação padrão passa essa mensagem para a janela pai antes de qualquer processamento ocorrer. Se a janela pai retornar TRUE, o processamento será interrompido.

Para obter uma descrição dos códigos de área de teste de clique individuais, consulte a função membro OnNcHitTest

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

Exemplo

// The code fragment below shows how to UI activate an ActiveX control.
// CMyAxCtrl is a COleControl-derived class.
int CMyAxCtrl::OnMouseActivate(CWnd *pDesktopWnd, UINT nHitTest, UINT message)
{
   OnActivateInPlace(TRUE, NULL); // OnActivateInPlace() is an undocumented function
   return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
}

CWnd::OnMouseHover

A estrutura chama essa função membro quando o cursor passa o mouse sobre a área do cliente da janela pelo período de tempo especificado em uma chamada anterior para TrackMouseEvent.

afx_msg void OnMouseHover(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam quais teclas modificadoras são pressionadas. Por exemplo, o sinalizador MK_CONTROL indica que a tecla CTRL está pressionada.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da área do cliente.

Comentários

Esse método recebe a notificação WM_MOUSEHOVER, que é descrita no SDK do Windows.

O parâmetro nFlags pode ser uma combinação de teclas modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.

Tecla modificadora Descrição
MK_CONTROL A tecla CTRL está pressionada.
MK_LBUTTON O botão esquerdo do mouse foi pressionado.
MK_MBUTTON O botão do meio do mouse é pressionado.
MK_RBUTTON O botão direito do mouse é pressionado.
MK_SHIFT A tecla SHIFT está pressionada.
MK_XBUTTON1 O botão do mouse XBUTTON1 do Microsoft IntelliMouse é pressionado.
MK_XBUTTON2 O botão do mouse XBUTTON2 do Microsoft IntelliMouse é pressionado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMouseHWheel

A estrutura chama esse membro quando a roda de rolagem horizontal do mouse é inclinada ou girada.

afx_msg void OnMouseHWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Parâmetros

nFlags
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam quais teclas modificadoras são pressionadas. Por exemplo, o sinalizador MK_CONTROL indica que a tecla CTRL está pressionada. Para obter uma lista de sinalizadores, consulte o subtítulo "Parâmetros de Mensagem" em Sobre a entrada sobre o mouse.

zDelta
[in] Indica a distância em que a roda é girada, expressa em múltiplos ou divisões de WHEEL_DELTA, que é 120. Um valor positivo indica que a roda foi girada para a direita; um valor negativo indica que a roda foi girada para a esquerda.

pt
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da área do cliente.

Comentários

Esse método recebe a notificação WM_MOUSEHWHEEL, que é descrita no SDK do Windows. Essa mensagem é enviada para a janela que tem o foco quando a roda de rolagem horizontal do mouse é inclinada ou girada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMouseLeave

A estrutura chama essa função membro quando o cursor deixa a área não cliente da janela especificada em uma chamada anterior para TrackMouseEvent.

afx_msg void OnMouseLeave();

Comentários

Esse método recebe a notificação WM_MOUSELEAVE, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMouseMove

A estrutura chama essa função membro quando o cursor do mouse se move.

afx_msg void OnMouseMove(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Se o mouse não for capturado, a mensagem WM_MOUSEMOVE será recebida pelo objeto CWnd abaixo do cursor do mouse; caso contrário, a mensagem será enviada para a janela que capturou o mouse.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMouseWheel

A estrutura chama essa função membro conforme um usuário gira a roda do mouse e encontra o próximo entalhe da roda.

afx_msg BOOL OnMouseWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

zDelta
Indica a distância girada. O valor zDelta é expresso em múltiplos ou divisões de WHEEL_DELTA, que é 120. Um valor menor que zero indica a rotação para trás (em direção ao usuário), enquanto um valor maior que zero indica a rotação para frente (longe do usuário). O usuário pode reverter essa resposta alterando a configuração da roda no software do mouse. Para obter mais informações sobre esse parâmetro, consulte a seção Comentários.

pt
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Valor de retorno

Diferente de zero se a rolagem da roda do mouse estiver habilitada; caso contrário, 0.

Comentários

A menos que substituído, OnMouseWheel chama o padrão de WM_MOUSEWHEEL. O Windows roteia automaticamente a mensagem para a janela de controle ou filho que tem o foco. A função DefWindowProc do Win32 propaga a mensagem da cadeia pai para a janela que a processa.

O parâmetro zDelta é um múltiplo de WHEEL_DELTA, que é definido como 120. Esse valor é o limite para uma ação a ser executada e uma dessas ações (por exemplo, rolagem para frente em um entalhe) deve ocorrer para cada delta.

WHEEL_DELTA foi definido como 120 para permitir rodas de resolução mais fina, como uma roda de rotação livre sem entalhes. Uma roda de resolução mais fina envia mais mensagens por rotação, mas cada mensagem tem um valor delta menor. Para usar tal roda, adicione os valores de entrada zDelta até que WHEEL_DELTA seja atingido (para que você obtenha a mesma resposta para uma determinada rotação delta), ou role linhas parciais em resposta às mensagens mais frequentes. Você também pode escolher uma granularidade de rolagem e acumular deltas até WHEEL_DELTA ser alcançado.

Substitua essa função membro para fornecer seu próprio comportamento de rolagem da roda do mouse.

Observação

OnMouseWheel manipula mensagens para Windows NT 4.0 e versões posteriores. Para tratamento de mensagens do Windows 95/98 ou Windows NT 3.51, use OnRegisteredMouseWheel.

CWnd::OnMove

A estrutura chama essa função membro depois que o objeto CWnd é movido.

afx_msg void OnMove(
    int x,
    int y);

Parâmetros

x
Especifica o novo local de coordenada x do canto superior esquerdo da área do cliente. Esse novo local é dado em coordenadas de tela para janelas sobrepostas e pop-up, e coordenadas pai-cliente para janelas filho.

y
Especifica o novo local de coordenada y do canto superior esquerdo da área do cliente. Esse novo local é dado em coordenadas de tela para janelas sobrepostas e pop-up, e coordenadas pai-cliente para janelas filho.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnMoving

A estrutura chama essa função membro enquanto um usuário está movendo um objeto CWnd.

afx_msg void OnMoving(
    UINT nSide,
    LPRECT lpRect);

Parâmetros

nSide
A borda da janela a ser movida.

lpRect
Endereço da CRect ouestruturaRECT do endereço que conterá as coordenadas do item.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcActivate

A estrutura chama essa função membro quando a área não cliente precisa ser alterada para indicar um estado ativo ou inativo.

afx_msg BOOL OnNcActivate(BOOL bActive);

Parâmetros

bActive
Especifica quando uma barra de legenda ou ícone precisa ser alterado para indicar um estado ativo ou inativo. O parâmetro bActive será TRUE se uma legenda ou ícone ativo deve ser desenhado. É FALSE para uma legenda ou ícone inativo.

Valor de retorno

Diferente de zero se o Windows deve continuar com o processamento padrão; 0 para impedir que a barra de legenda ou o ícone sejam desativados.

Comentários

A implementação padrão desenha a barra de título e o texto da barra de título em suas cores ativas se bActive for TRUE, e em suas cores inativas, se bActive for FALSE.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcCalcSize

A estrutura chama essa função membro quando o tamanho e a posição da área do cliente precisam ser calculados.

afx_msg void OnNcCalcSize(
    BOOL bCalcValidRects,
    NCCALCSIZE_PARAMS* lpncsp);

Parâmetros

bCalcValidRects
Especifica se o aplicativo deve especificar qual parte da área do cliente contém informações válidas. O Windows copiará as informações válidas para a área especificada dentro da nova área do cliente. Se esse parâmetro for TRUE, o aplicativo deverá especificar qual parte da área do cliente é válida.

lpncsp
Aponta para uma estrutura de dados NCCALCSIZE_PARAMS que contém informações que um aplicativo pode usar para calcular o novo tamanho e a posição do retângulo CWnd (incluindo área do cliente, bordas, legenda, barras de rolagem e assim por diante).

Comentários

Ao processar essa mensagem, um aplicativo pode controlar o conteúdo da área de cliente da janela quando o tamanho ou a posição da janela é alterado.

Independentemente do valor de bCalcValidRects, o primeiro retângulo na matriz especificada pelo membro da estrutura rgrc da estrutura NCCALCSIZE_PARAMS contém as coordenadas da janela. Para uma janela filho, as coordenadas são relativas à área do cliente da janela pai. Para janelas de nível superior, as coordenadas são coordenadas de tela. Um aplicativo deve modificar o retângulo rgrc[0] para refletir o tamanho e a posição da área do cliente.

Os retângulos rgrc[1] e rgrc[2] são válidos somente se bCalcValidRects for TRUE. Nesse caso, o retângulo rgrc[1] contém as coordenadas da janela antes de ser movido ou redimensionado. O retângulo rgrc[2] contém as coordenadas da área de cliente da janela antes da janela ser movida. Todas as coordenadas são relativas à janela ou tela pai.

A implementação padrão calcula o tamanho da área do cliente com base nas características da janela (presença de barras de rolagem, menu e assim por diante) e coloca o resultado em lpncsp.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcCreate

A estrutura chama essa função membro antes da mensagem WM_CREATE quando o objeto CWnd é criado pela primeira vez.

afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);

Parâmetros

lpCreateStruct
Aponta para a estrutura de dados CREATESTRUCT para CWnd.

Valor de retorno

Diferente de zero se a área não cliente for criada. Será 0 se ocorrer um erro; a função Create retornará failure nesse caso.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcDestroy

Chamada pela estrutura quando a área não cliente está sendo destruída e é a última função membro chamada quando a janela do Windows é destruída.

afx_msg void OnNcDestroy();

Comentários

A implementação padrão executa alguma limpeza e chama a função membro virtual PostNcDestroy.

Substitua PostNcDestroy se você quiser executar sua própria limpeza, como uma operação delete this. Se você substituir OnNcDestroy, deverá chamar OnNcDestroy em sua classe base para garantir que qualquer memória alocada internamente para a janela seja liberada.

CWnd::OnNcHitTest

A estrutura chama essa função membro para o objeto CWnd que contém o cursor (ou o objeto CWnd que usou a função membro SetCapture para capturar a entrada do mouse) sempre que o mouse é movido.

afx_msg LRESULT OnNcHitTest(CPoint point);

Parâmetros

point
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre coordenadas de tela.

Valor de retorno

Um dos valores enumerados de teste de clique do mouse. Consulte WM_NCHITTEST para obter uma lista de valores.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcLButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes no botão esquerdo do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.

afx_msg void OnNcLButtonDblClk(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor. Consulte WM_NCHITTEST para obter uma lista de valores.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Se apropriado, a mensagem WM_SYSCOMMAND é enviada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcLButtonDown

A estrutura chama essa função membro quando o usuário clica no botão esquerdo do mouse enquanto o cursor está dentro de uma área não cliente do objeto CWnd.

afx_msg void OnNcLButtonDown(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor. Consulte WM_NCHITTEST para obter uma lista de valores.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Se apropriado, WM_SYSCOMMAND é enviado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcLButtonUp

A estrutura chama essa função membro quando o usuário libera o botão esquerdo do mouse enquanto o cursor está dentro de uma área não cliente.

afx_msg void OnNcLButtonUp(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor. Consulte WM_NCHITTEST para obter uma lista de valores.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Se apropriado, WM_SYSCOMMAND é enviado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcMButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes no botão do meio do mouse enquanto o cursor está dentro de uma área não cliente.

afx_msg void OnNcMButtonDblClk(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcMButtonDown

A estrutura chama essa função membro quando o usuário clica no botão do meio do mouse enquanto o cursor está dentro de uma área não cliente.

afx_msg void OnNcMButtonDown(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcMButtonUp

A estrutura chama essa função membro quando o usuário libera o botão do meio do mouse enquanto o cursor está dentro de uma área não cliente.

afx_msg void OnNcMButtonUp(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcMouseHover

A estrutura chama essa função membro quando o cursor passa o mouse sobre a área não cliente da janela pelo período de tempo especificado em uma chamada anterior para TrackMouseEvent.

afx_msg void OnNcMouseHover(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
[in] O valor do teste de clique retornado pela função CWnd::DefWindowProc como resultado do processamento da mensagem WM_NCHITTEST.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da tela.

Comentários

Esse método recebe a notificação WM_NCMOUSEHOVER, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcMouseLeave

A estrutura chama essa função membro quando o cursor deixa a área não cliente da janela especificada em uma chamada anterior para TrackMouseEvent.

afx_msg void OnNcMouseLeave();

Comentários

Esse método recebe a notificação WM_NCMOUSELEAVE, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcMouseMove

A estrutura chama essa função membro quando o cursor é movido dentro de uma área não cliente.

afx_msg void OnNcMouseMove(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Se apropriado, a mensagem WM_SYSCOMMAND é enviada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcPaint

A estrutura chama essa função membro quando a área não cliente precisa ser pintada.

afx_msg void OnNcPaint();

Comentários

A implementação padrão pinta o quadro da janela.

Um aplicativo pode substituir essa chamada e pintar seu próprio quadro de janela personalizado. A região de recorte é sempre retangular, mesmo que a forma do quadro seja alterada.

CWnd::OnNcRButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes no botão direito do mouse enquanto o cursor está dentro de uma área não cliente de CWnd.

afx_msg void OnNcRButtonDblClk(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcRButtonDown

A estrutura chama essa função membro quando o usuário clica no botão direito do mouse enquanto o cursor está dentro de uma área não cliente.

afx_msg void OnNcRButtonDown(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcRButtonUp

A estrutura chama essa função membro quando o usuário libera o botão direito do mouse enquanto o cursor está dentro de uma área não cliente.

afx_msg void OnNcRButtonUp(
    UINT nHitTest,
    CPoint point);

Parâmetros

nHitTest
Especifica o código de teste de clique. Um teste de clique é um teste que determina o local do cursor.

point
Especifica um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da tela.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcRenderingChanged

A estrutura chama esse membro quando a política de renderização para a área não cliente for alterada.

afx_msg void OnNcRenderingChanged(BOOL bIsRendering);

Parâmetros

bIsRendering
[in] TRUE se a renderização do DWM (Gerenciador de Janelas da Área de Trabalho) estiver habilitada para a área não cliente da janela; FALSE se a renderização estiver desabilitada.

Comentários

Esse método recebe a notificação WM_DWMNCRENDERINGCHANGED, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcXButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes em XBUTTON1 ou XBUTTON2 enquanto o cursor está na área não cliente de uma janela.

void OnNcXButtonDblClk(
    short nHitTest,
    UINT nButton,
    CPoint point);

Parâmetros

nHitTest
[in] O valor do teste de clique retornado pela função CWnd::DefWindowProc como resultado do processamento da mensagem WM_NCHITTEST.

nButton
[in] Um valor de XBUTTON1 se o primeiro botão Microsoft Intellimouse X for clicado duas vezes ou XBUTTON2 se o segundo botão X for clicado duas vezes.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da área do cliente.

Comentários

Esse método recebe a notificação WM_XBUTTONDBLCLK, que é descrita no SDK do Windows. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcXButtonDown

A estrutura chama essa função membro quando o usuário clica no XBUTTON1 ou XBUTTON2 do mouse enquanto o cursor está na área não cliente de uma janela.

afx_msg void OnNcXButtonDown(
    short nHitTest,
    UINT nButton,
    CPoint point);

Parâmetros

nHitTest
[in] O valor do teste de clique retornado pela função CWnd::DefWindowProc como resultado do processamento da mensagem WM_NCHITTEST.

nButton
[in] Um valor de XBUTTON1 se o primeiro botão X do mouse estiver pressionado ou XBUTTON2 se o segundo botão X estiver pressionado.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da tela.

Comentários

Esse método recebe a notificação WM_NCXBUTTONDOWN, que é descrita no SDK do Windows. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNcXButtonUp

A estrutura chama essa função membro quando o usuário libera XBUTTON1 ou XBUTTON2 do mouse enquanto o cursor está na área não cliente de uma janela.

afx_msg void OnNcXButtonUp(
    short nHitTest,
    UINT nButton,
    CPoint point);

Parâmetros

nHitTest
[in] O valor do teste de clique retornado pela função CWnd::DefWindowProc como resultado do processamento da mensagem WM_NCHITTEST.

nButton
[in] Um valor de XBUTTON1 se o primeiro botão X do mouse for liberado ou XBUTTON2 se o segundo botão X for liberado.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da tela.

Comentários

Esse método recebe a notificação WM_NCXBUTTONUP, que é descrita no SDK do Windows. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNextMenu

A estrutura chama essa função membro quando a tecla de seta para a direita ou esquerda é usada para alternar entre a barra de menus e o menu do sistema.

afx_msg void OnNextMenu(
    UINT nKey,
    LPMDINEXTMENU lpMdiNextMenu);

Parâmetros

nKey
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam quais teclas modificadoras são pressionadas. Por exemplo, o sinalizador MK_CONTROL indica que a tecla CTRL está pressionada. Para obter uma lista de sinalizadores, consulte o subtítulo "Parâmetros de Mensagem" em Sobre a entrada sobre o mouse.

lpMdiNextMenu
Um ponteiro para uma estrutura MDINEXTMENU que contém informações sobre o tipo de menu a ser ativado.

Comentários

Esse método recebe a notificação WM_UNINITMENUPOPUP, que é descrita no SDK do Windows. Em resposta a essa mensagem, seu aplicativo pode definir o membro hmenuNext da estrutura MDINEXTMENU para especificar o menu para o qual alternar e o membro hwndNext para especificar a janela para receber mensagens de notificação de menu.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnNotify

A estrutura chama essa função membro para informar a janela pai de um controle de que um evento ocorreu no controle ou que o controle requer algum tipo de informação.

virtual BOOL OnNotify(
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parâmetros

wParam
Identifica o controle que envia a mensagem se a mensagem for de um controle. Caso contrário, wParam será 0.

lParam
Ponteiro para uma estrutura de mensagem de notificação (NMHDR) que contém o código de notificação e informações adicionais. Para algumas mensagens de notificação, esse parâmetro aponta para uma estrutura maior que tem a estrutura NMHDR como seu primeiro membro.

pResult
Ponteiro para uma variável LRESULT na qual armazenar o código de resultado se a mensagem for manipulada.

Valor de retorno

Um aplicativo retornará um número diferente de zero se processar essa mensagem; caso contrário, retornará 0.

Comentários

OnNotify processa o mapa de mensagens para notificação de controle.

Substitua essa função membro em sua classe derivada para lidar com a mensagem WM_NOTIFY. Uma substituição não processará o mapa de mensagens, a menos que a classe base OnNotify seja chamada.

Para obter mais informações sobre a mensagem WM_NOTIFY, consulte a Nota Técnica 61 (TN061) e as mensagens ON_NOTIFY e WM_NOTIFY. Você também pode estar interessado nos tópicos relacionados descritos nos Tópicos de controle e no TN062, Reflexão de mensagens para controles do Windows.

CWnd::OnNotifyFormat

A estrutura chama essa função membro para determinar se a janela atual aceita estruturas ANSI ou Unicode na mensagem de notificação WM_NOTIFY.

afx_msg UINT OnNotifyFormat(
    CWnd* pWnd,
    UINT nCommand);

Parâmetros

pWnd
[in] Um ponteiro para um objeto CWnd que representa a janela que envia a mensagem WM_NOTIFY. Esse parâmetro é o ponteiro para um controle se o parâmetro nCommand for NF_QUERY, ou o ponteiro para a janela pai de um controle, se nCommand for NF_REQUERY.

nCommand
[in] Um valor de comando especializado na mensagem WM_NOTIFY. Os valores possíveis são:

  • NF_QUERY - A mensagem é uma consulta para determinar se as estruturas ANSI ou Unicode devem ser usadas em mensagens WM_NOTIFY. Essa mensagem é enviada de um controle para sua janela pai durante a criação de um controle e em resposta à forma NF_REQUERY dessa mensagem.
  • NF_REQUERY - A mensagem é uma solicitação para que um controle envie a forma NF_QUERY dessa mensagem para sua janela pai. Essa solicitação é enviada da janela pai e solicita o controle para repetir a consulta ao pai sobre o tipo de estrutura a ser usada nas mensagens WM_NOTIFY. Se o parâmetro nCommand for NF_REQUERY, o valor retornado será o resultado da operação de repetir consulta.

Valor de retorno

Valor retornado Significado
NFR_ANSI As estruturas ANSI devem ser usadas em mensagens WM_NOTIFY enviadas pelo controle.
NFR_UNICODE As estruturas Unicode devem ser usadas em mensagens WM_NOTIFY enviadas pelo controle.
0 Ocorreu um erro.

Comentários

Esse método recebe a notificação WM_NOTIFYFORMAT, que é descrita no SDK do Windows. As mensagens WM_NOTIFY são enviadas de um controle comum para a janela pai e da janela pai para o controle comum.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnPaint

A estrutura chama essa função membro quando o Windows ou um aplicativo faz uma solicitação para repintar uma parte da janela de um aplicativo.

afx_msg void OnPaint();

Comentários

A mensagem WM_PAINT é enviada quando a função membro UpdateWindow ou RedrawWindow é chamada.

Uma janela pode receber mensagens de pintura internas como resultado da chamada da função membro RedrawWindow com o conjunto de sinalizadores RDW_INTERNALPAINT. Nesse caso, a janela pode não ter uma região de atualização. Um aplicativo deve chamar a função membro GetUpdateRect para determinar se a janela tem uma região de atualização. Se GetUpdateRect retornar 0, o aplicativo não deve chamar as funções membro BeginPaint e EndPaint.

É responsabilidade do aplicativo verificar se há qualquer repositório interno ou atualização necessária examinando suas estruturas de dados internos para cada mensagem WM_PAINT porque uma mensagem WM_PAINT pode ter sido causada por uma área inválida e uma chamada para a função membro RedrawWindow com o conjunto de sinalizadores RDW_INTERNALPAINT.

Uma mensagem interna WM_PAINT é enviada apenas uma vez pelo Windows. Depois que uma mensagem interna WM_PAINT for enviada para uma janela pela função membro UpdateWindow, nenhuma mensagem adicional WM_PAINT será enviada ou postada até que a janela seja invalidada ou até que a função membro RedrawWindow seja chamada novamente com o sinalizador RDW_INTERNALPAINT definido.

Para obter informações sobre como renderizar uma imagem em aplicativos de documento/exibição, consulte CView::OnDraw.

Para obter mais informações sobre como usar WM_Paint, consulte os seguintes tópicos no SDK do Windows:

CWnd::OnPaintClipboard

A função membro OnPaintClipboard do proprietário de uma área de transferência é chamada por um visualizador da área de transferência quando o proprietário da área de transferência coloca dados na área de transferência no formato CF_OWNERDISPLAY e a área de cliente do visualizador da área de transferência precisa ser repintada.

afx_msg void OnPaintClipboard(
    CWnd* pClipAppWnd,
    HGLOBAL hPaintStruct);

Parâmetros

pClipAppWnd
Especifica um ponteiro para a janela da área de transferência do aplicativo. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

hPaintStruct
Identifica uma estrutura de dados PAINTSTRUCT que define qual parte da área do cliente pintar.

Comentários

Para determinar se toda a área do cliente ou apenas uma parte dela precisa ser repintada, o proprietário da área de transferência deve comparar as dimensões da área de desenho fornecidas no membro rcpaint da estrutura PAINTSTRUCT com as dimensões fornecidas na chamada de função membro OnSizeClipboard mais recente.

OnPaintClipboard deve usar a função GlobalLock do Windows para bloquear a memória que contém a estrutura de dados PAINTSTRUCT e desbloquear essa memória com a função GlobalUnlock do Windows antes de sair.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnPaletteChanged

A estrutura chama essa função membro para todas as janelas de nível superior depois que a janela com foco de entrada percebeu sua paleta lógica, alterando assim a paleta do sistema.

afx_msg void OnPaletteChanged(CWnd* pFocusWnd);

Parâmetros

pFocusWnd
Especifica um ponteiro para a janela que fez com que a paleta do sistema mudasse. O ponteiro pode ser temporário e não deve ser armazenado.

Comentários

Essa chamada permite uma janela sem o foco de entrada que usa uma paleta de cores para realizar suas paletas lógicas e atualizar sua área de cliente.

A função membro OnPaletteChanged é chamada para todas as janelas de nível superior e sobrepostas, incluindo aquela que alterou a paleta do sistema e fez com que a mensagem WM_PALETTECHANGED fosse enviada. Se qualquer janela filho usar uma paleta de cores, essa mensagem deverá ser passada para ela.

Para evitar um loop infinito, a janela não deve realizar sua paleta, a menos que determine que pFocusWnd não contém um ponteiro para si mesma.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnPaletteIsChanging

A estrutura chama essa função membro para informar aos aplicativos que um aplicativo vai realizar sua paleta lógica.

afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);

Parâmetros

pRealizeWnd
Especifica a janela que está prestes a realizar sua paleta lógica.

Comentários

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnParentNotify

A função membro OnParentNotify de um pai é chamada pela estrutura quando sua janela filho é criada ou destruída, ou quando o usuário clica em um botão do mouse enquanto o cursor está sobre a janela filho.

afx_msg void OnParentNotify(
    UINT message,
    LPARAM lParam);

Parâmetros

message
Especifica o evento para o qual o pai está sendo notificado e o identificador da janela filho. O evento é a palavra de baixa ordem de message. Se o evento for WM_CREATE ou WM_DESTROY, a palavra de alta ordem message será o identificador da janela filho; caso contrário, a palavra de alta ordem será indefinida. O evento (palavra de baixa ordem de message) pode ser qualquer um desses valores:

  • WM_CREATE A janela filho está sendo criada.

  • WM_DESTROY A janela filho está sendo destruída.

  • WM_LBUTTONDOWN O usuário colocou o cursor do mouse sobre a janela filho e clicou no botão esquerdo do mouse.

  • WM_MBUTTONDOWN O usuário colocou o cursor do mouse sobre a janela filho e clicou no botão do meio do mouse.

  • WM_RBUTTONDOWN O usuário colocou o cursor do mouse sobre a janela filho e clicou no botão direito do mouse.

lParam
Se o evento (palavra de baixa ordem) de message for WM_CREATE ou WM_DESTROY, lParam especifica o identificador de janela da janela filho; caso contrário, lParam conterá as coordenadas x e y do cursor. A coordenada x está na palavra de baixa ordem e a coordenada y está na palavra de alta ordem.

Comentários

Quando a janela filho está sendo criada, o sistema chama OnParentNotify antes da função membro Create que cria a janela retornar. Quando a janela filho está sendo destruída, o sistema chama OnParentNotify antes que qualquer processamento ocorra para destruir a janela.

OnParentNotify é chamado para todas as janelas ancestrais da janela filho, incluindo a janela de nível superior.

Todas as janelas filho, exceto aquelas que têm o estilo WS_EX_NOPARENTNOTIFY, enviam essa mensagem para suas janelas pai. Por padrão, janelas filho em uma caixa de diálogo têm o estilo WS_EX_NOPARENTNOTIFY, a menos que a janela filho tenha sido criada sem esse estilo chamando a função membro CreateEx.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnPowerBroadcast

A estrutura chama essa função membro quando ocorre um evento de gerenciamento de energia.

afx_msg UINT OnPowerBroadcast(
    UINT nPowerEvent,
    UINT nEventData);

Parâmetros

nPowerEvent
[in] O evento de gerenciamento de energia.

nEventData
[in] Dados específicos do evento.

Valor de retorno

Se o evento for uma solicitação, retorne TRUE para conceder a solicitação ou BROADCAST_QUERY_DENY para negar a solicitação.

Comentários

Esse método recebe a mensagem WM_POWERBROADCAST, que é descrita no SDK do Windows.

O parâmetro nPowerEvent especifica eventos como: a energia da bateria está baixa, o status de energia foi alterado, a permissão para suspender a operação foi solicitada ou negada, uma operação foi retomada automaticamente após um evento, o sistema está suspendendo a operação ou uma operação foi retomada após a suspensão. Normalmente, o parâmetro nEventData não é usado. Para obter mais informações, consulte os parâmetros wParam e lParam da mensagem WM_POWERBROADCAST.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnQueryDragIcon

A estrutura chama essa função membro por uma janela minimizada (em ícone) que não tem um ícone definido para sua classe.

afx_msg HCURSOR OnQueryDragIcon();

Valor de retorno

Um valor de palavra dupla que contém um cursor ou identificador de ícone na palavra de baixa ordem. O cursor ou ícone deve ser compatível com a resolução do driver de exibição. Se o aplicativo retornar NULL, o sistema exibirá o cursor padrão. O valor de retorno padrão é NULL.

Comentários

O sistema faz essa chamada para obter o cursor a ser exibido enquanto o usuário arrasta a janela minimizada. Se um aplicativo retornar o identificador de um ícone ou cursor, o sistema o converterá em preto e branco. Se um aplicativo retornar um identificador, o identificador deverá identificar um cursor monocromático ou um ícone compatível com a resolução do driver de exibição. O aplicativo pode chamar as funções membro CWinApp::LoadCursor ou CWinApp::LoadIcon para carregar um cursor ou ícone dos recursos em seu arquivo executável e obter esse identificador.

CWnd::OnQueryEndSession

A estrutura chama essa função membro quando o usuário opta por encerrar a sessão do Windows ou quando um aplicativo chama a função ExitWindows do Windows.

afx_msg BOOL OnQueryEndSession();

Valor de retorno

Diferente de zero se um aplicativo puder ser convenientemente desligado; caso contrário, 0.

Comentários

Se qualquer aplicativo retornar 0, a sessão do Windows não está encerrada. O Windows para de chamar OnQueryEndSession assim que um aplicativo retorna 0 e envia a mensagem WM_ENDSESSION com um valor de parâmetro de FALSE para qualquer aplicativo que já tenha retornado um valor diferente de zero.

CWnd::OnQueryNewPalette

A estrutura chama essa função membro quando o objeto CWnd está prestes a receber o foco de entrada, dando ao CWnd a oportunidade de realizar sua paleta lógica quando ele recebe o foco.

afx_msg BOOL OnQueryNewPalette();

Valor de retorno

Diferente de zero se CWnd executar sua paleta lógica; caso contrário, 0.

CWnd::OnQueryOpen

A estrutura chama essa função membro quando o objeto CWnd é minimizado e o usuário solicita que CWnd seja restaurado para seu tamanho e posição preminimizados.

afx_msg BOOL OnQueryOpen();

Valor de retorno

Diferente de zero se o ícone puder ser aberto ou 0 para impedir que o ícone seja aberto.

Comentários

Enquanto estiver em OnQueryOpen, CWnd não deve executar nenhuma ação que cause uma ativação ou alteração de foco (por exemplo, criar uma caixa de diálogo).

CWnd::OnQueryUIState

Chamado para recuperar o estado da interface do usuário para uma janela.

afx_msg UINT OnQueryUIState();

Valor de retorno

O valor retornado será NULL se os indicadores de foco e os aceleradores de teclado estiverem visíveis. Caso contrário, o valor retornado pode ser um ou mais dos seguintes valores:

  • UISF_HIDEFOCUS Os indicadores de foco estão ocultos.

  • UISF_HIDEACCEL Os aceleradores de teclado estão ocultos.

  • UISF_ACTIVE Windows XP: um controle deve ser desenhado no estilo usado para controles ativos.

Comentários

Essa função de membro emula a funcionalidade da mensagem WM_QUERYUISTATE, conforme descrito no SDK do Windows.

CWnd::OnRawInput

A estrutura chama essa função membro quando a janela atual obtém entrada bruta.

afx_msg void OnRawInput(
    UINT nInputCode,
    HRAWINPUT hRawInput);

Parâmetros

nInputCode
[in] Código de entrada que indica se a entrada ocorreu enquanto o aplicativo estava em primeiro plano ou não. Em ambos os casos, o aplicativo deve chamar CWnd::DefWindowProc para que o sistema possa executar a limpeza. Esse parâmetro pode usar um dos valores a seguir:

  • RIM_INPUT - A entrada ocorreu enquanto o aplicativo estava em primeiro plano.
  • RIM_INPUTSINK - A entrada ocorreu enquanto o aplicativo não estava em primeiro plano.

hRawInput
[in] Manipule para uma estrutura RAWINPUT que contém a entrada bruta do dispositivo.

Comentários

Esse método recebe a notificação WM_INPUT, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnRButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes no botão direito do mouse.

afx_msg void OnRButtonDblClk(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Somente janelas que têm o estilo CS_DBLCLKS WNDCLASS podem receber chamadas OnRButtonDblClk. Esse é o padrão para janelas na biblioteca Microsoft Foundation Class. O Windows chama OnRButtonDblClk quando o usuário pressiona, libera e pressiona o botão direito do mouse novamente dentro do limite de tempo de clique duplo do sistema. Clicar duas vezes no botão direito do mouse gera quatro eventos: mensagens WM_RBUTTONDOWN e WM_RBUTTONUP, a chamada OnRButtonDblClk e outra mensagem WM_RBUTTONUP quando o botão é liberado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnRButtonDown

A estrutura chama essa função membro quando o usuário clica no botão direito do mouse.

afx_msg void OnRButtonDown(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_RBUTTON Defina se o botão direito do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnRButtonUp

A estrutura chama essa função membro quando o usuário libera o botão direito do mouse.

afx_msg void OnRButtonUp(
    UINT nFlags,
    CPoint point);

Parâmetros

nFlags
Indica se várias teclas virtuais estão pressionadas. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • MK_CONTROL Defina se a tecla CTRL está pressionada.

  • MK_LBUTTON Defina se o botão esquerdo do mouse está pressionado.

  • MK_MBUTTON Defina se o botão do meio do mouse está pressionado.

  • MK_SHIFT Defina se a tecla SHIFT está pressionada.

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela.

Comentários

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnRegisteredMouseWheel

A estrutura chama essa função membro conforme um usuário gira a roda do mouse e encontra o próximo entalhe da roda.

afx_msg LRESULT OnRegisteredMouseWheel(
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

wParam
A posição horizontal do ponteiro.

lParam
A posição vertical do ponteiro.

Valor de retorno

Insignificante neste momento. Sempre zero.

Comentários

A menos que substituído, OnRegisteredMouseWheel roteia a mensagem para a janela apropriada (a janela pai com foco) e chama o manipulador WM_MOUSEWHEEL para essa janela.

Substitua essa função membro para fornecer seu próprio roteamento de mensagens ou para alterar o comportamento de rolagem da roda do mouse.

Observação

OnRegisteredMouseWheel manipula mensagens para Windows NT 95/98 e Windows NT 3.51. Para tratamento de mensagens do Windows 4.0 NT, use OnMouseWheel.

CWnd::OnRenderAllFormats

A função membro OnRenderAllFormats do proprietário da área de transferência é chamada pela estrutura quando o aplicativo proprietário está sendo destruído.

afx_msg void OnRenderAllFormats();

Comentários

O proprietário da área de transferência deve renderizar os dados em todos os formatos que ele é capaz de gerar e passar um identificador de dados para cada formato para a área de transferência chamando a função SetClipboardData do Windows. Isso garante que a área de transferência contenha dados válidos, embora o aplicativo que renderiza os dados seja destruído. O aplicativo deve chamar a função membro OpenClipboard antes de chamar a função SetClipboardData do Windows e chamar a função CloseClipboard do Windows posteriormente.

CWnd::OnRenderFormat

A função membro do proprietário da área de transferência OnRenderFormat é chamada pela estrutura quando um formato específico com renderização atrasada precisa ser renderizado.

afx_msg void OnRenderFormat(UINT nFormat);

Parâmetros

nFormat
Indica o formato da área de transferência.

Comentários

O receptor deve renderizar os dados nesse formato e passá-los para a área de transferência chamando a função SetClipboardData do Windows.

Não chame a função membro OpenClipboard ou a função CloseClipboard do Windows de dentro de OnRenderFormat.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSessionChange

A estrutura chama essa função membro para notificar um aplicativo de uma alteração no estado da sessão.

afx_msg void OnSessionChange(
    UINT nSessionState,
    UINT nId);

Parâmetros

nSessionState
[in] Um código de status descreve a alteração do estado da sessão.

nId
[in] Um identificador de sessão.

Comentários

Esse método recebe a notificação WM_WTSSESSION_CHANGE, que é descrita no SDK do Windows.

O parâmetro nSessionState especifica que uma sessão está conectada ou desconectada do console ou de um terminal remoto, um usuário conectado ou desconectado, uma sessão está bloqueada ou desbloqueada ou uma sessão foi alterada para o status de controle remoto. Para obter mais informações, consulte o parâmetro wParam da mensagem WM_WTSSESSION_CHANGE.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSetCursor

A estrutura chama essa função membro se a entrada do mouse não for capturada e o mouse causar movimento de cursor dentro do objeto CWnd.

afx_msg BOOL OnSetCursor(
    CWnd* pWnd,
    UINT nHitTest,
    UINT message);

Parâmetros

pWnd
Especifica um ponteiro para a janela que contém o cursor. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

nHitTest
Especifica o código da área do teste de clique. O teste de clique determina a localização do cursor.

message
Especifica o número da mensagem do mouse.

Valor de retorno

Diferente de zero para interromper o processamento adicional ou 0 para continuar.

Comentários

A implementação padrão chama OnSetCursor da janela pai antes do processamento. Se a janela pai retornar TRUE, o processamento adicional será interrompido. Chamar a janela pai fornece ao pai controle de janela sobre a configuração do cursor em uma janela filho.

A implementação padrão define o cursor como uma seta se ele não estiver na área do cliente ou no cursor de classe registrada, se estiver.

Se nHitTest for HTERROR e message for uma mensagem de botão para baixo do mouse, a função membro MessageBeep será chamada.

O parâmetro de mensagem é 0 quando CWnd entra no modo de menu.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSetFocus

A estrutura chama essa função membro depois de obter o foco de entrada.

afx_msg void OnSetFocus(CWnd* pOldWnd);

Parâmetros

pOldWnd
Contém o objeto CWnd que perde o foco de entrada (pode ser NULL). O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Para exibir um cursor, CWnd deve chamar as funções de cursor apropriadas neste momento.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSettingChange

A estrutura chama OnSettingChange para todas as janelas de nível superior quando a função SystemParametersInfo Win32 altera uma configuração em todo o sistema.

afx_msg void OnSettingChange(
    UINT uFlags,
    LPCTSTR lpszSection);

Parâmetros

uFlags
Quando o sistema envia a mensagem como resultado de uma chamada SystemParametersInfo, esse parâmetro é um sinalizador que indica o parâmetro do sistema que foi alterado. Para ver uma lista de valores, confira SystemParametersInfo no SDK do Windows. Quando um aplicativo envia a mensagem, esse parâmetro deve ser 0.

lpszSection
Aponta para uma cadeia de caracteres que especifica o nome da seção que foi alterada. (A cadeia de caracteres não inclui os colchetes que incluem o nome da seção.)

Comentários

Um aplicativo deve enviar a mensagem para todas as janelas de nível superior quando fizer alterações nos parâmetros do sistema e o Windows enviará a mensagem se o usuário alterar as configurações por meio do Painel de Controle.

A mensagem ON_WM_SETTINGCHANGE é semelhante à mensagem ON_WM_WININICHANGE, com a seguinte diferença:

  • Use ON_WM_SETTINGCHANGE ao executar Windows NT 4.0 ou mais recente, ou no Windows 95/98.

  • Use ON_WININICHANGE ao executar Windows NT 3.51 ou mais antigo. Essa mensagem agora está obsoleto.

Você deve ter apenas uma dessas macros no seu mapa de mensagens. Para escrever um programa que funcione para o Windows 95/98 e Windows NT 4.0, escreva um manipulador para ON_WM_SETTINGCHANGE. Em Windows NT 3.51, seu manipulador será chamado por OnSettingChange e uFlags sempre será zero.

CWnd::OnShowWindow

A estrutura chama essa função membro quando o objeto CWnd está prestes a ser oculto ou mostrado.

afx_msg void OnShowWindow(
    BOOL bShow,
    UINT nStatus);

Parâmetros

bShow
Especifica se uma janela está sendo mostrada. É TRUE se a janela está sendo mostrada; é FALSE se a janela está sendo ocultada.

nStatus
Especifica o status da janela que está sendo mostrada. Será 0 se a mensagem for enviada devido a uma chamada de função membro ShowWindow; caso contrário, nStatus será um dos seguintes:

  • SW_PARENTCLOSING A janela pai está fechando (sendo tornada ícone) ou uma janela pop-up está sendo ocultada.

  • SW_PARENTOPENING A janela pai está sendo aberta (sendo exibida) ou uma janela pop-up está sendo mostrada.

Comentários

Uma janela é oculta ou mostrada quando a função membro ShowWindow é chamada, quando uma janela sobreposta é maximizada ou restaurada, ou quando uma janela sobreposta ou pop-up é fechada (tornada ícone) ou aberta (exibida na tela). Quando uma janela sobreposta é fechada, todas as janelas pop-up associadas a essa janela ficam ocultas.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSize

A estrutura chama essa função membro depois que a hora do sistema é alterada.

afx_msg void OnSize(
    UINT nType,
    int cx,
    int cy);

Parâmetros

nType
Especifica o tipo de redimensionamento solicitado. Esse parâmetro pode usar um dos valores a seguir:

  • SIZE_MAXIMIZED A janela foi maximizada.

  • SIZE_MINIMIZED A janela foi minimizada.

  • SIZE_RESTORED A janela foi redimensionada, mas SIZE_MINIMIZED nem SIZE_MAXIMIZED se aplica.

  • SIZE_MAXHIDE A mensagem é enviada para todas as janelas pop-up quando alguma outra janela é maximizada.

  • SIZE_MAXSHOW A mensagem é enviada para todas as janelas pop-up quando alguma outra janela foi restaurada para seu tamanho anterior.

cx
Especifica a nova largura da área de cliente.

cy
Especifica a nova altura da área de cliente.

Comentários

Se a função membro SetScrollPos ou MoveWindow for chamada para uma janela filho de OnSize, o parâmetro bRedraw de SetScrollPos ou MoveWindow deve ser diferente de zero para fazer com que CWnd seja repintada.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

Exemplo

// Resize the edit control contained in the view to
// fill the entire view when the view's window is
// resized. CMdiView is a CView derived class.
void CMdiView::OnSize(UINT nType, int cx, int cy)
{
   CView::OnSize(nType, cx, cy);
   // Resize edit to fill the whole view.
   // OnSize can be called before OnInitialUpdate
   // so make sure the edit control has been created.
   if (::IsWindow(m_Edit.GetSafeHwnd()))
   {
      m_Edit.MoveWindow(0, 0, cx, cy);
   }
}

CWnd::OnSizeClipboard

A função membro OnSizeClipboard do proprietário da área de transferência é chamada pelo visualizador da área de transferência quando a área de transferência contém dados com o atributo CF_OWNERDISPLAY e o tamanho da área de cliente da janela visualizador da área de transferência foi alterado.

afx_msg void OnSizeClipboard(
    CWnd* pClipAppWnd,
    HGLOBAL hRect);

Parâmetros

pClipAppWnd
Identifica a janela do aplicativo da área de transferência. O ponteiro pode ser temporário e não deve ser armazenado.

hRect
Identifica um objeto de memória global. O objeto de memória contém uma estrutura de dados RECT que especifica a área para o proprietário da área de transferência pintar.

Comentários

A função membro OnSizeClipboard é chamada com um retângulo nulo (0,0,0,0) como o novo tamanho quando o aplicativo da área de transferência estiver prestes a ser destruído ou minimizado. Isso permite que o proprietário da área de transferência libere seus recursos de exibição.

Dentro de OnSizeClipboard, um aplicativo deve usar a função GlobalLock do Windows para bloquear a memória que contém a estrutura de dados RECT. Faça com que o aplicativo desbloqueie essa memória com a função GlobalUnlock do Windows antes que ela produza ou retorne o controle.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSizing

A estrutura chama essa função membro para indicar que o usuário está redimensionando o retângulo.

afx_msg void OnSizing(
    UINT nSide,
    LPRECT lpRect);

Parâmetros

nSide
A borda da janela a ser movida.

lpRect
Endereço da CRect ouestruturaRECT do endereço que conterá as coordenadas do item.

Comentários

Ao processar essa mensagem, um aplicativo pode monitorar o tamanho e a posição do retângulo de arrastar e, se necessário, alterar seu tamanho ou posição.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

Exemplo

void CSplitChildFrm::OnSizing(UINT fwSide, LPRECT pRect)
{
   CMDIChildWnd::OnSizing(fwSide, pRect);

   // Resize the splitter window in the frame. m_wndSplitter is of 
   // type CSplitterWnd
   int nWidth = (pRect->right) - (pRect->left);
   m_wndSplitter.SetColumnInfo(0, nWidth / 2, 10);
   m_wndSplitter.SetColumnInfo(1, nWidth / 2, 10);
   m_wndSplitter.RecalcLayout();
}

CWnd::OnSpoolerStatus

A estrutura chama essa função membro do Gerenciador de Impressão sempre que um trabalho é adicionado ou removido da fila do Gerenciador de Impressão.

afx_msg void OnSpoolerStatus(
    UINT nStatus,
    UINT nJobs);

Parâmetros

nStatus
Especifica o sinalizador SP_JOBSTATUS.

nJobs
Especifica o número de trabalhos restantes na fila do Gerenciador de Impressão.

Comentários

Essa chamada é apenas informativa.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnStyleChanged

A estrutura chama essa função membro depois que a função SetWindowLong tiver alterado um ou mais estilos da janela.

afx_msg void OnStyleChanged(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Parâmetros

nStyleType
Especifica se os estilos estendidos ou não estendidos da janela foram alterados. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • GWL_EXSTYLE Os estilos estendidos da janela foram alterados.

  • GWL_STYLE Os estilos não estendidos da janela foram alterados.

lpStyleStruct
Aponta para uma estrutura STYLESTRUCT que contém os novos estilos da janela. Um aplicativo pode examinar os estilos, mas não pode alterá-los.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnStyleChanging

A estrutura chama essa função membro depois que a função SetWindowLong tiver alterado um ou mais estilos da janela.

afx_msg void OnStyleChanging(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Parâmetros

nStyleType
Especifica se os estilos estendidos ou não estendidos da janela foram alterados. Esse parâmetro pode ser uma combinação dos seguintes valores:

  • GWL_EXSTYLE Os estilos estendidos da janela foram alterados.

  • GWL_STYLE Os estilos não estendidos da janela foram alterados.

lpStyleStruct
Aponta para uma estrutura STYLESTRUCT que contém os novos estilos da janela. Um aplicativo pode examinar os estilos e alterá-los.

Comentários

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSysChar

A estrutura chama essa função membro se CWnd tiver o foco de entrada e as WM_SYSKEYUP mensagens e WM_SYSKEYDOWN as mensagens forem convertidas.

afx_msg void OnSysChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o código de tecla de caractere ASCII de uma tecla do menu Controle.

nRepCnt
Especifica a contagem de repetição, ou seja, o número de vezes que o pressionamento de tecla é repetido como resultado do usuário que mantém a tecla pressionada.

nFlags
O parâmetro nFlags pode ter estes valores:

Valor Significado
0-15 Especifica a contagem de repetição. O valor é o número de vezes que o pressionamento de tecla é repetido como resultado do usuário que mantém a tecla pressionada.
16-23 Especifica o código de verificação. O valor depende do OEM (fabricante de equipamento original)
24 Especifica se a tecla é uma tecla estendida, como as teclas ALT e CTRL à direita que aparecem em um teclado avançado de 101 ou 102 teclas. O valor será 1 se for uma tecla estendida; caso contrário, é 0.
25-28 Usado internamente pelo Windows.
29 Especifica o código de contexto. O valor será 1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, o valor será 0.
30 Especifica o estado da tecla anterior. O valor será 1 se a tecla estiver pressionada antes do envio da mensagem, ou 0 se a tecla não estiver pressionada.
31 Especifica o estado de transição. O valor será 1 se a tecla estiver sendo liberada, ou 0 se a tecla estiver sendo pressionada.

Comentários

Ele especifica o código de tecla virtual da tecla de menu Controle. (Para obter uma lista de códigos de tecla virtual padrão, consulte Winuser.h)

Quando o código de contexto é 0, WM_SYSCHAR pode passar a mensagem WM_SYSCHAR para a função TranslateAccelerator do Windows, que tratará como se fosse uma mensagem de tecla normal em vez de uma tecla de caractere do sistema. Isso permite que as teclas de aceleração sejam usadas com a janela ativa, mesmo que a janela ativa não tenha o foco de entrada.

Para teclados IBM aprimorados de 101 e 102 teclas, as teclas aprimoradas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nFlags.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSysColorChange

A estrutura chama essa função membro para todas as janelas de nível superior quando uma alteração é feita na configuração de cor do sistema.

afx_msg void OnSysColorChange();

Comentários

O Windows chama OnSysColorChange para qualquer janela afetada por uma alteração de cor do sistema.

Os aplicativos que têm pincéis que usam as cores existentes do sistema devem excluir esses pincéis e criá-los novamente com as novas cores do sistema.

CWnd::OnSysCommand

A estrutura chama essa função membro quando o usuário seleciona um comando no menu Controle ou quando o usuário seleciona o botão Maximizar ou Minimizar.

afx_msg void OnSysCommand(
    UINT nID,
    LPARAM lParam);

Parâmetros

nID
Especifica o tipo de comando do sistema solicitado. Esse parâmetro pode usar um dos valores a seguir:

  • SC_CLOSE Feche o objeto CWnd.

  • SC_HOTKEY Ative o objeto CWnd associado à tecla de acesso especificada pelo aplicativo. A palavra de baixa ordem lParam identifica a HWND da janela a ser ativada.

  • SC_HSCROLL Role horizontalmente.

  • SC_KEYMENU Recupere um menu por meio de um pressionamento de tecla.

  • SC_MAXIMIZE (ou SC_ZOOM) Maximize o objeto CWnd.

  • SC_MINIMIZE (ou SC_ICON) Minimize o objeto CWnd.

  • SC_MOUSEMENU Recupere um menu por meio de um clique do mouse.

  • SC_MOVE Mova o objeto CWnd.

  • SC_NEXTWINDOW Mova para a próxima janela.

  • SC_PREVWINDOW Mova para a janela anterior.

  • SC_RESTORE Restaure a janela para a posição e o tamanho normais.

  • SC_SCREENSAVE Execute o aplicativo de salvamento de tela especificado na seção [inicialização] do arquivo SYSTEM.INI.

  • SC_SIZE Dimensione o objeto CWnd.

  • SC_TASKLIST Execute ou ative o aplicativo Gerenciador de Tarefas do Windows.

  • SC_VSCROLL Role verticalmente.

lParam
Se um comando de menu Controle for escolhido com o mouse, lParam conterá as coordenadas do cursor. A palavra de baixa ordem contém a coordenada x e a palavra de alta ordem contém a coordenada y. Caso contrário, esse parâmetro não é usado.

  • SC_HOTKEY Ative a janela associada à tecla de acesso especificada pelo aplicativo. A palavra de baixa ordem lParam identifica a janela a ser ativada.

  • SC_SCREENSAVE Execute o aplicativo de salvamento de tela especificado na seção Área de Trabalho do Painel de Controle.

Comentários

Por padrão, OnSysCommand executa a solicitação de menu controle para as ações predefinidas especificadas na tabela anterior.

Nas mensagens WM_SYSCOMMAND, os quatro bits de baixa ordem do parâmetro nID são usados internamente pelo Windows. Quando um aplicativo testa o valor de nID, ele deve combinar o valor 0xFFF0 com o valor nID usando o operador bit a bit AND para obter o resultado correto.

Os itens de menu em um menu Controle podem ser modificados com as funções membro GetSystemMenu, AppendMenu, InsertMenue ModifyMenu. Os aplicativos que modificam o menu Controle devem processar as mensagens WM_SYSCOMMAND, e todas as mensagens WM_SYSCOMMAND não manipuladas pelo aplicativo devem ser passadas para OnSysCommand. Todos os valores de comando adicionados por um aplicativo devem ser processados pelo aplicativo e não podem ser passados para OnSysCommand.

Um aplicativo pode executar qualquer comando do sistema a qualquer momento passando uma mensagem WM_SYSCOMMAND para OnSysCommand.

Os pressionamentos de tecla de aceleração (atalhos) definidos para selecionar itens no menu Controle são convertidos em chamadas OnSysCommand; todos os outros pressionamentos de teclas aceleradores são convertidos em mensagens WM_COMMAND.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSysDeadChar

A estrutura chamará essa função membro se o objeto CWnd tiver o foco de entrada quando a função membro OnSysKeyUp ou OnSysKeyDown for chamada.

afx_msg void OnSysDeadChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o valor do caractere de uma tecla inativa.

nRepCnt
Especifica a contagem de repetição.

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Significado
0-7 Código de varredura (valor dependente de OEM). Baixo byte de palavra de alta ordem.
8 Teclas estendidas, como uma tecla de função ou uma tecla no teclado numérico (1 se for uma tecla estendida; caso contrário, 0).
9-10 Não usado.
11-12 Usado internamente pelo Windows.
13 Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, 0).
14 Estado de tecla anterior (1 se a tecla estiver pressionada antes da chamada, 0 se a tecla não estiver pressionada).
15 Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada).

Comentários

Especifica o valor de caractere de uma tecla inativa.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSysKeyDown

Se o objeto CWnd tiver o foco de entrada, a função membro OnSysKeyDown será chamada pela estrutura quando o usuário segurar a tecla ALT e pressionar outra tecla.

afx_msg void OnSysKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o código de tecla virtual da tecla que está sendo pressionada. Para obter uma lista de códigos de tecla virtual padrão, consulte Winuser.h

nRepCnt
Especifica a contagem de repetição.

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Significado
0-7 Código de varredura (valor dependente de OEM). Baixo byte de palavra de alta ordem.
8 Teclas estendidas, como uma tecla de função ou uma tecla no teclado numérico (1 se for uma tecla estendida; caso contrário, 0).
9-10 Não usado.
11-12 Usado internamente pelo Windows.
13 Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, 0).
14 Estado de tecla anterior (1 se a tecla estiver pressionada antes da mensagem ser enviada, 0 se a tecla não estiver pressionada).
15 Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada).

Para chamadas OnSysKeyDown, o bit de transição de chave (bit 15) é 0. O bit de código de contexto (bit 13) será 1 se a tecla ALT estiver pressionada enquanto a tecla for pressionada; será 0 se a mensagem for enviada para a janela ativa porque nenhuma janela tem o foco de entrada.

Comentários

Se nenhuma janela tiver o foco de entrada no momento, a função membro OnSysKeyDown da janela ativa será chamada. O objeto CWnd que recebe a mensagem pode distinguir entre esses dois contextos verificando o código de contexto em nFlags.

Quando o código de contexto é 0, a mensagem WM_SYSKEYDOWN recebida por OnSysKeyDown pode ser passada para a função TranslateAccelerator do Windows, que a tratará como se fosse uma mensagem de tecla normal em vez de uma tecla de caractere do sistema. Isso permite que as teclas de aceleração sejam usadas com a janela ativa, mesmo que a janela ativa não tenha o foco de entrada.

Devido à repetição automática, mais de uma chamada OnSysKeyDown pode ocorrer antes que a mensagem WM_SYSKEYUP seja recebida. O bit que indica o estado de tecla anterior (bit 14) pode ser usado para determinar se a chamada OnSysKeyDown é a primeira transição para baixo ou uma transição para baixo repetida.

Para teclados IBM avançados de 101 e 102 teclas, as teclas avançadas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN, e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nFlags.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnSysKeyUp

Se o objeto CWnd tiver o foco, a função membro OnSysKeyUp será chamada pela estrutura quando o usuário liberar uma tecla que foi pressionada enquanto a tecla ALT foi mantida pressionada.

afx_msg void OnSysKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
Especifica o código de tecla virtual da tecla que está sendo pressionada. Para obter uma lista de códigos de tecla virtual padrão, consulte Winuser.h

nRepCnt
Especifica a contagem de repetição.

nFlags
Especifica o código de varredura, o código de transição de tecla, o estado da tecla anterior e o código de contexto, conforme mostrado na lista a seguir:

Valor Significado
0-7 Código de varredura (valor dependente de OEM). Baixo byte de palavra de alta ordem.
8 Teclas estendidas, como uma tecla de função ou uma tecla no teclado numérico (1 se for uma tecla estendida; caso contrário, 0).
9-10 Não usado.
11-12 Usado internamente pelo Windows.
13 Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, 0).
14 Estado de tecla anterior (1 se a tecla estiver pressionada antes da mensagem ser enviada, 0 se a tecla não estiver pressionada).
15 Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada).

Para chamadas OnSysKeyUp, o bit de transição de chave (bit 15) é 1. O bit de código de contexto (bit 13) será 1 se a tecla ALT estiver pressionada enquanto a tecla for pressionada; será 0 se a mensagem for enviada para a janela ativa porque nenhuma janela tem o foco de entrada.

Comentários

Se nenhuma janela tiver o foco de entrada no momento, a função membro OnSysKeyUp da janela ativa será chamada. O objeto CWnd que recebe a chamada pode distinguir entre esses dois contextos verificando o código de contexto em nFlags.

Quando o código de contexto é 0, a mensagem WM_SYSKEYUP recebida por OnSysKeyUp pode ser passada para a função TranslateAccelerator do Windows, que a tratará como se fosse uma mensagem de tecla normal em vez de uma tecla de caractere do sistema. Isso permite que as teclas de aceleração (atalhos) sejam usadas com a janela ativa, mesmo que a janela ativa não tenha o foco de entrada.

Para teclados IBM aprimorados de 101 e 102 teclas, as teclas aprimoradas são a ALT direita e a CTRL direita na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e teclas de direção nos clusters à esquerda do teclado numérico; e as teclas barra (/) e ENTER no teclado numérico. Alguns outros teclados podem dar suporte ao bit de tecla estendida em nSinalizadores.

Para teclados aprimorados de 102 teclas fora do padrão americano, a tecla ALT direita é tratada como a combinação de teclas CTRL+ALT. O seguinte mostra a sequência de mensagens e chamadas que resultam quando o usuário pressiona e libera esta tecla:

Sequência Função Acessada Mensagem Passada
1. WM_KEYDOWN VK_CONTROL
2. WM_KEYDOWN VK_MENU
3. WM_KEYUP VK_CONTROL
4. WM_SYSKEYUP VK_MENU

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnTCard

A estrutura chama essa função membro quando o usuário clica em um botão autorizável.

afx_msg void OnTCard(
    UINT idAction,
    DWORD dwActionData);

Parâmetros

idAction
Indica a ação que o usuário tomou. Esse parâmetro pode ser um dos seguintes:

  • IDABORT O usuário clicou em um botão Anular autorizável.

  • IDCANCEL O usuário clicou em um botão Cancelar autorizável.

  • IDCLOSE O usuário fechou o cartão de treinamento.

  • IDHELP O usuário clicou em um botão de Ajuda do Windows autorizável.

  • IDIGNORE O usuário clicou em um botão Ignorar autorizável.

  • IDOK O usuário clicou em um botão OK autorizável.

  • IDNO O usuário clicou em um botão Não autorizável.

  • IDRETRY O usuário clicou em um botão Tentar novamente autorizável.

  • HELP_TCARD_DATA O usuário clicou em um botão autorizável. O parâmetro dwActionData contém um inteiro longo especificado pelo autor da ajuda.

  • HELP_TCARD_NEXT O usuário clicou em um botão Próximo autorizável.

  • HELP_TCARD_OTHER_CALLER Outro aplicativo solicitou cartões de treinamento.

  • IDYES O usuário clicou em um botão Sim autorizável.

dwActionData
Se idAction especificar HELP_TCARD_DATA, esse parâmetro será um inteiro longo especificado pelo autor da ajuda. Caso contrário, esse parâmetro será zero.

Comentários

Essa função é chamada somente quando um aplicativo inicia um cartão de treinamento com a Ajuda do Windows. Um aplicativo inicia um cartão de treinamento especificando o comando HELP_TCARD em uma chamada para a função WinHelp.

CWnd::OnTimeChange

A estrutura chama essa função membro depois que a hora do sistema é alterada.

afx_msg void OnTimeChange();

Comentários

Tenha qualquer aplicativo que altere a hora do sistema para enviar essa mensagem para todas as janelas de nível superior. Para enviar a mensagem WM_TIMECHANGE para todas as janelas de nível superior, um aplicativo pode usar a função SendMessage do Windows com seu parâmetro hwnd definido como HWND_BROADCAST.

CWnd::OnTimer

A estrutura chama essa função membro após cada intervalo especificado na função membro SetTimer usada para instalar um temporizador.

afx_msg void OnTimer(UINT_PTR nIDEvent);

Parâmetros

nIDEvent
Especifica o identificador do temporizador.

Comentários

A função DispatchMessage do Windows envia uma mensagem WM_TIMER quando nenhuma outra mensagem está na fila de mensagens do aplicativo.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

Exemplo

Veja o exemplo em CWnd::SetTimer.

CWnd::OnToolHitTest

A estrutura chama essa função membro para determinar se um ponto está no retângulo delimitador da ferramenta especificada.

virtual INT_PTR OnToolHitTest(
    CPoint point,
    TOOLINFO* pTI) const;

Parâmetros

point
Especifica a coordenada x e y do cursor. As coordenadas são sempre relativas ao canto superior esquerdo da janela

pTI
Um ponteiro para uma estrutura TOOLINFO. Os seguintes valores de estrutura são definidos por padrão:

  • hwnd = m_hWnd O identificador de uma janela

  • uId = (UINT)hWndChild O identificador de uma janela filho

  • uFlags |= TTF_IDISHWND O identificador de uma ferramenta

  • lpszText = LPSTR_TEXTCALLBACK Ponteiro para a cadeia de caracteres que será exibida na janela especificada

Valor de retorno

Se o controle de dica de ferramenta foi encontrado, o ID do controle de janela. Se o controle de dica de ferramenta não foi encontrado, -1.

Comentários

Se o ponto estiver no retângulo, ele recuperará informações sobre a ferramenta.

Se a área com a qual a dica de ferramenta está associada não for um botão, OnToolHitTest definirá os sinalizadores de estrutura como TTF_NOTBUTTON e TTF_CENTERTIP.

Substitua OnToolHitTest para fornecer informações diferentes do padrão fornecido.

Para obter mais informações sobre essa estrutura, consulte TOOLINFO no SDK do Windows.

CWnd::OnTouchInput

Processa entradas únicas do touch do Windows.

virtual BOOL OnTouchInput(
    CPoint pt,
    int nInputNumber,
    int nInputsCount,
    PTOUCHINPUT pInput);

Parâmetros

pt
Ponto em que a tela foi tocada (nas coordenadas do cliente).

nInputNumber
Número de entradas por toque.

nInputsCount
Número total de entradas por toque.

pInput
Ponteiro para a estrutura TOUCHINPUT.

Valor de retorno

TRUE se o aplicativo processar a entrada por toque do Windows; caso contrário, FALSE.

Comentários

CWnd::OnTouchInputs

Processa entradas por toque do Windows.

virtual BOOL OnTouchInputs(
    UINT nInputsCount,
    PTOUCHINPUT pInputs);

Parâmetros

nInputsCount
Número total de entradas por toque do Windows.

pInputs
Matriz de TOUCHINPUT.

Valor de retorno

TRUE se o aplicativo processar entradas de toque do Windows; caso contrário, FALSE.

Comentários

CWnd::OnUniChar

A estrutura chama essa função membro quando uma tecla é pressionada. Ou seja, a janela atual tem o foco do teclado e uma mensagem WM_KEYDOWN é convertida pela função TranslateMessage.

afx_msg void OnUniChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parâmetros

nChar
[in] Especifica o código de caractere da tecla pressionada.

nRepCnt
[in] Especifica a contagem de repetição para a mensagem atual. O valor é o número de vezes que o pressionamento de tecla é repetido automaticamente como resultado do usuário que mantém a tecla pressionada. Se o pressionamento de teclas for mantido por tempo suficiente, várias mensagens serão enviadas. No entanto, a contagem de repetições não é cumulativa.

nFlags
[in] Sinalizadores que especificam o código de verificação, a tecla estendida, o código de contexto, o estado de tecla anterior e o estado de transição, conforme mostrado na tabela a seguir:

Bits de sinalizador Descrição
0-7 Especifica o código de verificação. O valor depende do OEM (fabricante de equipamento original).
8 Especifica se a tecla é uma tecla estendida, como as teclas ALT e CTRL à direita que aparecem em um teclado avançado de 101 ou 102 teclas. O sinalizador será 1 se a tecla for uma tecla estendida; caso contrário, é 0.
9-12 Usado internamente pelo Windows.
13 Especifica o código de contexto. O valor será 1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada; caso contrário, o valor será 0.
14 Especifica o estado da tecla anterior. O sinalizador será 1 se a tecla estiver pressionada antes do envio da mensagem, ou 0 se a tecla não estiver pressionada.
15 Especifica o estado de transição. O sinalizador será 1 se a tecla estiver sendo liberada, ou 0 se a tecla estiver sendo pressionada.

Comentários

Esse método recebe a notificação WM_UNICHAR, que é descrita no SDK do Windows. A mensagem WM_UNICHAR foi projetada para enviar ou postar caracteres Unicode para janelas ANSI. É equivalente à mensagem WM_CHAR, mas usa a codificação UTF-32 (Unicode Transformation Format-32), enquanto a mensagem WM_CHAR usa UTF-16.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnUnInitMenuPopup

A estrutura chama essa função membro quando um menu suspenso ou submenu foi destruído.

afx_msg void OnUnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nFlags);

Parâmetros

pMenu
[in] Ponteiro para o objeto CMenu que representa o menu ou submenu.

nFlags
[in] O menu que foi destruído. Atualmente, ele só pode ser o menu da janela, MF_SYSMENU.

Comentários

Esse método recebe a notificação WM_UNINITMENUPOPUP, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnUpdateUIState

Chamado para alterar o estado da interface do usuário para a janela especificada e todas as janelas filho.

afx_msg void OnUpdateUIState(
    UINT nAction,
    UINT nUIElement);

Parâmetros

nAction
Especifica a ação a ser executada. Pode ser um dos seguintes valores:

  • UIS_CLEAR O elemento de estado da interface do usuário (especificado por nUIElement) deve estar oculto.

  • UIS_INITIALIZE O elemento de estado da interface do usuário (especificado por nUIElement) deve ser alterado com base no último evento de entrada. Para obter mais informações, consulte a seção Comentários de WM_UPDATEISTATE.

  • UIS_SET O elemento de estado da interface do usuário (especificado por nUIElement) deve estar visível.

nUIElement
Especifica quais elementos de estado da interface do usuário são afetados ou o estilo do controle. Pode ser um dos seguintes valores:

  • UISF_HIDEACCEL Aceleradores de teclado.

  • UISF_HIDEFOCUS Indicadores de foco.

  • UISF_ACTIVE Windows XP: um controle deve ser desenhado no estilo usado para controles ativos.

Comentários

Essa função de membro emula a funcionalidade da mensagem WM_UPDATEUISTATE, conforme descrito no SDK do Windows.

CWnd::OnUserChanged

A estrutura chama esse membro para todas as janelas depois que o usuário faz logon ou logoff.

afx_msg void OnUserChanged();

Comentários

Esse método recebe a notificação WM_USERCHANGED, que é descrita no SDK do Windows. Quando o usuário faz logon ou logoff, o sistema operacional atualiza as configurações específicas do usuário. O sistema envia essa mensagem imediatamente após atualizar as configurações.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnVKeyToItem

Se o objeto CWnd possuir uma caixa de listagem com o estilo LBS_WANTKEYBOARDINPUT, a caixa de listagem enviará a mensagem WM_VKEYTOITEM em resposta a uma mensagem WM_KEYDOWN.

afx_msg int OnVKeyToItem(
    UINT nKey,
    CListBox* pListBox,
    UINT nIndex);

Parâmetros

nKey
Especifica o código de tecla virtual da tecla que o usuário pressionou. Para obter uma lista de códigos de tecla virtual padrão, consulte Winuser.h

pListBox
Especifica um ponteiro para a caixa de listagem. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

nIndex
Especifica a posição atual do cursor.

Valor de retorno

Especifica a ação executada pelo aplicativo em resposta à mensagem. Um valor retornado de -2 indica que o aplicativo lidou com todos os aspectos da seleção do item e não deseja mais nenhuma ação da caixa de listagem. Um valor retornado de -1 indica que a caixa de listagem deve executar a ação padrão em resposta ao pressionamento de teclas. Um valor retornado igual a 0 ou maior especifica o índice baseado em zero de um item na caixa de listagem e indica que a caixa de listagem deve executar a ação padrão para o pressionamento de teclas no item fornecido.

Comentários

Essa função membro é chamada pela estrutura apenas para caixas de listagem que têm o estilo LBS_HASSTRINGS.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnVScroll

A estrutura chama essa função membro quando o usuário clica na barra de rolagem vertical de uma janela.

afx_msg void OnVScroll(
    UINT nSBCode,
    UINT nPos,
    CScrollBar* pScrollBar);

Parâmetros

nSBCode
Especifica um código de barra de rolagem que indica a solicitação de rolagem do usuário. Esse parâmetro pode ser um dos seguintes:

  • SB_BOTTOM Role para a parte inferior.

  • SB_ENDSCROLL Rolagem final.

  • SB_LINEDOWN Role uma linha para baixo.

  • SB_LINEUP Role uma linha para cima.

  • SB_PAGEDOWN Role uma página para baixo.

  • SB_PAGEUP Role uma página para cima.

  • SB_THUMBPOSITION Role até a posição absoluta. A posição atual é fornecida em nPos.

  • SB_THUMBTRACK Arraste a caixa de rolagem para a posição especificada. A posição atual é fornecida em nPos.

  • SB_TOP Role para a parte superior.

nPos
Especifica a posição da caixa de rolagem se o código da barra de rolagem for SB_THUMBPOSITION ou SB_THUMBTRACK; caso contrário, não será usado. Dependendo do intervalo de rolagem inicial, nPos pode ser negativo e deve ser convertido em um int, se necessário.

pScrollBar
Se a mensagem de rolagem veio de um controle de barra de rolagem, contém um ponteiro para o controle. Se o usuário clicou na barra de rolagem de uma janela, esse parâmetro será NULL. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

OnVScroll normalmente é usado por aplicativos que fornecem alguns comentários enquanto a caixa de rolagem está sendo arrastada.

Se OnVScroll rolar o conteúdo do objeto CWnd, ele também deverá redefinir a posição da caixa de rolagem com a função membro SetScrollPos.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnVScrollClipboard

A função membro OnVScrollClipboard do proprietário da área de transferência é chamada pelo visualizador da área de transferência quando os dados da área de transferência têm o formato CF_OWNERDISPLAY e há um evento na barra de rolagem vertical do visualizador da área de transferência.

afx_msg void OnVScrollClipboard(
    CWnd* pClipAppWnd,
    UINT nSBCode,
    UINT nPos);

Parâmetros

pClipAppWnd
Especifica um ponteiro para uma janela de visualizador de área de transferência. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

nSBCode
Especifica um dos seguintes valores de barra de rolagem:

  • SB_BOTTOM Role para a parte inferior.

  • SB_ENDSCROLL Rolagem final.

  • SB_LINEDOWN Role uma linha para baixo.

  • SB_LINEUP Role uma linha para cima.

  • SB_PAGEDOWN Role uma página para baixo.

  • SB_PAGEUP Role uma página para cima.

  • SB_THUMBPOSITION Role até a posição absoluta. A posição atual é fornecida em nPos.

  • SB_TOP Role para a parte superior.

nPos
Especifica a posição da caixa de rolagem se o código da barra de rolagem for SB_THUMBPOSITION; caso contrário, nPos não será usado.

Comentários

O proprietário deve rolar a imagem da área de transferência, invalidar a seção adequada e atualizar os valores da barra de rolagem.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnWindowMaximizedChanged

A estrutura chama esse membro quando a janela atual é maximizada e a janela é composta pelo DWM (Gerenciador de Janelas da Área de Trabalho).

afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);

Parâmetros

bIsMaximized
[in] TRUE se a janela atual for maximizada e FALSE se não for.

Comentários

Esse método recebe a notificação WM_DWMWINDOWMAXIMIZEDCHANGE, que é descrita no SDK do Windows.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnWindowPosChanged

A estrutura chama essa função membro quando o tamanho, a posição ou a ordem Z são alterados como resultado de uma chamada para a função membro SetWindowPos ou outra função de gerenciamento de janela.

afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);

Parâmetros

lpwndpos
Aponta para uma estrutura de dados WINDOWPOS que contém informações sobre o novo tamanho e a posição da janela.

Comentários

A implementação padrão envia as mensagens WM_SIZE e WM_MOVE para a janela. Essas mensagens não serão enviadas se um aplicativo manipular a chamada OnWindowPosChanged sem chamar sua classe base. É mais eficiente executar qualquer processamento de alteração de movimento ou tamanho durante a chamada OnWindowPosChanged sem chamar sua classe base.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnWindowPosChanging

A estrutura chama essa função membro quando o tamanho, a posição ou a ordem Z são alterados como resultado de uma chamada para a função membro SetWindowPos ou outra função de gerenciamento de janela.

afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);

Parâmetros

lpwndpos
Aponta para uma estrutura de dados WINDOWPOS que contém informações sobre o novo tamanho e a posição da janela.

Comentários

Um aplicativo pode impedir alterações na janela definindo ou limpando os bits apropriados no membro flags da estrutura WINDOWPOS.

Para uma janela com o estilo WS_OVERLAPPED ou WS_THICKFRAME, a implementação padrão envia uma mensagem WM_GETMINMAXINFO para a janela. Isso é feito para validar o novo tamanho e a posição da janela e para impor os estilos de cliente CS_BYTEALIGNCLIENT e CS_BYTEALIGN. Um aplicativo pode substituir essa funcionalidade não chamando sua classe base.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnWinIniChange

A estrutura chama essa função membro depois que uma alteração foi feita no arquivo de inicialização do Windows, WIN.INI.

afx_msg void OnWinIniChange(LPCTSTR lpszSection);

Parâmetros

lpszSection
Aponta para uma cadeia de caracteres que especifica o nome da seção que foi alterada. (A cadeia de caracteres não inclui os colchetes que incluem o nome da seção.)

Comentários

A função SystemParametersInfo do Windows chama OnWinIniChange depois que um aplicativo usa a função para alterar uma configuração no arquivo WIN.INI.

Para enviar a mensagem WM_WININICHANGE para todas as janelas de nível superior, um aplicativo pode usar a função SendMessage do Windows com seu parâmetro hwnd definido como HWND_BROADCAST.

Se um aplicativo alterar muitas seções diferentes em WIN.INI ao mesmo tempo, o aplicativo deverá enviar uma mensagem WM_WININICHANGE com lpszSection definido como NULL. Caso contrário, um aplicativo deve enviar WM_WININICHANGE cada vez que fizer uma alteração para WIN.INI.

Se um aplicativo receber uma chamada OnWinIniChange com lpszSection definido como NULL, o aplicativo deverá verificar todas as seções em WIN.INI que afetam o aplicativo.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnWndMsg

Essa função membro é chamada por WindowProc, ou é chamada durante a reflexão da mensagem.

virtual BOOL OnWndMsg(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parâmetros

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

pResult
O valor retornado de WindowProc. Depende da mensagem enviada; pode ser NULL.

Valor de retorno

TRUE se a mensagem foi manipulada; caso contrário, FALSE.

Comentários

OnWndMsg determina o tipo de mensagem e chama a função de estrutura apropriada (por exemplo, OnCommand para WM_COMMAND) ou localiza a mensagem apropriada no mapa da mensagem.

Para obter mais informações sobre reflexão de mensagens, consulte Como lidar com mensagens refletidas.

CWnd::OnXButtonDblClk

A estrutura chama essa função membro quando o usuário clica duas vezes em XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela.

afx_msg void OnXButtonDblClk(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Parâmetros

nFlags
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam quais teclas modificadoras são pressionadas. Por exemplo, o sinalizador MK_CONTROL indica que a tecla CTRL está pressionada.

nButton
[in] Um valor de XBUTTON1 se o primeiro botão Microsoft Intellimouse X for clicado duas vezes ou XBUTTON2 se o segundo botão X for clicado duas vezes.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da área do cliente.

Comentários

Esse método recebe a notificação WM_XBUTTONDBLCLK, que é descrita no SDK do Windows. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.

O parâmetro nFlags pode ser uma combinação de teclas modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.

Tecla modificadora Descrição
MK_CONTROL A tecla CTRL está pressionada.
MK_LBUTTON O botão esquerdo do mouse foi pressionado.
MK_MBUTTON O botão do meio do mouse é pressionado.
MK_RBUTTON O botão direito do mouse é pressionado.
MK_SHIFT A tecla SHIFT está pressionada.
MK_XBUTTON1 O botão do mouse XBUTTON1 do Microsoft IntelliMouse é pressionado.
MK_XBUTTON2 O botão do mouse XBUTTON2 do Microsoft IntelliMouse é pressionado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnXButtonDown

A estrutura chama essa função membro quando o usuário clica em XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela.

afx_msg void OnXButtonDown(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Parâmetros

nFlags
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam quais teclas modificadoras são pressionadas. Por exemplo, o sinalizador MK_CONTROL indica que a tecla CTRL está pressionada.

nButton
[in] Um valor de XBUTTON1 se o primeiro botão Microsoft Intellimouse X for clicado, ou XBUTTON2 se o segundo botão X for clicado.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da área do cliente.

Comentários

Esse método recebe a notificação WM_XBUTTONDOWN, que é descrita no SDK do Windows. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.

O parâmetro nFlags pode ser uma combinação de teclas modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.

Tecla modificadora Descrição
MK_CONTROL A tecla CTRL está pressionada.
MK_LBUTTON O botão esquerdo do mouse foi pressionado.
MK_MBUTTON O botão do meio do mouse é pressionado.
MK_RBUTTON O botão direito do mouse é pressionado.
MK_SHIFT A tecla SHIFT está pressionada.
MK_XBUTTON1 O botão do mouse XBUTTON1 do Microsoft IntelliMouse é pressionado.
MK_XBUTTON2 O botão do mouse XBUTTON2 do Microsoft IntelliMouse é pressionado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OnXButtonUp

A estrutura chama essa função membro quando o usuário libera XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela.

afx_msg void OnXButtonUp(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Parâmetros

nFlags
[in] Uma combinação bit a bit (OR) de sinalizadores que indicam quais teclas modificadoras são pressionadas. Por exemplo, o sinalizador MK_CONTROL indica que a tecla CTRL está pressionada.

nButton
[in] Um valor de XBUTTON1 se o primeiro botão Microsoft Intellimouse X for clicado duas vezes, ou XBUTTON2 se o segundo botão X for clicado duas vezes.

point
[in] Um objeto CPoint que especifica as coordenadas x e y do cursor em relação ao canto superior esquerdo da área do cliente.

Comentários

Esse método recebe a notificação WM_XBUTTONUP, que é descrita no SDK do Windows. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.

O parâmetro nFlags pode ser uma combinação de teclas modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.

Tecla modificadora Descrição
MK_CONTROL A tecla CTRL está pressionada.
MK_LBUTTON O botão esquerdo do mouse foi pressionado.
MK_MBUTTON O botão do meio do mouse é pressionado.
MK_RBUTTON O botão direito do mouse é pressionado.
MK_SHIFT A tecla SHIFT está pressionada.
MK_XBUTTON1 O botão do mouse XBUTTON1 do Microsoft IntelliMouse é pressionado.
MK_XBUTTON2 O botão do mouse XBUTTON2 do Microsoft IntelliMouse é pressionado.

Observação

Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do Windows. Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida. Se você chamar a implementação de classe base dessa função, essa implementação usará os parâmetros originalmente passados com a mensagem e não os parâmetros fornecidos para a função.

CWnd::OpenClipboard

Abre a Área de Transferência.

BOOL OpenClipboard();

Valor de retorno

Diferente de zero se a área de transferência for aberta por meio de CWnd, ou 0 se outro aplicativo ou janela tiver a área de transferência aberta.

Comentários

Outros aplicativos não poderão modificar a área de transferência até que a função CloseClipboard do Windows seja chamada.

O objeto CWnd atual não poderá se tornar proprietário da área de transferência até que a função EmptyClipboard do Windows seja chamada.

Exemplo

//handler for Edit | Copy menu
void CMdiView::OnEditCopy()
{
   if (!OpenClipboard())
   {
      AfxMessageBox(_T("Cannot open the Clipboard"));
      return;
   }
   // Remove the current Clipboard contents
   if (!EmptyClipboard())
   {
      AfxMessageBox(_T("Cannot empty the Clipboard"));
      return;
   }

   // Get the currently selected data, hData handle to
   // global memory of data
   CString str;
   m_Edit.GetWindowText(str);
   size_t cbStr = (str.GetLength() + 1) * sizeof(TCHAR);
   HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);
   memcpy_s(GlobalLock(hData), cbStr, str.LockBuffer(), cbStr);
   GlobalUnlock(hData);
   str.UnlockBuffer();

   // For the appropriate data formats...
   UINT uiFormat = (sizeof(TCHAR) == sizeof(WCHAR)) ? CF_UNICODETEXT : CF_TEXT;
   if (::SetClipboardData(uiFormat, hData) == NULL)
   {
      AfxMessageBox(_T("Unable to set Clipboard data"));
      CloseClipboard();
      return;
   }

   CloseClipboard();
}

CWnd::operator HWND

Use esse operador para obter o identificador do objeto CWnd.

operator HWND() const;

CWnd::operator !=

Compara dois objetos CWnd para determinar se eles não têm as mesmas m_hWnd.

BOOL operator!=(const CWnd& wnd) const;

Parâmetros

wnd
Uma referência a um objeto CWnd.

Valor de retorno

Diferente de zero se igual; caso contrário, 0.

CWnd::operator ==

Compara dois objetos CWnd para determinar se eles têm as mesmas m_hWnd.

BOOL operator==(const CWnd& wnd) const;

Parâmetros

wnd
Uma referência a um objeto CWnd.

Valor de retorno

Diferente de zero se igual; caso contrário, 0.

CWnd::PaintWindowlessControls

Desenha controles sem janelas no contêiner de controle.

BOOL PaintWindowlessControls(CDC* pDC);

Parâmetros

pDC
O contexto do dispositivo no qual desenhar os controles sem janelas.

Valor de retorno

Retorna TRUE se houver um contêiner de controle e os controles sem janelas forem desenhados com êxito; caso contrário, FALSE.

CWnd::PostMessage

Coloca uma mensagem na fila de mensagens da janela e retorna sem aguardar a janela correspondente processar a mensagem.

BOOL PostMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Parâmetros

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais da mensagem. O conteúdo desse parâmetro depende da mensagem sendo postada.

lParam
Especifica informações adicionais da mensagem. O conteúdo desse parâmetro depende da mensagem sendo postada.

Valor de retorno

Diferente de zero se a mensagem for enviada; caso contrário, 0.

Comentários

As mensagens em uma fila de mensagens são recuperadas por chamadas para a função GetMessage ou PeekMessage do Windows.

A função PostMessage do Windows pode ser usada para acessar outro aplicativo.

Exemplo

Confira o exemplo de AfxGetMainWnd.

CWnd::PostNcDestroy

Chamado pela função membro padrão OnNcDestroy após a janela ter sido destruída.

virtual void PostNcDestroy();

Comentários

Classes derivadas podem usar essa função para limpeza personalizada, como a exclusão do ponteiro this.

CWnd::PreCreateWindow

Chamado pela estrutura antes da criação da janela do Windows anexada a esse objeto CWnd.

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Parâmetros

cs
Uma estrutura CREATESTRUCT.

Valor de retorno

Diferente de zero se a criação da janela deve continuar; 0 para indicar falha de criação.

Comentários

Aviso

CWnd::PreCreateWindow agora atribui o membro hMenu de cs para o ponteiro this se o menu for NULL e o estilo contiver WS_CHILD. Para obter a funcionalidade adequada, verifique se o controle da caixa de diálogo tem um ID que não é NULL.

Essa alteração corrige uma falha em cenários de interoperabilidade gerenciados/nativos. Uma instrução TRACE em CWnd::Create alerta o desenvolvedor do problema.

Nunca chame essa função diretamente.

A implementação padrão dessa função verifica o nome de uma classe de janela NULL e substitui um padrão apropriado. Substitua essa função membro para modificar a estrutura CREATESTRUCT antes que a janela seja criada.

Cada classe derivada por CWnd adiciona sua própria funcionalidade à sua substituição de PreCreateWindow. Por design, essas derivações de PreCreateWindow não são documentadas. Para determinar os estilos apropriados para cada classe e as interdependências entre os estilos, você pode examinar o código-fonte MFC para a classe base do aplicativo. Se você optar por substituir PreCreateWindow,, poderá determinar se os estilos usados na classe base do aplicativo fornecem a funcionalidade necessária usando informações coletadas do código-fonte MFC.

Para obter mais informações sobre como alterar estilos de janela, consulte Alteração dos estilos de uma janela criada pelo MFC.

Exemplo

// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT &cs)
{
   // Create a window without min/max buttons or sizable border
   cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

   // Size the window to 1/3 screen size and center it
   cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
   cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
   cs.y = ((cs.cy * 3) - cs.cy) / 2;
   cs.x = ((cs.cx * 3) - cs.cx) / 2;

   return CMDIChildWnd::PreCreateWindow(cs);
}

CWnd::PreSubclassWindow

Essa função membro é chamada pela estrutura para permitir que outras subclasses necessárias ocorram antes que a janela seja subclasse.

virtual void PreSubclassWindow();

Comentários

Substituir essa função membro permite a subclasse dinâmica de controles. Essa é uma substituição avançada.

CWnd::PreTranslateMessage

Usado pela classe CWinApp para converter mensagens de janela antes de serem expedidas para as funções TranslateMessage e DispatchMessage do Windows.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parâmetros

pMsg
Ponteiro para uma estrutura MSG que contém a mensagem a ser processada.

Valor de retorno

Diferente de zero se a mensagem foi convertida e não deve ser expedida; 0 se a mensagem não foi convertida e deve ser enviada.

CWnd::Print

Chame essa função membro para desenhar a janela atual no contexto do dispositivo especificado, que é mais comum em um contexto de dispositivo de impressora.

void Print(
    CDC* pDC,
    DWORD dwFlags) const;

Parâmetros

pDC
Um ponteiro para um contexto de dispositivo.

dwFlags
Especifica as opções de desenho. Esse parâmetro pode ser um ou mais desses sinalizadores:

  • PRF_CHECKVISIBLE Desenha a janela apenas se estiver visível.

  • PRF_CHILDREN Desenha todas as janelas filho visíveis.

  • PRF_CLIENT Desenha a área de cliente da janela.

  • PRF_ERASEBKGND Apaga o plano de fundo antes de desenhar a janela.

  • PRF_NONCLIENT Desenha a área de não cliente da janela.

  • PRF_OWNED Desenha todas as janelas de propriedade.

Comentários

A função CWnd::DefWindowProc processa essa mensagem com base em qual opção de desenho é especificada:

  • Se PRF_CHECKVISIBLE for especificado e a janela não estiver visível, não faça nada.

  • Se PRF_NONCLIENT for especificado, desenhe a área não cliente no contexto de dispositivo fornecido.

  • Se PRF_ERASEBKGND for especificado, envie uma mensagem WM_ERASEBKGND à janela.

  • Se PRF_CLIENT for especificado, envie uma mensagem WM_PRINTCLIENT à janela.

  • Se PRF_CHILDREN estiver definido, envie uma mensagem WM_PRINT para cada janela filho visível.

  • Se PRF_OWNED estiver definido, envie uma mensagem WM_PRINT para cada janela de propriedade visível.

CWnd::PrintClient

Chame essa função membro para desenhar qualquer janela no contexto do dispositivo especificado (geralmente um contexto de dispositivo de impressora).

void PrintClient(
    CDC* pDC,
    DWORD dwFlags) const;

Parâmetros

pDC
Um ponteiro para um contexto de dispositivo.

dwFlags
Especifica as opções de desenho. Esse parâmetro pode ser um ou mais desses sinalizadores:

  • PRF_CHECKVISIBLE Desenha a janela apenas se estiver visível.

  • PRF_CHILDREN Desenha todas as janelas filho visíveis.

  • PRF_CLIENT Desenha a área de cliente da janela.

  • PRF_ERASEBKGND Apaga o plano de fundo antes de desenhar a janela.

  • PRF_NONCLIENT Desenha a área de não cliente da janela.

  • PRF_OWNED Desenha todas as janelas de propriedade.

CWnd::PrintWindow

Copia uma janela visual para o contexto do dispositivo especificado, normalmente um controlador de domínio de impressora.

BOOL PrintWindow(
    CDC* pDC,
    UINT nFlags) const;

Parâmetros

pDC
Um ponteiro para o contexto do dispositivo a ser impresso.

nFlags
Especifica as opções de desenho. Para obter uma lista de valores possíveis, consulte PrintWindow.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função PrintWindow, conforme descrito no SDK do Windows.

CWnd::RedrawWindow

Atualiza um retângulo ou região especificada na área de cliente fornecida.

BOOL RedrawWindow(
    LPCRECT lpRectUpdate = NULL,
    CRgn* prgnUpdate = NULL,
    UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

Parâmetros

lpRectUpdate
Aponta para uma estrutura RECT que contém as coordenadas do retângulo de atualização. Esse parâmetro será ignorado se prgnUpdate contiver um identificador de região válido.

prgnUpdate
Identifica a região de atualização. If ambos prgnUpdate e lpRectUpdate forem NULL, toda a área do cliente será adicionada à região de atualização.

flags
Os sinalizadores a seguir são usados para invalidar a janela:

  • RDW_ERASE Faz com que a janela receba uma mensagem WM_ERASEBKGND quando a janela é repintada. O sinalizador RDW_INVALIDATE também deve ser especificado; caso contrário, RDW_ERASE não terá efeito.

  • RDW_FRAME Faz com que qualquer parte da área não cliente da janela que cruze a região de atualização receba uma mensagem WM_NCPAINT. O sinalizador RDW_INVALIDATE também deve ser especificado; caso contrário, RDW_FRAME não terá efeito.

  • RDW_INTERNALPAINT Faz com que uma mensagem WM_PAINT seja postada na janela, independentemente de a janela conter uma região inválida.

  • RDW_INVALIDATE Invalida lpRectUpdate ou prgnUpdate (apenas um pode não ser NULL). Se ambos forem NULL, a janela inteira será invalidada.

Os sinalizadores a seguir são usados para validar a janela:

  • RDW_NOERASE Suprime todas as mensagens pendentes WM_ERASEBKGND.

  • RDW_NOFRAME Suprime todas as mensagens pendentes WM_NCPAINT. Esse sinalizador deve ser usado com RDW_VALIDATE e normalmente é usado com RDW_NOCHILDREN. Essa opção deve ser usada com cuidado, pois pode impedir que partes de uma janela sejam pintadas corretamente.

  • RDW_NOINTERNALPAINT Suprime todas as mensagens internas WM_PAINT pendentes. Esse sinalizador não afeta as mensagens WM_PAINT resultantes de áreas inválidas.

  • RDW_VALIDATE Valida lpRectUpdate ou prgnUpdate (apenas um pode não ser NULL). Se ambos forem NULL, a janela inteira será validada. Esse sinalizador não afeta mensagens internas WM_PAINT.

O controle de sinalizadores a seguir quando a repintura ocorre. A pintura não é executada pela função RedrawWindow a menos que um desses bits seja especificado.

  • RDW_ERASENOWFaz com que as janelas afetadas (conforme especificado por RDW_ALLCHILDREN e sinalizadores RDW_NOCHILDREN) recebam as mensagens WM_ERASEBKGNDe WM_NCPAINT, se necessário, antes que a função retorne. Mensagens WM_PAINT são adiadas.

  • RDW_UPDATENOW Faz com que as janelas afetadas (conforme especificado por RDW_ALLCHILDREN e sinalizadores RDW_NOCHILDREN) recebam as mensagens WM_NCPAINT, WM_ERASEBKGND, e WM_PAINT, se necessário, antes que a função retorne.

Por padrão, as janelas afetadas pela função RedrawWindow dependem se a janela especificada tem o estilo WS_CLIPCHILDREN. As janelas filho das janelas WS_CLIPCHILDREN não são afetadas. No entanto, as janelas que não são janelas WS_CLIPCHILDREN são validadas ou invalidadas recursivamente até que uma janela WS_CLIPCHILDREN seja encontrada. Os sinalizadores a seguir controlam quais janelas são afetadas pela função RedrawWindow:

  • RDW_ALLCHILDREN Inclui janelas filho, se houver, na operação de redesenho.

  • RDW_NOCHILDREN Inclui janelas filho, se houver, na operação de redesenho.

Valor de retorno

Diferente de zero se a janela foi redesenhada com êxito; caso contrário, 0.

Comentários

Quando a função membro RedrawWindow é usada para invalidar parte da janela da área de trabalho, essa janela não recebe uma mensagem WM_PAINT. Para repintar a área de trabalho, um aplicativo deve usarCWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow ou RedrawWindow

CWnd::ReflectChildNotify

Essa função de mensagem é chamada pela estrutura de OnChildNotify.

BOOL ReflectChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parâmetros

message
Especifica a mensagem a ser refletida.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

pResult
O resultado gerado pela janela filho a ser retornado pela janela pai. Pode ser NULL.

Valor de retorno

TRUE se a mensagem foi refletida, caso contrário, FALSE.

Comentários

É uma função auxiliar, que reflete message para sua origem.

As mensagens refletidas são enviadas diretamente para CWnd::OnWndMsg ou CCmdTarget::OnCmdMsg.

Para obter mais informações sobre reflexão de mensagens, consulte Como lidar com mensagens refletidas.

CWnd::ReflectLastMsg

Essa função membro é chamada pela estrutura para refletir a última mensagem para a janela filho.

static BOOL PASCAL ReflectLastMsg(
    HWND hWndChild,
    LRESULT* pResult = NULL);

Parâmetros

hWndChild
Um identificador de uma janela filho.

pResult
O resultado gerado pela janela filho a ser retornado pela janela pai. Pode ser NULL.

Valor de retorno

Diferente de zero se a mensagem tiver sido tratada; caso contrário, zero.

Comentários

Essa função membro chama SendChildNotifyLastMsg se a janela identificada por hWndChild for um controle OLE ou uma janela no mapa permanente.

Para obter mais informações sobre reflexão de mensagens, consulte Como lidar com mensagens refletidas.

CWnd::ReleaseDC

Libera um contexto de dispositivo, liberando-o para uso por outros aplicativos.

int ReleaseDC(CDC* pDC);

Parâmetros

pDC
Identifica o contexto do dispositivo a ser liberado.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

O efeito da função membro ReleaseDC depende do tipo de contexto do dispositivo.

O aplicativo deve chamar a função membro ReleaseDC para cada chamada da função membro GetWindowDC e para cada chamada da função membro GetDC.

CWnd::RepositionBars

Chamado para reposicionar e redimensionar barras de controle na área do cliente de uma janela.

void RepositionBars(UINT nIDFirst,
    UINT nIDLast,
    UINT nIDLeftOver,
    UINT nFlag = reposDefault,
    LPRECT lpRectParam = NULL,
    LPCRECT lpRectClient = NULL,
    BOOL bStretch = TRUE) ;

Parâmetros

nIDFirst
O ID do primeiro em um intervalo de barras de controle para reposicionar e redimensionar.

nIDLast
O ID do último em um intervalo de barras de controle para reposicionar e redimensionar.

nIDLeftOver
Especifica o ID do painel que preenche o restante da área do cliente.

nFlag
Pode ter um dos seguintes valores:

  • CWnd::reposDefault Executa o layout das barras de controle. lpRectParam não é usado e pode ser NULL.

  • CWnd::reposQuery O layout das barras de controle não é feito; em vez disso, lpRectParam é inicializado com o tamanho da área do cliente, como se o layout tivesse sido realmente feito.

  • CWnd::reposExtra Adiciona os valores de lpRectParam para a área do cliente de nIDLast e também executa o layout.

lpRectParam
Aponta para uma estrutura RECT; o uso do qual depende do valor de nFlag.

lpRectClient
Aponta para uma estrutura RECT que contém a área de cliente disponível. Se NULL, a área de cliente da janela será usada.

bStretch
Indica se a barra deve ser alongada até atingir o tamanho do quadro.

Comentários

Os parâmetros nIDFirst e nIDLast definem um intervalo de IDs de barra de controle a serem reposicionadas na área do cliente. O parâmetro nIDLeftOver especifica o ID da janela filho (normalmente a exibição) que é reposicionada e redimensionada para preencher o restante da área do cliente não preenchida por barras de controle.

CWnd::RunModalLoop

Chame essa função membro para recuperar, converter ou expedir mensagens até ContinueModal retornar FALSE.

int RunModalLoop(DWORD dwFlags = 0);

Parâmetros

dwFlags
Especifica a mensagem do Windows a ser enviada. Pode ser um dos seguintes valores:

  • MLF_NOIDLEMSG Não envie mensagens WM_ENTERIDLE para o pai.

  • MLF_NOKICKIDLE Não envie mensagens WM_KICKIDLE para o pai.

  • MLF_SHOWONIDLE Mostre a janela quando a fila de mensagens ficar ociosa.

Valor de retorno

Especifica o valor do parâmetro nResult passado para a função membro EndModalLoop, que é usada para encerrar o loop modal.

Comentários

Por padrão, ContinueModal retorna FALSE após EndModalLoop ser chamado. Retorna o valor fornecido como nResult para EndModalLoop.

CWnd::ScreenToClient

Converte as coordenadas da tela de um determinado ponto ou retângulo na exibição em coordenadas de cliente.

void ScreenToClient(LPPOINT lpPoint) const;  void ScreenToClient(LPRECT lpRect) const;

Parâmetros

lpPoint
Aponta para um objeto CPoint ou estrutura POINT que contém as coordenadas de tela a serem convertidas.

lpRect
Aponta para um objeto CRect ou estrutura RECT que contém as coordenadas de tela a serem convertidas.

Comentários

A função membro ScreenToClient substitui as coordenadas de tela fornecidas em lpPoint ou lpRect por coordenadas do cliente. As coordenadas são relativas ao canto superior esquerdo da área do cliente CWnd.

Exemplo

Confira o exemplo de CListCtrl::GetItemRect.

CWnd::ScrollWindow

Rola o conteúdo da área do cliente do objeto atual CWnd.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Parâmetros

xAmount
Especifica a quantidade, em unidades de dispositivo, da rolagem horizontal. Esse parâmetro deve ser um valor negativo para rolar para a esquerda.

yAmount
Especifica a quantidade, em unidades de dispositivo, da rolagem horizontal. Esse parâmetro deve ser um valor negativo para rolar para cima.

lpRect
Aponta para um objeto CRect ou estruturaRECTque especifica a parte da área do cliente a ser rolada. Se lpRect for NULL, toda a área do cliente será rolada. O cursor será reposicionado se o retângulo do cursor cruzar com o retângulo de rolagem.

lpClipRect
Aponta para um objeto CRect ou estrutura RECT que especifica o retângulo de recorte a ser rolado. Somente os bits dentro deste retângulo são rolados. Bits fora desse retângulo não são afetados mesmo que estejam no retângulo lpRect. Se lpClipRect for NULL, nenhum recorte será executado no retângulo de rolagem.

Comentários

Se o cursor estiver em CWnd sendo rolado, ScrollWindow ocultará automaticamente o cursor para evitar que ele seja apagado e restaurará o cursor após a conclusão da rolagem. A posição do cursor é ajustada adequadamente.

A área descoberta pela função membro ScrollWindow não é repintada, mas é combinada na região de atualização do objeto atual CWnd. O aplicativo receberá uma mensagem WM_PAINT informando que a região precisa ser repintada. Para repintar a área descoberta ao mesmo tempo em que a rolagem é feita, chame a função membro UpdateWindow imediatamente após a chamada de ScrollWindow.

Se lpRect for NULL, as posições de qualquer janela filho na janela são deslocadas pela quantidade especificada por xAmount e yAmount, e quaisquer áreas inválidas (não pintadas) em CWnd também são deslocadas. ScrollWindow é mais rápido quando lpRect é NULL.

Se lpRect não for NULL, as posições das janelas filho não serão alteradas e as áreas inválidas em CWnd não serão deslocadas. Para evitar problemas de atualização quando lpRect não for NULL, chame a função membro UpdateWindow para repintar CWnd antes de chamar ScrollWindow.

CWnd::ScrollWindowEx

Rola o conteúdo da área de cliente de uma janela.

int ScrollWindowEx(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* prgnUpdate,
    LPRECT lpRectUpdate,
    UINT flags);

Parâmetros

dx
Especifica a quantidade, em unidades de dispositivo, da rolagem horizontal. Esse parâmetro deve ser um valor negativo para rolar para a esquerda.

dy
Especifica a quantidade, em unidades de dispositivo, da rolagem horizontal. Esse parâmetro deve ser um valor negativo para rolar para cima.

lpRectScroll
Aponta para uma estrutura RECT que especifica a parte da área do cliente a ser rolada. Se esse parâmetro for NULL, toda a área do cliente será rolada.

lpRectClip
Aponta para uma estrutura RECT que especifica o retângulo de recorte a ser rolado. Essa estrutura tem precedência sobre o retângulo apontado por lpRectScroll. Somente os bits dentro deste retângulo são rolados. Bits fora desse retângulo não são afetados mesmo que estejam no retângulo lpRectScroll. Se esse parâmetro for NULL, nenhum recorte será executado no retângulo de rolagem.

prgnUpdate
Identifica a região modificada para manter a região invalidada pela rolagem. Esse parâmetro pode ser NULL.

lpRectUpdate
Aponta para uma estrutura RECT que receberá os limites do retângulo invalidados pela rolagem. Esse parâmetro pode ser NULL.

flags
Pode ter um dos seguintes valores:

  • SW_ERASE Quando especificado com SW_INVALIDATE, apaga a região recém-invalidada enviando uma mensagem WM_ERASEBKGND para a janela.

  • SW_INVALIDATE Invalida a região identificada por prgnUpdate após a rolagem.

  • SW_SCROLLCHILDREN Rola todas as janelas filho que cruzam o retângulo apontado por lpRectScroll pelo número de pixels especificados em dx e dy. O Windows envia uma mensagem WM_MOVE para todas as janelas filho que cruzam com lpRectScroll, mesmo que elas não se movam. O cursor é reposicionado quando uma janela filho é rolada e o retângulo do cursor cruza o retângulo de rolagem.

Valor de retorno

O valor retornado é SIMPLEREGION (região invalidada retangular), COMPLEXREGION (região invalidada não retangular; retângulos sobrepostos) ou NULLREGION (nenhuma região invalidada), se a função for bem-sucedida; caso contrário, o valor retornado será ERROR.

Comentários

Essa função é semelhante à função ScrollWindow, com alguns recursos adicionais.

Se SW_INVALIDATE e SW_ERASE não forem especificados, a função membro ScrollWindowEx não invalida a área que é rolada para longe. Se um desses sinalizadores estiver definido, ScrollWindowEx invalide essa área. A área não é atualizada até que o aplicativo chame a função membro UpdateWindow chama a função membro RedrawWindow (especificando RDW_UPDATENOW ou RDW_ERASENOW) ou recupere a mensagem WM_PAINT da fila do aplicativo.

Se a janela tiver o estilo WS_CLIPCHILDREN, as áreas retornadas especificadas por prgnUpdate e lpRectUpdate representarão a área total da janela rolada que deve ser atualizada, incluindo todas as áreas nas janelas filho que precisam ser atualizadas.

Se o sinalizador SW_SCROLLCHILDREN for especificado, o Windows não atualizará corretamente a tela se parte de uma janela filho for rolada. A parte da janela filho rolada que fica fora do retângulo de origem não será apagada e não será redesenhada corretamente em seu novo destino. Use a função DeferWindowPos do Windows para mover janelas filho que não estão completamente dentro do retângulo lpRectScroll. O cursor será reposicionado se o sinalizador SW_SCROLLCHILDREN estiver definido e o retângulo do cursor cruzar com o retângulo de rolagem.

Todas as coordenadas de entrada e saída (para lpRectScroll, lpRectClip, lpRectUpdate e prgnUpdate) são consideradas coordenadas do cliente, independentemente de a janela ter o estilo de classe CS_OWNDC ou CS_CLASSDC. Use as funções LPtoDP e DPtoLP do Windows para converter de e para coordenadas lógicas, se necessário.

CWnd::SendChildNotifyLastMsg

Essa função membro é chamada pela estrutura para fornecer uma mensagem de notificação a uma janela filho, da janela pai, para que a janela filho possa lidar com uma tarefa.

BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);

Parâmetros

pResult
O resultado gerado pela janela filho a ser retornado pela janela pai.

Valor de retorno

Diferente de zero se a janela filho tiver manipulado a mensagem enviada ao pai; caso contrário, 0.

Comentários

SendChildNotifyLastMsg envie a mensagem atual para a origem se ela for uma mensagem refletida.

Para obter mais informações sobre reflexão de mensagens, consulte Como lidar com mensagens refletidas.

CWnd::SendDlgItemMessage

Envia uma mensagem para um controle.

LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Parâmetros

nID
Especifica o identificador do controle de diálogo que receberá a mensagem.

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

Valor de retorno

Especifica o valor retornado pelo procedimento de janela do controle, ou 0 se o controle não foi encontrado.

Comentários

A função membro SendDlgItemMessage não retorna até que a mensagem tenha sido processada.

Usar SendDlgItemMessage é idêntico à obtenção de um CWnd* para o controle fornecido e chamar a função membro SendMessage.

Exemplo

void CMyDlg::SetSpinRange()
{
   //set the min and max range of the up/down or spin control
   SendDlgItemMessage(IDC_SPIN1, UDM_SETRANGE, 0, (LPARAM)MAKELONG(8, 1));
}

CWnd::SendMessage

Envia a mensagem especificada para essa janela.

LRESULT SendMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Parâmetros

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

Valor de retorno

O resultado do processamento da mensagem; seu valor depende da mensagem enviada.

Comentários

A função membro SendMessage chama o procedimento de janela diretamente e não retorna até que o procedimento da janela tenha processado a mensagem. Isso contrasta com a função membro PostMessage, que coloca a mensagem na fila de mensagens da janela e retorna imediatamente.

Exemplo

void CAboutDlg::OnPaint()
{
   // This code, normally emitted by the Application Wizard for a dialog-
   // based project for the dialog's WM_PAINT handler, runs only if the
   // window is iconic. The window erases the icon's area, then
   // paints the icon referenced by m_hIcon.
   if (IsIconic())
   {
      CPaintDC dc(this); // device context for painting

      SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);

      // Center icon in client rectangle
      int cxIcon = GetSystemMetrics(SM_CXICON);
      int cyIcon = GetSystemMetrics(SM_CYICON);
      CRect rect;
      GetClientRect(&rect);
      int x = (rect.Width() - cxIcon + 1) / 2;
      int y = (rect.Height() - cyIcon + 1) / 2;

      // Draw the icon
      dc.DrawIcon(x, y, m_hIcon);
   }
   else
   {
      CDialog::OnPaint();
   }
}

CWnd::SendMessageToDescendants

Chame essa função membro para enviar a mensagem especificada do Windows para todas as janelas descendentes.

void SendMessageToDescendants(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0,
    BOOL bDeep = TRUE,
    BOOL bOnlyPerm = FALSE);

Parâmetros

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

bDeep
Especifica o nível para o qual buscar. Se TRUE, busque recursivamente todas as crianças; se FALSE, busque apenas crianças imediatas.

bOnlyPerm
Especifica se a mensagem será recebida por janelas temporárias. Se TRUE, janelas temporárias podem receber a mensagem; se FALSE, apenas janelas permanentes recebem a mensagem. Para mais informações sobre janelas temporárias, consulte a Observação Técnica 3.

Comentários

Se bDeep for FALSE, a mensagem será enviada apenas para os filhos imediatos da janela; caso contrário, a mensagem será enviada para todas as janelas descendentes.

Se bDeep e bOnlyPerm forem TRUE, a busca continuará abaixo de janelas temporárias. Nesse caso, somente janelas permanentes encontradas durante a pesquisa recebem a mensagem. Se bDeep for FALSE, a mensagem será enviada somente para os filhos imediatos da janela.

Exemplo

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// change font of child controls of a dialog
LOGFONT lf = {0};
// redraw of child controls not needed in OnInitDialog
// since controls aren't drawn yet.
short int fRedraw = FALSE;

lf.lfHeight = 15; // Request a 15-pixel-high font

// with face name "Arial".
wcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));

m_font.CreateFontIndirect(&lf); // Create the font.

SendMessageToDescendants(WM_SETFONT,
                         (WPARAM)m_font.m_hObject, //handle to font
                         MAKELONG((WORD)fRedraw, 0),
                         FALSE); // send to all descendants(TRUE) or
                                 // just children of *this (FALSE)

CWnd::SendNotifyMessage

Envia a mensagem especificada para a janela.

BOOL SendNotifyMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

message
Especifica a mensagem a ser enviada.

wParam
Especifica informações adicionais dependentes de mensagens.

lParam
Especifica informações adicionais dependentes de mensagens.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Se a janela foi criada pelo thread de chamada, SendNotifyMessage chama o procedimento de janela para a janela e não retorna até que o procedimento da janela tenha processado a mensagem. Se a janela foi criada por um thread diferente, SendNotifyMessage passa a mensagem para o procedimento da janela e retorna imediatamente; não aguarda que o procedimento da janela termine de processar a mensagem.

CWnd::SetActiveWindow

Torna CWnd a janela ativa.

CWnd* SetActiveWindow();

Valor de retorno

A janela que estava ativa anteriormente.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

A função membro SetActiveWindow deve ser usada com cuidado, pois permite que um aplicativo assuma arbitrariamente a janela ativa e o foco de entrada. Normalmente, o Windows cuida de toda a ativação.

CWnd::SetCapture

Faz com que todas as entradas subsequentes do mouse sejam enviadas para o objeto atual CWnd, independentemente da posição do cursor.

CWnd* SetCapture();

Valor de retorno

Um ponteiro para o objeto de janela que recebeu anteriormente todas as entradas do mouse. É NULL se não houver essa janela. O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Quando CWnd não precisar mais de todas as entradas do mouse, o aplicativo deverá chamar a função ReleaseCapture para que outras janelas possam receber a entrada do mouse.

Enquanto a entrada do mouse é capturada, nenhuma mensagem WM_NCHITTEST ou WM_SETCURSOR é enviada para a janela ativa.

CWnd::SetCaretPos

Define a posição do cursor.

static void PASCAL SetCaretPos(POINT point);

Parâmetros

point
Especifica as novas coordenadas x e y (nas coordenadas do cliente) do cursor.

Comentários

A função membro SetCaretPos move o cursor somente se ele pertencer a uma janela na tarefa atual. SetCaretPos move o cursor se o cursor estiver oculto ou não.

O cursor é um recurso compartilhado. Uma janela não deve mover o cursor se ele não possui o cursor.

Exemplo

// The following code snippet shows a caret when the left
// mouse button is pressed, and sets the caret's position to
// the cursor's position.
void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
   //create a solid caret, the width is 2, the length is 20.
   CreateSolidCaret(2, 20);

   SetCaretPos(point);
   ShowCaret();

   CView::OnLButtonDown(nFlags, point);
}

CWnd::SetClipboardViewer

Adiciona essa janela à cadeia de janelas que são notificadas (por meio da mensagem WM_DRAWCLIPBOARD) sempre que o conteúdo da área de transferência for alterado.

HWND SetClipboardViewer();

Valor de retorno

Um identificador para a próxima janela na cadeia de visualizadores de área de transferência, se bem-sucedido. Os aplicativos devem salvar esse identificador (ele pode ser armazenado como uma variável de membro) e usá-lo ao responder a mensagens da cadeia de visualizadores da área de transferência.

Comentários

Uma janela que faz parte da cadeia de visualizadores da área de transferência deve responder a mensagens WM_DRAWCLIPBOARD, WM_CHANGECBCHAIN e WM_DESTROY e passar a mensagem para a próxima janela na cadeia.

Essa função membro envia uma mensagem WM_DRAWCLIPBOARD para a janela. Como o identificador para a próxima janela na cadeia de visualizadores da área de transferência ainda não foi retornado, o aplicativo não deve passar a mensagem WM_DRAWCLIPBOARD que recebe durante a chamada para SetClipboardViewer.

Para se remover da cadeia de visualizadores de área de transferência, um aplicativo deve chamar a função membro ChangeClipboardChain.

CWnd::SetDlgCtrlID

Define o ID da janela ou o ID de controle da janela como um novo valor.

int SetDlgCtrlID(int nID);

Parâmetros

nID
O novo valor a ser definido para o identificador do controle.

Valor de retorno

Se bem-sucedido, o identificador anterior da janela; caso contrário, 0.

Comentários

A janela pode ser qualquer janela filho, não apenas um controle em uma caixa de diálogo. A janela não pode ser uma janela de nível superior.

CWnd::SetDlgItemInt

Define o texto de um determinado controle em uma caixa de diálogo para a representação de cadeia de caracteres de um valor inteiro especificado.

void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned = TRUE);

Parâmetros

nID
Especifica o ID de inteiro do controle a ser alterado.

nValue
Especifica o valor inteiro usado para gerar o texto do item.

bSigned
Especifica se o valor inteiro está assinado ou não assinado. Se esse parâmetro for TRUE, nValue será assinado. Se esse parâmetro for TRUE e nValue for menor que 0, um sinal de menos será colocado antes do primeiro dígito na cadeia de caracteres. Se esse parâmetro for FALSE, nValue não será assinado.

Comentários

SetDlgItemInt envia uma mensagem WM_SETTEXT para o controle especificado.

Exemplo

Confira o exemplo de CWnd::SetDlgItemText.

CWnd::SetDlgItemText

Define a legenda ou o texto de um controle pertencente a uma janela ou caixa de diálogo.

void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parâmetros

nID
Identifica o controle cujo texto deve ser definido.

lpszString
Aponta para um objeto CString ou uma cadeia de caracteres terminada em nulo que contém o texto a ser copiado para o controle.

Comentários

SetDlgItemText envia uma mensagem WM_SETTEXT para o controle especificado.

Exemplo

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// Initialize dialog controls
SetDlgItemText(IDC_EDITNAME, _T("Type in text"));
SetDlgItemInt(IDC_EDITNUM, 100);

CWnd::SetForegroundWindow

Coloca o thread que criou a janela em primeiro plano e ativa a janela.

BOOL SetForegroundWindow();

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

A entrada do teclado é direcionada para a janela e várias indicações visuais são alteradas para o usuário. A janela de primeiro plano é a janela com a qual o usuário está trabalhando no momento. A janela em primeiro plano se aplica apenas a janelas de nível superior (janelas de quadro ou caixas de diálogo).

Exemplo

Confira o exemplo de CWnd::FindWindow.

CWnd::SetFocus

Declara o foco de entrada.

CWnd* SetFocus();

Valor de retorno

Um ponteiro para o objeto de janela que anteriormente tinha o foco de entrada. É NULL se não houver essa janela. O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

O foco de entrada direciona todas as entradas de teclado subsequentes para essa janela. Qualquer janela que anteriormente tinha o foco de entrada a perde.

A função membro SetFocus envia uma mensagem WM_KILLFOCUS para a janela que perde o foco de entrada e uma mensagem WM_SETFOCUS para a janela que recebe o foco de entrada. Ela também ativa a janela ou seu pai.

Se a janela atual estiver ativa, mas não tiver o foco (ou seja, nenhuma janela tem o foco), qualquer tecla pressionada produzirá as mensagens WM_SYSCHAR, WM_SYSKEYDOWNou WM_SYSKEYUP.

CWnd::SetFont

Envia a mensagem WM_SETFONT para a janela para usar a fonte especificada.

void SetFont(
    CFont* pFont,
    BOOL bRedraw = TRUE);

Parâmetros

pFont
Ponteiro para um objeto CFont.

bRedraw
TRUE para que a janela seja redesenhada imediatamente após processar a mensagem WM_SETFONT; caso contrário, FALSE.

Comentários

Esse método não tem efeito, a menos que a janela processe a mensagem WM_SETFONT. Muitas classes MFC derivam do processo CWnd dessa mensagem porque estão anexadas a uma classe de janela predefinida que inclui um manipulador de mensagens para a mensagem WM_SETFONT. Para usar esse método, as classes das quais você deriva de CWnd devem definir um manipulador de métodos para a mensagem WM_SETFONT.

CWnd::SetIcon

Chame essa função membro para definir o identificador para um ícone específico, conforme identificado por hIcon.

HICON SetIcon(
    HICON hIcon,
    BOOL bBigIcon);

Parâmetros

hIcon
Um identificador para um ícone anterior.

bBigIcon
Especifica um ícone de 32 por 32 pixels se TRUE; especifica um ícone de 16 por 16 pixels se FALSE.

Valor de retorno

Um identificador para um ícone.

Comentários

Quando a classe de janela é registrada, ela seleciona um ícone.

Exemplo

Confira o exemplo de CWnd::GetSystemMenu.

CWnd::SetLayeredWindowAttributes

Define a chave de cor de opacidade e transparência de uma janela em camadas.

BOOL SetLayeredWindowAttributes(
    COLORREF crKey,
    BYTE bAlpha,
    DWORD dwFlags);

Parâmetros

crKey
Ponteiro para um valor COLORREF que especifica a chave de cor de transparência a ser usada ao redigir a janela em camadas. Todos os pixels pintados pela janela nessa cor serão transparentes. Para gerar uma COLORREF, use a macro RGB.

bAlpha
Valor alfa usado para descrever a opacidade da janela em camadas. Para obter mais informações, consulte o membro SourceConstantAlpha da estrutura BLENDFUNCTION. Quando bAlpha é 0, a janela é completamente transparente. Quando bAlpha é 255, a janela é opaca.

dwFlags
Especifica uma ação a ser tomada. Esse parâmetro pode usar um dos valores a seguir. Para obter uma lista de valores possíveis, consulte SetLayeredWindowAttributes.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função SetLayeredWindowAttributes, conforme descrito no SDK do Windows.

CWnd::SetMenu

Define o menu atual para o menu especificado.

BOOL SetMenu(CMenu* pMenu);

Parâmetros

pMenu
Identifica o novo menu. Se esse parâmetro for NULL, o menu atual será removido.

Valor de retorno

Diferente de zero se o menu for alterado; caso contrário, 0.

Comentários

Faz com que a janela seja redesenhada para refletir a alteração do menu.

SetMenu não destruirá um menu anterior. Um aplicativo deve chamar a função membro CMenu::DestroyMenu para acompanhar essa tarefa.

Exemplo

Confira o exemplo de CMenu::LoadMenu.

CWnd::SetOwner

Define o proprietário da janela atual como o objeto de janela especificado.

void SetOwner(CWnd* pOwnerWnd);

Parâmetros

pOwnerWnd
Identifica o novo proprietário do objeto de janela. Se esse parâmetro for NULL, o objeto de janela não terá proprietário.

Comentários

Esse proprietário pode então receber mensagens de comando do objeto de janela atual. Por padrão, o pai da janela atual é seu proprietário.

Geralmente, é útil estabelecer conexões entre objetos de janela que não estão relacionados à hierarquia de janela. Por exemplo, CToolBar envia notificações para seu proprietário em vez de para seu pai. Isso permite que a barra de ferramentas se torne o filho de uma janela (como uma janela de aplicativo de contêiner OLE) ao enviar notificações para outra janela (como a janela de quadro in-loco). Além disso, quando uma janela do servidor é desativada ou ativada durante a edição in-loco, qualquer janela pertencente à janela de quadro é ocultada ou exibida. Essa propriedade é definida explicitamente com uma chamada para SetOwner.

O conceito de propriedade dessa função é diferente do conceito de propriedade de GetWindow.

CWnd::SetParent

Altera a janela pai de uma janela filho.

CWnd* SetParent(CWnd* pWndNewParent);

Parâmetros

pWndNewParent
Identifica a nova janela pai.

Valor de retorno

Um ponteiro para o objeto da janela pai anterior, se bem-sucedido. O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Se a janela filho estiver visível, o Windows executará o redesenho e a redesenho apropriados.

CWnd::SetProperty

Chame essa função membro para obter a propriedade de controle OLE especificada por dwDispID.

void AFX_CDECL SetProperty(
    DISPID dwDispID,
    VARTYPE vtProp, ...);

Parâmetros

dwDispID
Identifica a propriedade a ser definida.

vtProp
Especifica o tipo da propriedade que será definida. Para valores possíveis, consulte a seção Comentários para COleDispatchDriver::InvokeHelper.

...
Um único parâmetro do tipo especificado por vtProp.

Comentários

Observação

Essa função deve ser chamada somente em um objeto CWnd que representa um controle OLE.

Para obter mais informações sobre como usar essa função membro com contêineres de controle OLE, consulte o artigo Contêineres de Controle ActiveX: programação de controles ActiveX em um contêiner de controle ActiveX.

CWnd::SetRedraw

Chame SetRedraw para permitir que as alterações sejam redesenhadas ou para impedir que as alterações sejam redesenhadas.

void SetRedraw(BOOL bRedraw = TRUE);

Parâmetros

bRedraw
Especifica o estado do sinalizador de redesenho. Se esse parâmetro for TRUE, o sinalizador de redesenho será definido; se FALSE, o sinalizador será limpo.

Comentários

Essa função membro define ou limpa o sinalizador de redesenho. Enquanto o sinalizador de redesenho estiver limpo, o conteúdo não será atualizado após cada alteração e não será redesenhado até que o sinalizador de redesenho seja definido. Por exemplo, um aplicativo que precisa adicionar vários itens a uma caixa de listagem pode limpar o sinalizador de redesenho, adicionar os itens e, em seguida, definir o sinalizador de redesenho. Por fim, o aplicativo pode chamar a função membro Invalidate ou InvalidateRect para fazer com que a caixa de listagem seja redesenhada.

Exemplo

// Updating a control or window with large amounts of data may cause
// flicker. In such cases it may be better to turn off drawing

//m_list is a member of type CListCtrl
m_List.SetRedraw(FALSE); // turn drawing off regardless of list mode

//
// Update control
//

m_List.SetRedraw(TRUE); // turn drawing back on and update the window

// invalidate the entire control, force painting
m_List.Invalidate();
m_List.UpdateWindow();

CWnd::SetScrollInfo

Chame essa função membro para definir as informações que a estrutura SCROLLINFO mantém sobre uma barra de rolagem.

BOOL SetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE);

Parâmetros

nBar
Especifica se a barra de rolagem é um controle ou parte da área não cliente de uma janela. Se fizer parte da área não cliente, nBar também indicará se a barra de rolagem está posicionada horizontalmente, verticalmente ou ambos. Deve ser um dos seguintes:

  • SB_CTL Contém os parâmetros de um controle de barra de rolagem. O membro de dados m_hWnd deve ser o identificador do controle de barra de rolagem.

  • SB_HORZ Especifica que a janela é uma barra de rolagem horizontal.

  • SB_VERT Especifica que a janela é uma barra de rolagem vertical.

lpScrollInfo
Um ponteiro para uma estrutura SCROLLINFO. Para obter mais informações sobre essa estrutura, consulte o SDK do Windows.

bRedraw
Especifica se a barra de rolagem deve ser redesenhada para refletir a nova posição. Se bRedraw for TRUE, a barra de rolagem será redesenhada. Se for FALSE, não será redesenhada. A barra de rolagem será redesenhada por padrão.

Valor de retorno

Se tiver êxito, o retorno será TRUE. Caso contrário, será FALSE.

Comentários

A estrutura SCROLLINFO contém informações sobre uma barra de rolagem, incluindo as posições de rolagem mínimas e máximas, o tamanho da página e a posição da caixa de rolagem (o polegar). Confira o tópico de estrutura SCROLLINFO no SDK do Windows para mais informações sobre como alterar os padrões de estrutura.

Os manipuladores de mensagens do Windows MFC que indicam a posição da barra de rolagem, CWnd::OnHScroll e CWnd::OnVScroll, fornecem apenas 16 bits de dados de posição. GetScrollInfo e SetScrollInfo fornecem 32 bits de dados de posição da barra de rolagem. Assim, um aplicativo pode chamar GetScrollInfo durante o processamento de CWnd::OnHScrollou CWnd::OnVScroll para obter dados de posição da barra de rolagem de 32 bits.

Observação

CWnd::GetScrollInfo permite que os aplicativos usem posições de barra de rolagem de 32 bits.

CWnd::SetScrollPos

Define a posição atual de uma caixa de rolagem e, se solicitada, redesenha a barra de rolagem para refletir a nova posição da caixa de rolagem.

int SetScrollPos(
    int nBar,
    int nPos,
    BOOL bRedraw = TRUE);

Parâmetros

nBar
Especifica a barra de rolagem a ser definida. Esse parâmetro pode ser qualquer um dos seguintes:

  • SB_HORZ Define a posição da caixa de rolagem na barra de rolagem horizontal da janela.

  • SB_VERT Define a posição da caixa de rolagem na barra de rolagem vertical da janela.

nPos
Especifica a nova posição da caixa de rolagem. Ela deve ficar dentro do intervalo de rolagem.

bRedraw
Especifica se a barra de rolagem deve ser repintada para refletir a nova posição da caixa de rolagem. Se esse parâmetro for TRUE, a barra de rolagem será repintada; se FALSEa barra de rolagem não for repintada.

Valor de retorno

A posição anterior da caixa de rolagem.

Comentários

Configurar bRedraw como FALSE é útil sempre que a barra de rolagem é redesenhada por uma chamada subsequente para outra função.

CWnd::SetScrollRange

Define valores mínimos e máximos de posição para a barra de rolagem fornecida.

void SetScrollRange(
    int nBar,
    int nMinPos,
    int nMaxPos,
    BOOL bRedraw = TRUE);

Parâmetros

nBar
Especifica a barra de rolagem a ser definida. Esse parâmetro pode ser qualquer um dos seguintes valores:

  • SB_HORZ Define o intervalo da barra de rolagem horizontal da janela.

  • SB_VERT Define o intervalo da barra de rolagem vertical da janela.

nMinPos
Especifica a posição mínima de rolagem.

nMaxPos
Especifica a posição máxima de rolagem.

bRedraw
Especifica se a barra de rolagem deve ser redesenhada para refletir a alteração. Se bRedraw for TRUE, a barra de rolagem será redesenhada; se FALSE, a barra de rolagem não será redesenhada.

Comentários

Ele também pode ser usado para ocultar ou mostrar barras de rolagem padrão.

Um aplicativo não deve chamar essa função para ocultar uma barra de rolagem durante o processamento de uma mensagem de notificação da barra de rolagem.

Se a chamada para SetScrollRange seguir imediatamente uma chamada para a função membro SetScrollPos, o parâmetro bRedraw na função membro SetScrollPos deverá ser 0 para impedir que a barra de rolagem seja desenhada duas vezes.

O intervalo padrão para uma barra de rolagem padrão é de 0 a 100. O intervalo padrão para um controle de barra de rolagem está vazio (ambos os valores nMinPos e nMaxPos são 0). A diferença entre os valores especificados por nMinPos e nMaxPos não deve ser maior que INT_MAX.

CWnd::SetTimer

Instala um temporizador do sistema.

UINT_PTR SetTimer(
    UINT_PTR nIDEvent,
    UINT nElapse,
    void (CALLBACK* lpfnTimer)(HWND,
    UINT,
    UINT_PTR,
    DWORD));

Parâmetros

nIDEvent
Especifica um identificador de temporizador diferente de zero. Se o identificador de temporizador for exclusivo, esse mesmo valor será retornado por SetTimer. Caso contrário, SetTimer determina um novo valor exclusivo e o retorna. Para um temporizador de janela (que tem uma função de retorno de chamada NULL), o valor deve ser exclusivo apenas para outros temporizadores de janela associados à janela atual. Para um temporizador de retorno de chamada, o valor deve ser exclusivo para todos os temporizadores em todos os processos. Portanto, quando você cria um temporizador de retorno de chamada, é mais provável que o valor retornado seja diferente do valor especificado.

nElapse
Especifica o intervalo de tempo limite em milissegundos.

lpfnTimer
Especifica o endereço da função de retorno de chamada TimerProc fornecido pelo aplicativo que processa as mensagens WM_TIMER. Se esse parâmetro for NULL, as mensagens WM_TIMER serão colocadas na fila de mensagens do aplicativo e manipuladas pelo objeto CWnd.

Valor de retorno

O identificador de temporizador do novo temporizador se a função for bem-sucedida. Esse valor pode ou não ser igual ao valor passado por meio do parâmetro nIDEvent. Um aplicativo sempre deve passar o valor retornado para a função membro KillTimer para desativar o temporizador. Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Um valor de intervalo é especificado e sempre que o intervalo passa, o sistema coloca uma mensagem WM_TIMER na fila de mensagens de instalação do aplicativo de instalação ou passa a mensagem para uma função de retorno de chamada TimerProc definida pelo aplicativo.

A função de retorno de chamada lpfnTimer não precisa ser nomeada TimerProc, mas deve ser declarada como estática e definida da seguinte maneira.

void CALLBACK TimerProc(
    HWND hWnd,   // handle of CWnd that called SetTimer
    UINT nMsg,   // WM_TIMER
    UINT_PTR nIDEvent,   // timer identification
    DWORD dwTime    // system time);

Exemplo

Este exemplo usa CWnd::SetTimer, CWnd::OnTimer e CWnd::KillTimer para lidar com mensagens WM_TIMER. O primeiro temporizador é configurado para enviar uma mensagem WM_TIMER para a janela de quadro principal a cada 2 segundos em OnStartTimer. O manipulador de eventos OnTimer manipula mensagens WM_TIMER para a janela de quadro principal. Esse método faz com que o alto-falante do computador apite a cada 2 segundos. O segundo temporizador envia uma mensagem para a função de retorno de chamada para cada 3,75 segundos. OnStopTimer interromperá ambos os temporizadores chamando CWnd::KillTimer para cada ID do temporizador.

void CMainFrame::OnStartTimer()
{
   // This timer uses a WM_TIMER message, not a callback.
   // Therefore, the timer is specific to this window.
   // m_nWindowTimer is a UINT_PTR field.
   m_nWindowTimer = SetTimer(1, 2000, NULL);

   // For this demo, we specify an interval that won't overlap
   // with the window timer.
   m_nCallbackTimer = SetTimer(2, 3750, &CMainFrame::MyTimerProc);

   // See whether we got the ID we requested in the first parameter.
#ifdef _DEBUG
   CString str;
   str.Format(_T("m_ncallbackTImer ID = %d"), m_nCallbackTimer);
   TRACE(str);
#endif
}

void CALLBACK CMainFrame::MyTimerProc(
    HWND hWnd,         // handle of CWnd that called SetTimer
    UINT nMsg,         // WM_TIMER
    UINT_PTR nIDEvent, // timer identification
    DWORD dwTime       // system time
)
{
   MessageBeep(0x00000030L); // Windows question sound.
}

void CMainFrame::OnStopTimer()
{
   KillTimer(m_nWindowTimer);
   KillTimer(m_nCallbackTimer);
}

void CMainFrame::OnTimer(UINT nIDEvent)
{
   MessageBeep(0xFFFFFFFF); // Beep

   // Call base class handler.
   CMDIFrameWnd::OnTimer(nIDEvent);
}

CWnd::SetWindowContextHelpId

Chame essa função membro para associar um identificador de contexto de ajuda à janela especificada.

BOOL SetWindowContextHelpId(DWORD dwContextHelpId);

Parâmetros

dwContextHelpId
O identificador de contexto de ajuda.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Se uma janela filho não tiver um identificador de contexto de ajuda, ela herdará o identificador de sua janela proprietária. Da mesma forma, se uma janela de propriedade não tiver um identificador de contexto de ajuda, ela herdará o identificador de sua janela proprietária. Essa herança de identificadores de contexto de ajuda permite que um aplicativo defina apenas um identificador para uma caixa de diálogo e todos os seus controles.

Exemplo

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// Associate a help context id with the control.
// IDC_TESTHELP_CONTROL is the id of the control
// and HIDC_TESTHELP_CONTROL is its help context
// id associated with the control.
CWnd *pWnd = GetDlgItem(IDC_TESTHELP_CONTROL);
pWnd->SetWindowContextHelpId(HIDC_TESTHELP_CONTROL);

CWnd::SetWindowPlacement

Define o estado da exibição e as posições normais (restauradas), minimizadas e maximizadas de uma janela.

BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);

Parâmetros

lpwndpl
Aponta para uma estrutura WINDOWPLACEMENT que especifica o novo estado e as posições de exibição.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

CWnd::SetWindowPos

Altera o tamanho, a posição e a ordem Z de janelas filho, pop-up e de nível superior.

BOOL SetWindowPos(
    const CWnd* pWndInsertAfter,
    int x,
    int y,
    int cx,
    int cy,
    UINT nFlags);

Parâmetros

pWndInsertAfter
Identifica o objeto CWnd que precederá (será maior que) esse objeto CWnd na ordem Z. Esse parâmetro pode ser um ponteiro para um CWnd ou um ponteiro para um dos seguintes valores:

  • wndBottom Coloca a janela na parte inferior da ordem Z. Se esse CWnd for uma janela superior, a janela perderá esse status; o sistema colocará a janela no fim de todas as outras janelas.

  • wndTop Coloca a janela no topo da ordem Z.

  • wndTopMost Coloca a janela acima de todas as janelas não superiores. A janela mantém sua posição superior mesmo quando está desativada.

  • wndNoTopMost Reposiciona a janela na parte superior de todas as janelas não superiores (ou seja, atrás de todas as janelas superiores). Esse sinalizador não terá efeito se a janela já for uma janela não superior.

Para obter regras sobre como usar esse parâmetro, consulte a seção "Comentários" deste tópico.

x
Especifica a nova posição do lado esquerdo da janela.

y
Especifica a nova posição do topo da janela.

cx
Especifica a nova largura da janela.

cy
Especifica a nova altura da janela.

nFlags
Especifica opções de dimensionamento e posicionamento. Esse parâmetro pode ser uma combinação dos seguintes sinalizadores:

  • SWP_DRAWFRAME Desenha um quadro (definido quando a janela foi criada) ao redor da janela.

  • SWP_FRAMECHANGED Envia uma mensagem WM_NCCALCSIZE para a janela, mesmo que o tamanho da janela não esteja sendo alterado. Se esse sinalizador não for especificado, WM_NCCALCSIZE será enviado somente quando o tamanho da janela estiver sendo alterado.

  • SWP_HIDEWINDOW Oculta a janela.

  • SWP_NOACTIVATE Não ativa a janela. Se esse sinalizador não estiver definido, a janela será ativada e movida para o topo do grupo superior ou não superior (dependendo da configuração do parâmetro pWndInsertAfter).

  • SWP_NOCOPYBITS Descarta todo o conteúdo da área do cliente. Se esse sinalizador não for especificado, o conteúdo válido da área do cliente será salvo e copiado de volta para a área do cliente depois que a janela for dimensionada ou reposicionada.

  • SWP_NOMOVERetém a posição atual (ignora os parâmetros x e y).

  • SWP_NOOWNERZORDER Não altera a posição da janela proprietária na ordem Z.

  • SWP_NOREDRAW Não redesenha as alterações. Se esse sinalizador estiver definido, nenhum repositório de nenhum tipo ocorrerá. Isso se aplica à área do cliente, à área não cliente (incluindo as barras de título e rolagem) e qualquer parte da janela pai descoberta como resultado da janela movida. Quando esse sinalizador é definido, o aplicativo deve invalidar ou redesenhar explicitamente todas as partes da janela e da janela pai que devem ser redesenhadas.

  • SWP_NOREPOSITION Igual a SWP_NOOWNERZORDER.

  • SWP_NOSENDCHANGING Impede que a janela receba a mensagem WM_WINDOWPOSCHANGING.

  • SWP_NOSIZE Retém a posição atual (ignora os parâmetros cx e cy).

  • SWP_NOZORDER Retém a ordenação atual (ignora pWndInsertAfter).

  • SWP_SHOWWINDOW Exibe a janela.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

O Windows é solicitado na tela de acordo com sua ordem Z; a janela na parte superior da ordem Z aparece na parte superior de todas as outras janelas na ordem.

Todas as coordenadas para janelas filho são coordenadas do cliente (em relação ao canto superior esquerdo da área do cliente da janela pai).

Uma janela pode ser movida para a parte superior da ordem Z definindo o parâmetro pWndInsertAfter para &wndTopMost e garantindo que o sinalizador SWP_NOZORDER não esteja definido, ou definindo a ordem Z de uma janela para que ela esteja acima de qualquer janela superior existente. Quando uma janela não superior se torna superior, suas janelas de propriedade também se tornam superiores. Seus proprietários não são alterados.

Uma janela superior não será mais superior se for reposicionada para a parte inferior (&wndBottom) da ordem Z ou depois de qualquer janela não superior. Quando uma janela superior se torna não superior, todos os seus proprietários e suas janelas de propriedade também se tornam janelas não superiores.

Se nem SWP_NOACTIVATE ou SWP_NOZORDER for especificado (ou seja, quando o aplicativo solicita que uma janela seja ativada e colocada simultaneamente na ordem Z especificada), o valor especificado em pWndInsertAfter será usado somente nas seguintes circunstâncias:

  • Nem &wndTopMost nem &wndNoTopMost é especificado no parâmetro pWndInsertAfter.

  • Essa janela não é a janela ativa.

Um aplicativo não pode ativar uma janela inativa sem também trazê-la para a parte superior da ordem Z. Os aplicativos podem alterar a ordem Z de uma janela ativada sem restrições.

Uma janela não superior pode ter uma janela superior, mas não vice-versa. Qualquer janela (por exemplo, uma caixa de diálogo) de propriedade de uma janela superior é se torna uma janela superior para garantir que todas as janelas de propriedade permaneçam acima de seu proprietário.

Com as versões 3.1 e posteriores do Windows, as janelas podem ser movidas para a parte superior da ordem Z e bloqueadas lá definindo seus estilos WS_EX_TOPMOST. Essa janela mantém sua posição superior mesmo quando está desativada. Por exemplo, selecionar o comando WinHelp Always On Top torna a janela da Ajuda superior e, em seguida, permanece visível quando você retorna ao seu aplicativo.

Para criar uma janela superior, chame SetWindowPos com o parâmetro pWndInsertAfter igual a &wndTopMost, ou defina o estilo WS_EX_TOPMOST ao criar a janela.

Se a ordem Z contiver qualquer janela com o estilo WS_EX_TOPMOST, uma janela movida com o valor &wndTopMost será colocada na parte superior de todas as janelas não superiores, mas abaixo de qualquer janela superior. Quando um aplicativo ativa uma janela inativa sem o bit WS_EX_TOPMOST, a janela é movida acima de todas as janelas não superiores, mas abaixo de qualquer janela superior.

Se SetWindowPos for chamada quando o parâmetro pWndInsertAfter for &wndBottom e CWnd for uma janela superior, a janela perderá seu status superior (WS_EX_TOPMOST está desmarcada) e o sistema colocará a janela na parte inferior da ordem Z.

Exemplo

void CMyApp::OnHideApplication()
{
   //m_pMainWnd is the main application window, a member of CMyApp
   ASSERT_VALID(m_pMainWnd);

   // hide the application's windows before closing all the documents
   m_pMainWnd->ShowWindow(SW_HIDE);
   m_pMainWnd->ShowOwnedPopups(FALSE);

   // put the window at the bottom of z-order, so it isn't activated
   m_pMainWnd->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
                            SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}

CWnd::SetWindowRgn

Chame essa função membro para definir a região de uma janela.

int SetWindowRgn(
    HRGN hRgn,
    BOOL bRedraw);

Parâmetros

hRgn
Um identificador para uma região.

bRedraw
Se TRUE, o sistema operacional redesenha a janela depois de definir a região; caso contrário, ela não redesenha. Normalmente, defina bRedraw como TRUE se a janela estiver visível. Se definido como TRUE, o sistema envia as mensagens WM_WINDOWPOSCHANGING e WM_WINDOWPOSCHANGED para a janela.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será diferente de zero. Se a função falhar, o valor retornado será zero.

Comentários

As coordenadas da região da janela de uma janela são relativas ao canto superior esquerdo da janela, não à área do cliente da janela.

Após uma chamada bem-sucedida para SetWindowRgn, o sistema operacional é proprietário da região especificada pelo identificador de região hRgn. O sistema operacional não faz uma cópia da região, portanto, não faça mais chamadas de função com esse identificador de região e não feche esse identificador de região.

CWnd::SetWindowText

Define o título da janela como o texto especificado.

void SetWindowText(LPCTSTR lpszString);

Parâmetros

lpszString
Aponta para um objeto CString ou uma cadeia de caracteres terminada em nulo a ser usada como o novo título ou texto de controle.

Comentários

Se a janela for um controle, o texto dentro do controle será definido.

Essa função faz com que uma mensagem WM_SETTEXT seja enviada para esta janela.

Exemplo

// set the text in IDC_EDITNAME
CWnd *pWnd = GetDlgItem(IDC_EDITNAME);
pWnd->SetWindowText(_T("Gerald Samper"));

// Get the text back. CString is convenient, because MFC
// will automatically allocate enough memory to hold the
// text--no matter how large it is.

CString str;
pWnd->GetWindowText(str);
ASSERT(str == _T("Gerald Samper"));

// The LPTSTR override works, too, but it might be too short.
// If we supply a buffer that's too small, we'll only get those
// characters that fit.

TCHAR sz[10];
int nRet = pWnd->GetWindowText(sz, 10);

// Nine characters, plus terminating null
ASSERT(_tcscmp(sz, _T("Gerald Sa")) == 0);
ASSERT(nRet == 9);

// You can query the length of the text without the length of
// the string using CWnd::GetWindowTextLength()
nRet = pWnd->GetWindowTextLength();
ASSERT(nRet == 13);

CWnd::ShowCaret

Mostra o cursor na tela na posição atual do cursor.

void ShowCaret();

Comentários

Uma vez mostrado, o cursor começa a piscar automaticamente.

A função membro ShowCaret mostra o cursor somente se ele tiver uma forma atual e não tiver sido ocultado duas ou mais vezes consecutivamente. Se o cursor não pertencer a essa janela, o cursor não será mostrado.

A ocultação do cursor é cumulativa. Se a função membro HideCaret tiver sido chamada cinco vezes consecutivamente, ShowCaret deverá ser chamada cinco vezes para mostrar o cursor.

O cursor é um recurso compartilhado. A janela deve mostrar o cursor somente quando ele tiver o foco de entrada ou estiver ativo.

Exemplo

Confira o exemplo de CWnd::CreateCaret.

CWnd::ShowOwnedPopups

Mostra ou oculta as janelas pop-up pertencentes à janela.

void ShowOwnedPopups(BOOL bShow = TRUE);

Parâmetros

bShow
Especifica se janelas pop-up devem ser mostradas ou ocultas. Se esse parâmetro for TRUE, todas as janelas pop-up ocultas serão mostradas. Se esse parâmetro for FALSE, todas as janelas pop-up ocultas serão ocultadas.

Exemplo

Confira o exemplo de CWnd::SetWindowPos.

CWnd::ShowScrollBar

Mostra ou oculta uma barra de rolagem.

void ShowScrollBar(
    UINT nBar,
    BOOL bShow = TRUE);

Parâmetros

nBar
Especifica se a barra de rolagem é um controle ou parte da área não cliente de uma janela. Se fizer parte da área não cliente, nBar também indicará se a barra de rolagem está posicionada horizontalmente, verticalmente ou ambas. Deve ser um dos seguintes:

  • SB_BOTH Especifica as barras de rolagem horizontal e vertical da janela.

  • SB_HORZ Especifica que a janela é uma barra de rolagem horizontal.

  • SB_VERT Especifica que a janela é uma barra de rolagem vertical.

bShow
Especifica se o Windows mostra ou oculta a barra de rolagem. Se esse parâmetro for TRUE, a barra de rolagem será mostrada; caso contrário, a barra de rolagem ficará oculta.

Comentários

Um aplicativo não deve chamar ShowScrollBar para ocultar uma barra de rolagem durante o processamento de uma mensagem de notificação da barra de rolagem.

CWnd::ShowWindow

Define o estado de visibilidade da janela.

BOOL ShowWindow(int nCmdShow);

Parâmetros

nCmdShow
Especifica como a CWnd deve ser mostrada. Deve ser um dos seguintes valores:

  • SW_HIDE Oculta essa janela e passa a ativação para outra janela.

  • SW_MINIMIZE Minimiza a janela e ativa a janela de nível superior na lista do sistema.

  • SW_RESTORE Ativa e exibe a janela. Se a janela for minimizada ou maximizada, o Windows a restaurará para seu tamanho e posição originais.

  • SW_SHOW Ativa a janela e a exibe em seu tamanho e posição atuais.

  • SW_SHOWMAXIMIZED Ativa a janela e a exibe como uma janela maximizada.

  • SW_SHOWMINIMIZED Ativa a janela e a exibe como ícone.

  • SW_SHOWMINNOACTIVE Exibe a janela como um ícone. A janela que está ativa no momento permanece ativa.

  • SW_SHOWNA Exibe a janela no seu estado atual. A janela que está ativa no momento permanece ativa.

  • SW_SHOWNOACTIVATE Exibe a janela no seu tamanho e posição mais recente. A janela que está ativa no momento permanece ativa.

  • SW_SHOWNORMAL Ativa e exibe a janela. Se a janela for minimizada ou maximizada, o Windows a restaurará para seu tamanho e posição originais.

Valor de retorno

Diferente de zero se a janela estava visível anteriormente; 0 se o CWnd estava oculto anteriormente.

Comentários

ShowWindow deve ser chamado apenas uma vez por aplicativo para a janela principal com CWinApp::m_nCmdShow. As chamadas subsequentes para ShowWindow devem usar um dos valores listados acima em vez do especificado por CWinApp::m_nCmdShow.

Exemplo

Confira o exemplo de CWnd::CalcWindowRect.

CWnd::SubclassDlgItem

Chame essa função membro para fazer uma "subclasse dinâmica" de um controle criado a partir de um modelo de diálogo e anexe-a a esse objeto CWnd.

BOOL SubclassDlgItem(
    UINT nID,
    CWnd* pParent);

Parâmetros

nID
O ID do controle.

pParent
O pai do controle (geralmente uma caixa de diálogo).

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Quando um controle se torna uma subclasse dinâmica, as mensagens do Windows rotearão as mensagens de mapa de CWnd e chamarão manipuladores de mensagens na primeira classe de CWnd. As mensagens passadas para a classe base serão passadas para o manipulador de mensagens padrão no controle.

Essa função membro anexa o controle do Windows a um objeto CWnd e substitui o as funções WndProc e AfxWndProc do controle. A função armazena o antigo WndProc no local retornado pela função membro GetSuperWndProcAddr.

Exemplo

// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.

// IDC_BUTTON1 is the ID for a button on the
// dialog template used for CMyDlg.
m_MyButton.SubclassDlgItem(IDC_BUTTON1, this);

CWnd::SubclassWindow

Chame essa função membro para tornar uma janela uma "subclasse dinamicamente" e anexá-la a esse objeto CWnd.

BOOL SubclassWindow(HWND hWnd);

Parâmetros

hWnd
Um identificador para a janela.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Quando uma janela se torna uma subclasse dinâmica, as mensagens de janela rotearão as mensagens do mapa de CWnd e chamarão manipuladores de mensagens na primeira classe de CWnd. As mensagens passadas para a classe base serão passadas para o manipulador de mensagens padrão na janela.

Essa função membro anexa o controle do Windows a um objeto CWnd e substitui as funções WndProc e AfxWndProc da janela. A função armazena um ponteiro para o antigo WndProc no objeto CWnd.

Observação

A janela ainda não deve ser anexada a um objeto MFC quando essa função é chamada.

Exemplo

// The following code shows how to subclass the edit control and list box
// controls inside a combo box. It uses WM_CTLCOLOR for subclassing.
// CSuperComboBox represents the combo box
HBRUSH CSuperComboBox::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
   if (nCtlColor == CTLCOLOR_EDIT)
   {
      //Edit control
      if (m_edit.GetSafeHwnd() == NULL)
         m_edit.SubclassWindow(pWnd->GetSafeHwnd());
   }
   else if (nCtlColor == CTLCOLOR_LISTBOX)
   {
      //ListBox control
      if (m_listbox.GetSafeHwnd() == NULL)
         m_listbox.SubclassWindow(pWnd->GetSafeHwnd());
   }

   HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
   return hbr;
}

void CSuperComboBox::OnDestroy()
{
   //unsubclass edit and list box before destruction
   if (m_edit.GetSafeHwnd() != NULL)
      m_edit.UnsubclassWindow();
   if (m_listbox.GetSafeHwnd() != NULL)
      m_listbox.UnsubclassWindow();
   CComboBox::OnDestroy();
}

CWnd::UnlockWindowUpdate

Chame essa função membro para desbloquear uma janela que foi bloqueada com CWnd::LockWindowUpdate.

void UnlockWindowUpdate();

Comentários

Somente uma janela por vez pode ser bloqueada usando LockWindowUpdate. Consulte CWnd::LockWindowUpdate ou a função LockWindowUpdate do Win32 para obter mais informações sobre como bloquear janelas.

CWnd::UnsubclassWindow

Chame essa função membro para definir WndProc de volta para seu valor original e desanexar a janela identificada pelo HWND do objeto CWnd.

HWND UnsubclassWindow();

Valor de retorno

Um identificador para a janela que não foi subclassificada.

Exemplo

Confira o exemplo de CWnd::SubclassWindow.

CWnd::UpdateData

Chame essa função membro para inicializar dados em uma caixa de diálogo ou para recuperar e validar dados de diálogo.

BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

Parâmetros

bSaveAndValidate
Sinalizador que indica se a caixa de diálogo está sendo inicializada (FALSE) ou se os dados estão sendo recuperados (TRUE).

Valor de retorno

Diferente de zero se a operação for bem-sucedida; caso contrário, 0. Se bSaveAndValidate for TRUE, então um valor retornado diferente de zero significa que os dados são validados com êxito.

Comentários

A estrutura chama UpdateData automaticamente com bSaveAndValidate definido como FALSE quando uma caixa de diálogo modal é criada na implementação padrão de CDialog::OnInitDialog. A chamada ocorre antes que a caixa de diálogo esteja visível. A implementação padrão de CDialog::OnOK chama essa função membro com bSaveAndValidate definido como TRUE para recuperar os dados e, se bem-sucedido, fechará a caixa de diálogo. (Se o botão Cancelar for clicado na caixa de diálogo, a caixa de diálogo será fechada sem que os dados sejam recuperados.)

CWnd::UpdateDialogControls

Chame essa função membro para atualizar o estado dos botões de diálogo e outros controles em uma caixa de diálogo ou janela que usa o mecanismo de retorno de chamada ON_UPDATE_COMMAND_UI.

void UpdateDialogControls(
    CCmdTarget* pTarget,
    BOOL bDisableIfNoHndler);

Parâmetros

pTarget
Aponta para a janela de quadro principal do aplicativo e é usado para roteamento de mensagens de atualização.

bDisableIfNoHndler
Sinalizador que indica se um controle que não tem nenhum manipulador de atualização deve ser exibido automaticamente como desabilitado.

Comentários

Se um controle filho não tiver um manipulador e bDisableIfNoHndler for TRUE, o controle filho será desabilitado.

A estrutura chama essa função membro para controles em barras de diálogo ou barras de ferramentas como parte do processamento ocioso do aplicativo.

CWnd::UpdateLayeredWindow

Atualiza a posição, o tamanho, a forma, o conteúdo e a transluscência de uma janela em camadas.

BOOL UpdateLayeredWindow(
    CDC* pDCDst,
    POINT* pptDst,
    SIZE* psize,
    CDC* pDCSrc,
    POINT* pptSrc,
    COLORREF crKey,
    BLENDFUNCTION* pblend,
    DWORD dwFlags);

Parâmetros

pDCDst
Um ponteiro para um contexto de dispositivo para a tela. Ele é usado para correspondência de cores de paleta quando o conteúdo da janela é atualizado. Se pDCDst for NULL, a paleta padrão será usada.

Se pDCSrc for NULL, pDCDst deverá ser NULL.

pptDst
Um ponteiro para uma estrutura POINT que especifica a nova posição da tela da janela em camadas. Se a posição atual não estiver mudando, pptDst poderá ser NULL.

psize
Um ponteiro para uma estrutura SIZE que especifica o novo tamanho da tela da janela em camadas. Se o tamanho atual da janela não estiver mudando, psize poderá ser NULL.

Se pDCSrc for NULL, psize deverá ser NULL.

pDCSrc
Um ponteiro para um controlador de domínio para a superfície que define a janela em camadas. Se a forma e o contexto visual da janela não estiverem mudando, pDCSrc poderá ser NULL.

pptSrc
Ponteiro para uma estrutura POINT que especifica o local da camada no contexto do dispositivo.

Se pDCSrc for NULL, pptSrc deve ser NULL.

crKey
Ponteiro para um valor COLORREF que especifica a chave de cor de transparência a ser usada ao redigir a janela em camadas. Todos os pixels pintados pela janela nessa cor serão transparentes. Para gerar uma COLORREF, use a macro RGB.

pblend
Ponteiro para uma estrutura BLENDFUNCTION que especifica o valor de transparência a ser usado ao compor a janela em camadas.

dwFlags
Especifica uma ação a ser tomada. Esse parâmetro pode usar um dos valores a seguir. Para obter uma lista de valores possíveis, consulte UpdateLayeredWindow.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro emula a funcionalidade da função UpdateLayeredWindow, conforme descrito no SDK do Windows.

CWnd::UpdateWindow

Atualiza a área do cliente enviando uma mensagem WM_PAINT se a região de atualização não estiver vazia.

void UpdateWindow();

Comentários

A função membro UpdateWindow envia uma mensagem WM_PAINT diretamente, ignorando a fila do aplicativo. Se a região de atualização estiver vazia, WM_PAINT não será enviada.

Exemplo

// In this example a rectangle is drawn in a view.
// The OnChangeRect() function changes the dimensions
// of the rectangle and then calls CWnd::Invalidate() so the
// client area of the view will be redrawn next time the
// window is updated.  It then calls CWnd::UpdateWindow
// to force the new rectangle to be painted.

void CMdiView::OnChangeRect()
{
   // Change Rectangle size.
   m_rcBox = CRect(20, 20, 210, 210);

   // Invalidate window so entire client area
   // is redrawn when UpdateWindow is called.
   Invalidate();

   // Update Window to cause View to redraw.
   UpdateWindow();
}

// On Draw function draws the rectangle.
void CMdiView::OnDraw(CDC *pDC)
{
   // Other draw code here.

   pDC->Draw3dRect(m_rcBox, 0x00FF0000, 0x0000FF00);
}

CWnd::ValidateRect

Valida a área do cliente dentro do retângulo especificado removendo esse retângulo da região de atualização da janela.

void ValidateRect(LPCRECT lpRect);

Parâmetros

lpRect
Aponta para um objeto CRect ou estrutura RECT que contém coordenadas de cliente do retângulo a ser removido da região de atualização. Se lpRect for NULL, a janela inteira será validada.

Comentários

A função membro BeginPaint valida automaticamente toda a área do cliente. Nem a função membro ValidateRect nem a ValidateRgn devem ser chamadas se uma parte da região de atualização precisar ser validada antes de WM_PAINT ser gerada.

O Windows continua a gerar mensagens WM_PAINT até que a região de atualização atual seja validada.

CWnd::ValidateRgn

Valida a área do cliente dentro da região especificada removendo essa região da região de atualização atual da janela.

void ValidateRgn(CRgn* pRgn);

Parâmetros

pRgn
Um ponteiro para um objeto CRgn que identifica uma região que define a área a ser removida da região de atualização. Se esse parâmetro for NULL, toda a área do cliente será removida.

Comentários

A região determinada deve ter sido criada anteriormente por uma função de região. As coordenadas de região são consideradas coordenadas do cliente.

A função membro BeginPaint valida automaticamente toda a área do cliente. Nem a função membro ValidateRect nem a ValidateRgn devem ser chamadas se uma parte da região de atualização precisar ser validada antes da próxima mensagem WM_PAINT ser gerada.

CWnd::WindowFromPoint

Recupera a janela que contém o ponto especificado; point deve especificar as coordenadas de tela de um ponto na tela.

static CWnd* PASCAL WindowFromPoint(POINT point);

Parâmetros

point
Especifica um objeto CPoint ou estrutura de dados POINT que define o ponto a ser selecionado.

Valor de retorno

Um ponteiro para o objeto de janela no qual o ponto está. É NULL se não houver janela no ponto determinado. O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

WindowFromPoint não recupera uma janela oculta ou desabilitada, mesmo que o ponto esteja dentro da janela. Um aplicativo deve usar a função membro ChildWindowFromPoint para uma pesquisa não restritiva.

CWnd::WindowProc

Fornece um procedimento do Windows (WindowProc) para um objeto CWnd.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

message
Especifica a mensagem do Windows a ser processada.

wParam
Fornece informações adicionais usadas no processamento da mensagem. O valor desse parâmetro depende da mensagem.

lParam
Fornece informações adicionais usadas no processamento da mensagem. O valor desse parâmetro depende da mensagem.

Valor de retorno

O valor desse parâmetro depende da mensagem.

Comentários

Ele despacha mensagens por meio do mapa da mensagem da janela.

CWnd::WinHelp

Chamado para iniciar o aplicativo WinHelp.

virtual void WinHelp(
    DWORD_PTR dwData,
    UINT nCmd = HELP_CONTEXT);

Parâmetros

dwData
Especifica os dados adicionais. O valor usado depende do valor do parâmetro nCmd.

nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte a função Windows WinHelp no SDK do Windows.

Comentários

Consulte CWinApp::WinHelp para obter mais informações.

CWnd::RegisterTouchWindow

Registra ou cancela o registro do suporte ao toque do Windows.

BOOL RegisterTouchWindow(
    BOOL bRegister = TRUE,
    ULONG ulFlags = 0);

Parâmetros

bRegister
TRUE indica o registro de suporte ao toque do Windows; caso contrário, FALSE.

ulFlags
Um conjunto de sinalizadores de bits que especificam modificações opcionais. Esse campo pode conter 0 ou um dos seguintes valores: TWF_FINETOUCH, TWF_WANTPALM.

Valor de retorno

TRUE se for bem-sucedido, caso contrário, FALSE.

Comentários

CWnd::ResizeDynamicLayout

Chamado pela estrutura quando o tamanho da janela é alterado para ajustar o layout das janelas filho, se o layout dinâmico estiver habilitado para a janela.

virtual void ResizeDynamicLayout();

Comentários

Confira também

Classe CCmdTarget
Gráfico da hierarquia
Classe CFrameWnd
Classe CView