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 On Message . |
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
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
, InvalidateRect
ou 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::OnInitDialog
para 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 CWnd
conté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, NULL
para 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 CRect
ou 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 propriedadeBorderStyle
.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 estiloWS_GROUP
após o primeiro controle pertencem ao mesmo grupo. O próximo controle com o estiloWS_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 estiloWS_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_POSTMSGS
LB_DIR
bandeira. Se o sinalizadorLB_DIR
estiver definido, o Windows colocará as mensagens geradas porDlgDirList
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 sinalizadorDDL_DRIVES
estiver definido, o sinalizadorDDL_EXCLUSIVE
será definido automaticamente. Portanto, para criar uma listagem de diretório que inclua unidades e arquivos, você deve chamarDlgDirList
duas vezes: uma com o sinalizadorDDL_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_POSTMSGS
CB_DIR
bandeira. Se o sinalizadorCB_DIR
estiver definido, o Windows colocará as mensagens geradas porDlgDirListComboBox
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 sinalizadorDDL_DRIVES
estiver definido, o sinalizadorDDL_EXCLUSIVE
será definido automaticamente. Portanto, para criar uma listagem de diretório que inclua unidades e arquivos, você deve chamarDlgDirListComboBox
duas vezes: uma com o sinalizadorDDL_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_OWNDC
ou 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 janelaOWNDC
ouCLASSDC
. SubstituiCS_OWNDC
eCS_CLASSDC
.DCX_CLIPCHILDREN
Exclui as regiões visíveis de todas as janelas filho abaixo da janelaCWnd
.DCX_CLIPSIBLINGS
Exclui as regiões visíveis de todas as janelas irmão acima da janelaCWnd
.DCX_EXCLUDERGN
Exclui a região de recorte identificada porprgnClip
da região visível do contexto do dispositivo retornado.DCX_INTERSECTRGN
Intersecciona a região de recorte identificada porprgnClip
dentro da região visível do contexto do dispositivo retornado.DCX_LOCKWINDOWUPDATE
Permite desenhar mesmo se houver uma chamadaLockWindowUpdate
em vigor que, de outra forma, excluiria essa janela. Esse valor é usado para desenhar durante o acompanhamento.DCX_PARENTCLIP
Usa a região visível da janela pai e ignora os bits de estiloWS_CLIPCHILDREN
eWS_PARENTDC
da janela pai. Esse valor define a origem do contexto do dispositivo como o canto superior esquerdo da janelaCWnd
.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 dadosm_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::OnHScroll
ou 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::InsertMenu
ou 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_MOVE
e 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 filhoCWnd
.GW_HWNDFIRST
SeCWnd
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
SeCWnd
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árioCWnd
.
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
InterpretanIDHiliteItem
como o ID do item de menu (a interpretação padrão).MF_BYPOSITION
InterpretanIDHiliteItem
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
, GetDCEx
ou 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 |
---|---|
![]() |
MB_ICONHAND , MB_ICONSTOP e MB_ICONERROR |
![]() |
MB_ICONQUESTION |
![]() |
MB_ICONEXCLAMATION e MB_ICONWARNING |
![]() |
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 pornUIElement
) deve estar oculto.UIS_INITIALIZE
O elemento de estado da interface do usuário (especificado pornUIElement
) deve ser alterado com base no último evento de entrada. Para obter mais informações, consulte a seção Comentários deWM_CHANGEUISTATE
.UIS_SET
O elemento de estado da interface do usuário (especificado pornUIElement
) 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ãoCTLCOLOR_DLG
Caixa de diálogoCTLCOLOR_EDIT
Controle de ediçãoCTLCOLOR_LISTBOX
Controle de caixa de listagemCTLCOLOR_MSGBOX
Caixa de mensagemCTLCOLOR_SCROLLBAR
Controle de barra de rolagemCTLCOLOR_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:
DBT_DEVICEARRIVAL
Um dispositivo foi inserido e agora está disponível.DBT_DEVICEQUERYREMOVE
A permissão para remover um dispositivo foi solicitada. Qualquer aplicativo pode negar essa solicitação e cancelar a remoção.DBT_DEVICEQUERYREMOVEFAILED
A solicitação para remover um dispositivo foi cancelada.DBT_DEVICEREMOVEPENDING
O dispositivo está prestes a ser removido. Não é possível negar.DBT_DEVICEREMOVECOMPLETE
O dispositivo foi removido.DBT_DEVICETYPESPECIFIC
Evento específico do dispositivo.DBT_CONFIGCHANGED
A configuração atual foi alterada.DBT_DEVNODES_CHANGED
O nó do dispositivo foi 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::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 AddFontResource
ou 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_HASSETSEL
EM_SETSEL
Mensagens.DLGC_UNDEFPUSHBUTTON
Sem o processamento de botão push padrão. (Um aplicativo pode usar esse sinalizador comDLGC_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_WANTCHARS
WM_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âmetronPos
.SB_THUMBTRACK
Arraste a caixa de rolagem para a posição especificada. A posição atual é especificada pelo parâmetronPos
.
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 emnPos
.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 objetoCWnd
.MA_NOACTIVATE
Não ative o objetoCWnd
.MA_ACTIVATEANDEAT
Ative o objetoCWnd
e descarte o evento do mouse.MA_NOACTIVATEANDEAT
Não ative o objetoCWnd
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 mensagensWM_NOTIFY
. Essa mensagem é enviada de um controle para sua janela pai durante a criação de um controle e em resposta à formaNF_REQUERY
dessa mensagem.NF_REQUERY
- A mensagem é uma solicitação para que um controle envie a formaNF_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 mensagensWM_NOTIFY
. Se o parâmetronCommand
forNF_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:
A mensagem
WM_PAINT
Usando a mensagem
WM_PAINT
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, masSIZE_MINIMIZED
nemSIZE_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 objetoCWnd
.SC_HOTKEY
Ative o objetoCWnd
associado à tecla de acesso especificada pelo aplicativo. A palavra de baixa ordemlParam
identifica aHWND
da janela a ser ativada.SC_HSCROLL
Role horizontalmente.SC_KEYMENU
Recupere um menu por meio de um pressionamento de tecla.SC_MAXIMIZE
(ouSC_ZOOM
) Maximize o objetoCWnd
.SC_MINIMIZE
(ouSC_ICON
) Minimize o objetoCWnd
.SC_MOUSEMENU
Recupere um menu por meio de um clique do mouse.SC_MOVE
Mova o objetoCWnd
.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 arquivoSYSTEM.INI
.SC_SIZE
Dimensione o objetoCWnd
.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 ordemlParam
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
, InsertMenu
e 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âmetrodwActionData
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 janelauId
=(UINT)hWndChild
O identificador de uma janela filhouFlags
|=TTF_IDISHWND
O identificador de uma ferramentalpszText
=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 pornUIElement
) deve estar oculto.UIS_INITIALIZE
O elemento de estado da interface do usuário (especificado pornUIElement
) deve ser alterado com base no último evento de entrada. Para obter mais informações, consulte a seção Comentários deWM_UPDATEISTATE
.UIS_SET
O elemento de estado da interface do usuário (especificado pornUIElement
) 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 emnPos
.SB_THUMBTRACK
Arraste a caixa de rolagem para a posição especificada. A posição atual é fornecida emnPos
.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 emnPos
.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 mensagemWM_ERASEBKGND
à janela.Se
PRF_CLIENT
for especificado, envie uma mensagemWM_PRINTCLIENT
à janela.Se
PRF_CHILDREN
estiver definido, envie uma mensagemWM_PRINT
para cada janela filho visível.Se
PRF_OWNED
estiver definido, envie uma mensagemWM_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 mensagemWM_ERASEBKGND
quando a janela é repintada. O sinalizadorRDW_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 mensagemWM_NCPAINT
. O sinalizadorRDW_INVALIDATE
também deve ser especificado; caso contrário,RDW_FRAME
não terá efeito.RDW_INTERNALPAINT
Faz com que uma mensagemWM_PAINT
seja postada na janela, independentemente de a janela conter uma região inválida.RDW_INVALIDATE
InvalidalpRectUpdate
ouprgnUpdate
(apenas um pode não serNULL
). Se ambos foremNULL
, a janela inteira será invalidada.
Os sinalizadores a seguir são usados para validar a janela:
RDW_NOERASE
Suprime todas as mensagens pendentesWM_ERASEBKGND
.RDW_NOFRAME
Suprime todas as mensagens pendentesWM_NCPAINT
. Esse sinalizador deve ser usado comRDW_VALIDATE
e normalmente é usado comRDW_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 internasWM_PAINT
pendentes. Esse sinalizador não afeta as mensagensWM_PAINT
resultantes de áreas inválidas.RDW_VALIDATE
ValidalpRectUpdate
ouprgnUpdate
(apenas um pode não serNULL
). Se ambos foremNULL
, a janela inteira será validada. Esse sinalizador não afeta mensagens internasWM_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_ERASENOW
Faz com que as janelas afetadas (conforme especificado porRDW_ALLCHILDREN
e sinalizadoresRDW_NOCHILDREN
) recebam as mensagensWM_ERASEBKGND
eWM_NCPAINT
, se necessário, antes que a função retorne. MensagensWM_PAINT
são adiadas.RDW_UPDATENOW
Faz com que as janelas afetadas (conforme especificado porRDW_ALLCHILDREN
e sinalizadoresRDW_NOCHILDREN
) recebam as mensagensWM_NCPAINT
,WM_ERASEBKGND
, eWM_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 serNULL
.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 delpRectParam
para a área do cliente denIDLast
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 mensagensWM_ENTERIDLE
para o pai.MLF_NOKICKIDLE
Não envie mensagensWM_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 estruturaRECT
que 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 comSW_INVALIDATE
, apaga a região recém-invalidada enviando uma mensagemWM_ERASEBKGND
para a janela.SW_INVALIDATE
Invalida a região identificada porprgnUpdate
após a rolagem.SW_SCROLLCHILDREN
Rola todas as janelas filho que cruzam o retângulo apontado porlpRectScroll
pelo número de pixels especificados emdx
edy
. O Windows envia uma mensagemWM_MOVE
para todas as janelas filho que cruzam comlpRectScroll
, 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_SYSKEYDOWN
ou 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 dadosm_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::OnHScroll
ou 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 FALSE
a 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 esseCWnd
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 mensagemWM_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âmetropWndInsertAfter
).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_NOMOVE
Retém a posição atual (ignora os parâmetrosx
ey
).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 aSWP_NOOWNERZORDER
.SWP_NOSENDCHANGING
Impede que a janela receba a mensagemWM_WINDOWPOSCHANGING
.SWP_NOSIZE
Retém a posição atual (ignora os parâmetroscx
ecy
).SWP_NOZORDER
Retém a ordenação atual (ignorapWndInsertAfter
).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âmetropWndInsertAfter
.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