Classe CWnd
Fornece a funcionalidade base de todas as classes de janela na Biblioteca de Classes do Microsoft Foundation.
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 o local de tela atual do objeto especificado. |
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 (icônicas). |
CWnd::Attach |
Anexa um identificador Windows a um CWnd objeto. |
CWnd::BeginModalState |
Chame essa função de membro para tornar uma janela de quadro modal. |
CWnd::BeginPaint |
CWnd Prepara-se para pintura. |
CWnd::BindDefaultProperty |
Associa a propriedade de limite 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 |
CWnd Remove 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 modal de uma janela. |
CWnd::Create |
Cria e inicializa a janela filho associada ao CWnd objeto. |
CWnd::CreateAccessibleProxy |
Cria um proxy de Acessibilidade Ativa para o objeto especificado. |
CWnd::CreateCaret |
Cria uma nova forma para o sistema caret e obtém a propriedade do caret. |
CWnd::CreateControl |
Crie um controle ActiveX que será representado em um programa MFC por um CWnd objeto. |
CWnd::CreateEx |
Cria uma janela Windows sobreposta, pop-up ou filho e a anexa a um CWnd objeto. |
CWnd::CreateGrayCaret |
Cria um bloco cinza para o sistema caret e obtém a propriedade do caret. |
CWnd::CreateSolidCaret |
Cria um bloco sólido para o sistema caret e obtém a propriedade do caret. |
CWnd::DeleteTempMap |
Chamado automaticamente pelo CWinApp manipulador de tempo ocioso e exclui todos os objetos temporários CWnd criados por FromHandle . |
CWnd::DestroyWindow |
Destrói a janela Windows anexada. |
CWnd::Detach |
Desanexa um identificador Windows de um CWnd objeto e retorna o identificador. |
CWnd::DlgDirList |
Preenche uma caixa de listagem com uma listagem de arquivo ou diretório. |
CWnd::DlgDirListComboBox |
Preenche a 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 da 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 de quadro de arame e o anima para indicar a abertura de um ícone ou a minimização ou maximização de uma janela. |
CWnd::DrawCaption |
Desenha uma legenda. |
CWnd::DrawMenuBar |
Redesenha a barra de menus. |
CWnd::EnableActiveAccessibility |
Habilita funções definidas pelo Active Accessibility 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 |
Encerra o status modal de uma janela. |
CWnd::EndModalState |
Chame essa função de membro para alterar uma janela de quadro de modal para modelagem. |
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 CWnd objeto quando dado um identificador para uma janela. Se um CWnd objeto não estiver anexado ao identificador, um objeto temporário CWnd será criado e anexado. |
CWnd::FromHandlePermanent |
Retorna um ponteiro para um CWnd objeto quando dado um identificador para uma janela. |
CWnd::get_accChild |
Chamado pela estrutura para recuperar o endereço de uma IDispatch interface para o filho especificado. |
CWnd::get_accChildCount |
Chamado pela estrutura para recuperar o número de filhos pertencentes 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 por 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 da propriedade Help de um objeto. |
CWnd::get_accHelpTopic |
Chamado pela estrutura para recuperar o caminho completo do WinHelp arquivo associado ao objeto especificado e ao identificador do tópico apropriado dentro desse arquivo. |
CWnd::get_accKeyboardShortcut |
Chamado pela estrutura para recuperar a chave de atalho ou a chave 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 IDispatch interface 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 a ID do botão de opção verificado no momento em um grupo de botões. |
CWnd::GetClientRect |
Obtém as dimensões da área do CWnd cliente. |
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 exibição para a área do 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 dc (contexto do dispositivo) para a CWnd janela. |
CWnd::GetDescendantWindow |
Pesquisa todas as janelas descendentes e retorna a janela com a ID especificada. |
CWnd::GetDesktopWindow |
Recupera a janela da área de trabalho Windows. |
CWnd::GetDlgCtrlID |
Se for CWnd uma janela filho, chamar essa função retornará seu valor de ID. |
CWnd::GetDlgItem |
Recupera o controle com a 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 o estilo estendido da janela. |
CWnd::GetFocus |
Recupera o CWnd que atualmente tem o foco de entrada. |
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 |
Recupera o identificador para um ícone. |
CWnd::GetLastActivePopup |
Determina por qual janela pop-up de CWnd propriedade estava mais recentemente ativa. |
CWnd::GetLayeredWindowAttributes |
Recupera a tecla de cor de opacidade e transparência de uma janela em camadas. |
CWnd::GetMenu |
Recupera um ponteiro para o menu especificado. |
CWnd::GetNextDlgGroupItem |
Pesquisa o próximo controle (ou anterior) dentro de um grupo de controles. |
CWnd::GetNextDlgTabItem |
Recupera o primeiro controle com o WS_TABSTOP estilo 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 de 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 CWnd janela de quadro pai do objeto. |
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 this ponteiro for NULL. |
CWnd::GetSafeOwner |
Recupera o proprietário seguro da 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 SCROLLINFO estrutura 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ínima e máxima 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 título 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 o 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 inclui completamente a região de CWnd atualização. |
CWnd::GetUpdateRgn |
Recupera a região de CWnd atualização. |
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 |
Retorna o número de janelas filho associadas. |
CWnd::GetWindowInfo |
Retorna informações sobre a janela. |
CWnd::GetWindowlessChildCount |
Retorna o número de janelas filho sem janelas associadas. |
CWnd::GetWindowPlacement |
Recupera o estado de exibição e as posições normais (restauradas), minimizadas e maximizadas de uma janela. |
CWnd::GetWindowRect |
Obtém as coordenadas de tela de CWnd . |
CWnd::GetWindowRgn |
Recupera uma cópia da região da janela de uma janela. |
CWnd::GetWindowText |
Retorna o texto da janela ou o título da legenda (se tiver um). |
CWnd::GetWindowTextLength |
Retorna o comprimento do texto ou do título da legenda da janela. |
CWnd::HideCaret |
Oculta o caret removendo-o da tela de exibição. |
CWnd::HiliteMenuItem |
Realça ou remove o realce de um item de menu de nível superior (barra de menus). |
CWnd::HtmlHelp |
Chamado para iniciar o aplicativo HTMLHelp. |
CWnd::Invalidate |
Invalida toda a área do 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 determinada adicionando essa região à região de atualização atual. |
CWnd::InvokeHelper |
Invoca um método ou propriedade de controle de 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 destina-se à caixa de diálogo modeless e, em caso afirmativo, processa-a. |
CWnd::IsDlgButtonChecked |
Determina se um controle de botão está marcado. |
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 é minimizado (icônico). |
CWnd::IsTouchWindow |
Especifica se CWnd há suporte a toque. |
CWnd::IsWindowEnabled |
Determina se a janela está habilitada para entrada de mouse e teclado. |
CWnd::IsWindowVisible |
Determina se a janela está visível. |
CWnd::IsZoomed |
Determina se CWnd é maximizado. |
CWnd::KillTimer |
Mata um temporizador do sistema. |
CWnd::LockWindowUpdate |
Desabilita ou reabilita o desenho na janela fornecida. |
CWnd::MapWindowPoints |
Converte (mapas) um conjunto de pontos do espaço de coordenadas CWnd para o espaço de coordenadas de outra janela. |
CWnd::MessageBox |
Cria e exibe uma janela que contém uma mensagem e uma legenda fornecidas pelo aplicativo. |
CWnd::ModifyStyle |
Modifica o estilo da janela atual. |
CWnd::ModifyStyleEx |
Modifica o estilo estendido da janela. |
CWnd::MoveWindow |
Altera a posição e as dimensões de CWnd . |
CWnd::NotifyWinEvent |
Sinaliza o sistema de que ocorreu um evento predefinido. |
CWnd::OnAmbientProperty |
Implementar valores de propriedade ambiente. |
CWnd::OnDrawIconicThumbnailOrLivePreview |
Chamado pela estrutura quando ele precisa obter um bitmap a ser exibido na miniatura da guia Windows 7 ou no cliente para a espiada do aplicativo. |
CWnd::OnHelp |
Manipula a Ajuda F1 dentro do aplicativo (usando o contexto atual). |
CWnd::OnHelpFinder |
Manipula os comandos e ID_DEFAULT_HELP os ID_HELP_FINDER comandos. |
CWnd::OnHelpIndex |
Manipula o ID_HELP_INDEX comando e fornece um tópico padrão da Ajuda. |
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 Windows CloseClipboard 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 processar a mensagem. |
CWnd::PreCreateWindow |
Chamado antes da criação da janela Windows anexada a esse CWnd objeto. |
CWnd::PreSubclassWindow |
Permite que outras subclasses necessárias ocorram antes SubclassWindow de ser chamada. |
CWnd::PreTranslateMessage |
Usado para CWinApp filtrar mensagens de janela antes de serem enviadas para as TranslateMessage funções e DispatchMessage 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 DC de impressora. |
CWnd::RedrawWindow |
Atualiza o retângulo ou região especificado na área do cliente. |
CWnd::RegisterTouchWindow |
Registrar/cancelar o registro da janela Windows suporte ao toque. |
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 envia mensagens para uma janela que está no status modal. |
CWnd::ScreenToClient |
Converte as coordenadas de tela de um determinado ponto ou retângulo na exibição em coordenadas do 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, na 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 CWnd objeto 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 a ID de janela ou controle da 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 tecla 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 CWnd sejam redesenhadas ou impede que as alterações sejam redesenhadas. |
CWnd::SetScrollInfo |
Define informações sobre a 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 determinada. |
CWnd::SetTimer |
Instala um temporizador do sistema que envia uma WM_TIMER mensagem quando disparado. |
CWnd::SetWindowContextHelpId |
Define o identificador de contexto de ajuda. |
CWnd::SetWindowPlacement |
Define o estado do show e as posições normais (restauradas), minimizadas e maximizadas para 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 todas as janelas pop-up pertencentes à janela. |
CWnd::ShowScrollBar |
Exibe ou oculta uma barra de rolagem. |
CWnd::ShowWindow |
Mostra ou oculta a janela. |
CWnd::SubclassDlgItem |
Anexa um controle Windows a um CWnd objeto e o faz rotear mensagens por meio do CWnd mapa de mensagens. |
CWnd::SubclassWindow |
Anexa uma janela a um CWnd objeto e as faz rotear mensagens por meio do CWnd mapa de mensagens. |
CWnd::UnlockWindowUpdate |
Desbloqueia uma janela que estava bloqueada com CWnd::LockWindowUpdate . |
CWnd::UnsubclassWindow |
Desanexa uma janela de um CWnd objeto |
CWnd::UpdateData |
Inicializa ou recupera dados de uma caixa de diálogo. |
CWnd::UpdateDialogControls |
Chame para atualizar o estado dos botões de diálogo e outros controles. |
CWnd::UpdateLayeredWindow |
Atualiza a posição, o tamanho, a forma, o conteúdo e a translúcibilidade de uma janela em camadas. |
CWnd::UpdateWindow |
Atualiza a área do cliente. |
CWnd::ValidateRect |
Valida a área do cliente dentro do retângulo especificado removendo o retângulo da região de atualização atual. |
CWnd::ValidateRgn |
Valida a área do cliente dentro da região fornecida removendo a 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 e validação de dados de caixa de diálogo. 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 On Message função de membro do manipulador de mensagens. |
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 do aplicativo. |
CWnd::OnAskCbFormatName |
Chamado por um aplicativo 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 cancelar CWnd quaisquer modos internos, como captura de 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 (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 LBS_WANTKEYBOARDINPUT estilo em resposta a uma WM_CHAR mensagem. |
CWnd::OnChildActivate |
Chamado para várias janelas filho da interface do documento (MDI) sempre que o tamanho ou a posição das CWnd alterações 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 foi alterado. |
CWnd::OnClose |
Chamado como um sinal que CWnd deve ser fechado. |
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 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 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 é convertido em um caractere morto não sistema (como caracteres de ênfase). |
CWnd::OnDeleteItem |
Chamado quando uma caixa de listagem filho ou caixa de combinação de desenho do proprietário é 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 WindowsEmptyClipboard . |
CWnd::OnDeviceChange |
Notifica um driver de aplicativo ou dispositivo 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, controle de caixa de combinação, controle de caixa de listagem ou menu precisa ser desenhado. |
CWnd::OnDropFiles |
Chamado quando o usuário libera o botão esquerdo do mouse em uma janela que se registrou como o destinatário de arquivos descartados. |
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 modal ou um menu está inserindo um estado ocioso. |
CWnd::OnEnterMenuLoop |
Chamado quando um loop modal de menu foi 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 própria entrada tab-key. |
CWnd::OnGetMinMaxInfo |
Chamado sempre que Windows precisa saber a posição ou dimensões maximizadas, ou o tamanho mínimo ou máximo do acompanhamento. |
CWnd::OnHelpInfo |
Chamado pela estrutura quando o usuário pressiona a tecla F1. |
CWnd::OnHotKey |
Chamado quando o usuário pressiona uma tecla quente em todo o sistema. |
CWnd::OnHScroll |
Chamado quando o usuário clica na barra de rolagem horizontal de CWnd . |
CWnd::OnHScrollClipboard |
Chamado quando um proprietário da Área de Transferência deve rolar a imagem da Área de Transferência, invalidar a seção apropriada e atualizar os valores da barra de rolagem. |
CWnd::OnIconEraseBkgnd |
Chamado quando CWnd é minimizado (icônico) 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 se tornar ativo. |
CWnd::OnInputDeviceChange |
Chamado quando um dispositivo de E/S é adicionado ou removido do sistema. |
CWnd::OnInputLangChange |
Chamado depois que o idioma de entrada de um aplicativo foi alterado. |
CWnd::OnInputLangChangeRequest |
Chamado quando o usuário escolhe um novo idioma de entrada. |
CWnd::OnKeyDown |
Chamado quando uma tecla não sistema é pressionada. |
CWnd::OnKeyUp |
Chamado quando uma chave não-sistema é liberada. |
CWnd::OnKillFocus |
Chamado imediatamente antes CWnd de 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 pressiona o 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 mouse do meio. |
CWnd::OnMButtonDown |
Chamado quando o usuário pressiona o botão do mouse do meio. |
CWnd::OnMButtonUp |
Chamado quando o usuário libera o botão do mouse do meio. |
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 Windows das 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 de menu. |
CWnd::OnMouseActivate |
Chamado quando o cursor está em uma janela inativa e o usuário pressiona um botão do mouse. |
CWnd::OnMouseHover |
Chamado quando o cursor passa o mouse sobre a área do cliente da janela para o 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 Windows NT tratamento de mensagens 4.0. |
CWnd::OnMove |
Chamado depois que a posição do CWnd foi alterada. |
CWnd::OnMoving |
Indica que um usuário está movendo um CWnd objeto. |
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 por Windows toda vez 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 pressiona o 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 mouse do meio enquanto o cursor está dentro de uma área não cliente de CWnd . |
CWnd::OnNcMButtonDown |
Chamado quando o usuário pressiona o botão do mouse do meio 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 mouse do meio 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 para o período de tempo especificado em uma chamada anterior para TrackMouseEvent . |
CWnd::OnNcMouseLeave |
A estrutura chama essa função de 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 pressiona o 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 XBUTTON1 duas vezes ou XBUTTON2 enquanto o cursor está na área não cliente de uma janela. |
CWnd::OnNcXButtonDown |
Chamado quando o usuário pressiona 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 XBUTTON1 ou XBUTTON2 do mouse enquanto o cursor está na área não cliente de uma janela. |
CWnd::OnNextMenu |
Chamado quando a tecla de seta para a 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 um evento ocorreu 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 WM_NOTIFY mensagem de notificação. |
CWnd::OnPaint |
Chamado para repintar uma parte da janela. |
CWnd::OnPaintClipboard |
Chamado quando a área do 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 ocorre um evento de gerenciamento de energia. |
CWnd::OnQueryDragIcon |
Chamado quando um minimizado (icônico) CWnd está prestes a ser arrastado pelo usuário. |
CWnd::OnQueryEndSession |
Chamado quando o usuário optar por encerrar a sessão Windows. |
CWnd::OnQueryNewPalette |
Informa que está prestes CWnd 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 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 pressiona o 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 Win32 SystemParametersInfo altera uma configuração em todo o sistema. |
CWnd::OnShowWindow |
Chamado quando CWnd deve ser oculto ou mostrado. |
CWnd::OnSize |
Chamado após o tamanho da CWnd alteração. |
CWnd::OnSizeClipboard |
Chamado quando o tamanho da área do cliente da janela Visualizador de Área de Transferência foi 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 SetWindowLong função Windows mudou um ou mais estilos da janela. |
CWnd::OnStyleChanging |
Indica que a SetWindowLong função 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 traduz em um caractere morto 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 |
Processe a entrada única de Windows toque. |
CWnd::OnTouchInputs |
Processar entradas de Windows toque. |
CWnd::OnUniChar |
Chamado quando uma tecla é pressionada. Ou seja, a janela atual tem o foco do teclado e uma WM_KEYDOWN mensagem é traduzida pela TranslateMessage função. |
CWnd::OnUnInitMenuPopup |
Chamado quando um menu suspenso ou submenu foi 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 desativado. |
CWnd::OnVKeyToItem |
Chamado por uma caixa de listagem de CWnd propriedade em resposta a uma WM_KEYDOWN mensagem. |
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 apropriada e atualizar os valores da barra de rolagem. |
CWnd::OnWindowPosChanged |
Chamado quando o tamanho, a posição ou a ordem Z foram alterados como resultado de uma chamada ou SetWindowPos 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 ou SetWindowPos 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 Windows, WIN.INI é alterado. |
CWnd::OnWndMsg |
Indica se uma mensagem do Windows foi tratada. |
CWnd::OnXButtonDblClk |
Chamado quando o usuário clica XBUTTON1 duas vezes ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela. |
CWnd::OnXButtonDown |
Chamado quando o usuário pressiona XBUTTON1 ou XBUTTON2 enquanto o cursor está na área do cliente de uma janela. |
CWnd::OnXButtonUp |
Chamado quando o usuário é liberado 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 isso CWnd . |
Comentários
Um CWnd
objeto é distinto de uma janela Windows, mas os dois estão fortemente vinculados. Um CWnd
objeto é criado ou destruído pelo CWnd
construtor e pelo destruidor. A janela Windows, por outro lado, é uma estrutura de dados interna para Windows criada por uma Create
função membro e destruída pelo CWnd
destruidor virtual. A DestroyWindow
função destrói a janela Windows sem destruir o objeto.
A CWnd
classe e o mecanismo de mapa de mensagens ocultam a WndProc
função. As mensagens de notificação de Windows de entrada são roteadas automaticamente por meio do mapa de mensagens para as funções de membro doOnMessageCWnd
adequadas. Você substitui uma função de membro OnMessage para lidar com uma mensagem específica de um membro em suas classes derivadas.
A CWnd
classe também permite criar uma janela filho Windows para seu aplicativo. Derive uma classe de CWnd
, em seguida, adicione variáveis de membro à classe derivada para armazenar dados específicos para seu aplicativo. Implemente funções de membro do manipulador de mensagens e um mapa de mensagem na classe derivada para especificar o que acontece quando as mensagens são direcionadas para a janela.
Você cria uma janela filho em duas etapas. Primeiro, chame o construtor CWnd
para construir o CWnd
objeto e, em seguida, chame a Create
função de membro para criar a janela filho e anexá-la ao CWnd
objeto.
Quando o usuário encerrar a janela filho, destrua o CWnd
objeto ou chame a DestroyWindow
função de membro para remover a janela e destruir suas estruturas de dados.
Na Biblioteca de Classes do Microsoft Foundation, outras classes são derivadas para fornecer tipos de CWnd
janela específicos. Muitas dessas classes, incluindo CFrameWnd
, CMDIFrameWnd
, CMDIChildWnd
e CView
CDialog
, foram projetadas para derivação adicional. As classes de controle derivadas de CWnd
, por CButton
exemplo, 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 uma ID filho (para executar a ação padrão de um dos elementos filho do objeto).
Valor de retorno
Retorna S_OK com êxito, um código de erro COM sobre 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 CWnd
classe derivada 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 ser atingido testado (em unidades de tela).
yTop
Coordenada Y do ponto a ser atingido testado (em unidades de tela).
pvarChild
Recebe informações que identificam o objeto no ponto especificado por xLeft
e yTop
. Veja pvarID
no IAccessible::accHitTest
SDK do Windows.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::accHitTest
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janela, que o MFC manipula).
Para obter mais informações, consulte IAccessible::accHitTest
o SDK do Windows.
CWnd::accLocation
Chamado pela estrutura para recuperar o local de tela atual do objeto especificado.
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 uma ID filho (para obter informações sobre o elemento filho do objeto).
Valor de retorno
Retorna S_OK com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::accLocation
SDK do Windows.
Comentários
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::accLocation
o 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
no IAccessible::accNavigate
SDK do Windows.
varStart
Especifica o objeto inicial. Consulte varStart
no IAccessible::accNavigate
SDK do Windows.
pvarEndUpAt
Recebe informações sobre o objeto de interface do usuário de destino. Consulte pvarEnd
no IAccessible::accNavigate
SDK do Windows.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::accNavigate
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::accNavigate
o 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
no IAccessible::accSelect
SDK do Windows.
varChild
Especifica o objeto a ser selecionado. Esse parâmetro pode ser CHILDID_SELF
(para selecionar o objeto em si) ou uma ID filho (para selecionar um dos filhos do objeto).
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::accSelect
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::accSelect
o 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 completa dos valores possíveis, consulte AnimateWindow
.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoAnimateWindow
, conforme descrito no SDK Windows.
CWnd::ArrangeIconicWindows
Organiza todas as janelas filho minimizadas (icônicas).
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 GetDesktopWindow
função membro recupera um ponteiro para o objeto da janela da área de trabalho.
Para organizar janelas filho MDI icônicas 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 Windows a um CWnd
objeto.
BOOL Attach(HWND hWndNew);
Parâmetros
hWndNew
Especifica um identificador para uma janela Windows.
Valor de retorno
Não zero se tiver êxito; caso contrário, 0.
Exemplo
Este exemplo mostra como usar Attach
e Detach
mapear para 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 de membro para tornar uma janela de quadro modal.
virtual void BeginModalState();
CWnd::BeginPaint
CWnd
Prepara-se para pintura e preenche uma PAINTSTRUCT
estrutura de dados com informações sobre a pintura.
CDC* BeginPaint(LPPAINTSTRUCT lpPaint);
Parâmetros
lpPaint
Aponta para a PAINTSTRUCT
estrutura 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 além do escopo de EndPaint
.
Comentários
A estrutura de pintura contém uma RECT
estrutura de dados 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 Invalidate
funções , InvalidateRect
ou InvalidateRgn
membro 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
enviará uma WM_ONERASEBKGND
mensagem.
Não chame a BeginPaint
função de membro, exceto em resposta a uma WM_PAINT
mensagem. Cada chamada para a BeginPaint
função membro deve ter uma chamada correspondente para a EndPaint
função membro. Se o cursor estiver na área a ser pintada, a BeginPaint
função membro 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 pelo DataSource
, UserName
e Password
SQL
propriedades do controle de fonte de dados.
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 a ID do recurso da janela de host do DCS para recuperar esse ponteiro.
Comentários
O CWnd
objeto 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 a ID do recurso da janela de host do DCS para recuperar esse ponteiro.
Comentários
O CWnd
objeto 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 chama apenas a função Win32 BringWindowToTop
. Chame a SetWindowPos
função 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
e HWND_TOPMOST
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 de janela que pode conter o retângulo do cliente especificado.
virtual void CalcWindowRect(
LPRECT lpClientRect,
UINT nAdjustType = adjustBorder);
Parâmetros
lpClientRect
[dentro, fora] 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 de janela que pode conter o retângulo do cliente especificado.
nAdjustType
[in] Use CWnd::adjustBorder
para calcular coordenadas de janela sem o WS_EX_CLIENTEDGE
estilo; 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 obter 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 de 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 o padrão; caso contrário FALSE
.
Comentários
Observação
O uso dessa função membro não afeta 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 de caixas de diálogo do CDialog::OnInitDialog
centro 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 ao proprietário. 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 o proprietário ou pai, o pAlternateOwner
parâmetro pode ser definido como uma janela válida. Para forçar o centralização em relação à tela, passe o valor retornado como CWnd::GetDesktopWindow
pAlternateOwner
.
Exemplo
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return TRUE;
}
CWnd::ChangeClipboardChain
CWnd
Remove da cadeia de visualizadores da Área de Transferência e faz a janela especificada pelo hWndNext
descendente do CWnd
ancestral na cadeia.
BOOL ChangeClipboardChain(HWND hWndNext);
Parâmetros
hWndNext
Identifica a janela a seguir CWnd
na cadeia de visualizadores de área de transferência.
Valor de retorno
Não 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 de) 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
não for zero, a CheckDlgButton
função membro 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 CheckDlgButton
função envia uma BM_SETCHECK
mensagem 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 verificado.
Comentários
A CheckRadioButton
função envia uma BM_SETCHECK
mensagem 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 quais, se houver, das janelas filho pertencentes ao CWnd
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 janelas filho ignorar. Esse parâmetro pode ser uma combinação dos seguintes valores:
Valor | Significado |
---|---|
CWP_ALL |
Não ignore nenhuma janela filho |
CWP_SKIPINVISIBLE |
Ignorar janelas filho invisíveis |
CWP_SKIPDISABLED |
Ignorar janelas filho desabilitadas |
CWP_SKIPTRANSPARENT |
Ignorar janelas filho transparentes |
Valor de retorno
Identifica a janela filho que contém o ponto. Será NULL
se o ponto determinado 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
* que é 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 POINT
estrutura ou CPoint
objeto que contém as coordenadas do cliente a serem convertidas.
lpRect
Aponta para uma RECT
estrutura ou CRect
objeto que contém as coordenadas do cliente a serem convertidas.
Comentários
A ClientToScreen
função membro usa as coordenadas do POINT
cliente na estrutura ou RECT
na estrutura ou no CPoint
objeto 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 ClientToScreen
função membro pressupõe que o ponto ou retângulo determinado esteja 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çãoCloseWindow
, conforme descrito no SDK do Windows.
CWnd::ContinueModal
Essa função de membro é chamada RunModalLoop
para determinar quando o estado modal deve ser encerrado.
virtual BOOL ContinueModal();
Valor de retorno
Não zero se o loop modal for continuado; 0 quando EndModalLoop
é chamado.
Comentários
Por padrão, ele retorna diferente de zero até EndModalLoop
ser chamado.
CWnd::Create
Cria a janela filho especificada e a anexa ao CWnd
objeto.
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
, sem nome de exibição de janela.
dwStyle
[in] Combinação bit a bit (OR) de estilos de janela. A WS_POPUP
opção 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 CCreateContext
estrutura que é usada para personalizar a arquitetura de exibição de documento para o aplicativo.
Valor de retorno
TRUE
se o método tiver sido bem-sucedido; caso contrário FALSE
.
Comentários
Aviso
CWnd::PreCreateWindow
agora atribui o hMenu
membro de seu CREATESTRUCT
parâmetro ao this
ponteiro se o menu for NULL
e o estilo contiver WS_CHILD
. Para a funcionalidade adequada, verifique se o controle de diálogo tem uma ID que não NULL
é .
Essa alteração corrige uma falha em cenários de interoperabilidade gerenciados/nativos. Uma TRACE
instrução em CWnd::Create
alertas para o desenvolvedor do problema.
Use a AfxRegisterWndClass
função 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 CWnd::OnCreate
método é chamado antes que o Create
método retorne e antes que a janela fique 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 valores a seguir
Valor | Significado |
---|---|
OBJID_CLIENT |
Refere-se à área de cliente da janela. |
lParam
Fornece 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 sistema caret e reivindica a propriedade do caret.
void CreateCaret(CBitmap* pBitmap);
Parâmetros
pBitmap
Identifica o bitmap que define a forma de careta.
Comentários
O bitmap deve ter sido criado anteriormente pela CBitmap::CreateBitmap
função membro, pela CreateDIBitmap
função Windows ou pela CBitmap::LoadBitmap
função membro.
CreateCaret
destrói automaticamente a forma de careta anterior, se houver, independentemente de qual janela possui o caret. Depois de criado, o cursor fica inicialmente oculto. Para mostrar o cursor, a ShowCaret
função de membro deve ser chamada.
O sistema caret é um recurso compartilhado. CWnd
deve criar um ponto de atenção somente quando ele tiver o foco de entrada ou estiver ativo. Ele deve destruir o cuidado 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 de membro para criar um controle ActiveX que será representado no programa MFC por um CWnd
objeto.
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 na 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 for alterada.
dwStyle
estilos Windows. Os estilos disponíveis são listados em Comentários.
rect
Especifica o tamanho e a posição do controle. Pode ser um CRect
objeto ou uma RECT
estrutura.
ppt
Aponta para uma POINT
estrutura ou CPoint
objeto que contém o canto superior esquerdo do controle.
pSize
Aponta para uma SIZE
estrutura ou CSize
objeto que contém o tamanho do controle
*pParentWnd*
Especifica a janela pai do controle. Não deve ser NULL
.
nID
Especifica a ID do controle.
pPersist
Um ponteiro para um CFile
estado persistente que contém o controle. O valor padrão é NULL
, indicando que o controle se inicializa sem restaurar seu estado de nenhum armazenamento persistente. Caso contrário NULL
, ele deverá ser um ponteiro para um CFile
objeto derivado 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. Ele 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 devem pPersist
ser interpretados como IStorage
ou IStream
dados. Se os dados são pPersist
um armazenamento, bStorage
deve ser TRUE
. Se os dados em pPersist
é 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 a criação de 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
A ID de classe exclusiva do controle.
Valor de retorno
Não zero se tiver êxito; caso contrário, 0.
Comentários
CreateControl
é um analógico direto da CWnd::Create
função, que cria a janela para um CWnd
. CreateControl
cria um controle ActiveX em vez de uma janela comum.
Há suporte apenas para um subconjunto dos sinalizadores WindowsdwStyle
:CreateControl
WS_VISIBLE
Cria uma janela inicialmente visível. Obrigatório se você quiser que o controle fique visível imediatamente, como janelas comuns.WS_DISABLED
Cria uma janela 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 umaBorderStyle
propriedade.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 próximo usando as teclas de direção. Todos os controles definidos com oWS_GROUP
estilo após o primeiro controle pertencem ao mesmo grupo. O próximo controle com oWS_GROUP
estilo termina 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 doWS_TABSTOP
estilo.
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 CWnd
objeto.
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
Combinação bit a bit (OR) de estilos de janela estendida; caso contrário NULL
, para o estilo de janela estendida padrão.
lpszClassName
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
, sem nome de exibição de janela.
dwStyle
Combinação bit a bit (OR) 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 da parte superior 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 para a janela pai; caso contrário, o identificador da janela de proprietário se a janela tiver um proprietário.
nIDorHMenu
Para uma janela filho, a ID da janela; caso contrário, a ID de um menu para a janela.
lpParam
Ponteiro para os dados do usuário que são passados para o CWnd::OnCreate
método no lpCreateParams
campo.
rect
O tamanho e o local da janela em relação à tela ou à janela pai.
pParentWnd
Para uma janela filho, ponteiro para a janela pai; caso contrário, ponteiro para a janela do proprietário se a janela tiver um proprietário.
nID
Para uma janela filho, a ID da janela; caso contrário, a ID de um menu para a janela.
Valor de retorno
TRUE
se o método tiver sido bem-sucedido; caso contrário FALSE
.
Comentários
Aviso
CWnd::PreCreateWindow
agora atribui o hMenu
membro de seu CREATESTRUCT
parâmetro ao this
ponteiro se o menu for NULL
e o estilo contiver WS_CHILD
. Para a funcionalidade adequada, verifique se o controle de diálogo tem uma ID que não NULL
é .
Essa alteração corrige uma falha em cenários de interoperabilidade gerenciados/nativos. Uma TRACE
instrução em CWnd::Create
alertas para o desenvolvedor do problema.
O estilo de janela estendida padrão é WS_EX_LEFT
. O estilo de janela padrão é WS_OVERLAPPED
.
Use a AfxRegisterWndClass
função 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 CWnd::OnCreate
método é chamado antes que o CreateEx
método retorne e antes que a janela fique 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 careta do sistema e reivindica a propriedade do caret.
void CreateGrayCaret(
int nWidth,
int nHeight);
Parâmetros
nWidth
Especifica a largura do careta (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 careta (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 de careta pode ser uma linha ou um bloco.
Os parâmetros nWidth
e nHeight
especificam a largura e a altura do caret (em unidades lógicas); a largura exata e a altura (em pixels) dependem do modo de mapeamento.
A largura ou a altura da borda da janela do sistema pode ser recuperada pela GetSystemMetrics
função Windows com o índice e SM_CYBORDER
a SM_CXBORDER
largura do sistema. Usar a largura ou a altura da borda da janela garante que o caret fique visível em uma exibição de alta resolução.
A CreateGrayCaret
função membro destrói automaticamente a forma de careta anterior, se houver, independentemente de qual janela seja a dona do careta. Depois de criado, o cursor fica inicialmente oculto. Para mostrar o cursor, a ShowCaret
função de membro deve ser chamada.
O sistema caret é um recurso compartilhado. CWnd
deve criar um ponto de atenção somente quando ele tiver o foco de entrada ou estiver ativo. Ele deve destruir o cuidado 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 sistema caret e reivindica a propriedade do caret.
void CreateSolidCaret(
int nWidth,
int nHeight);
Parâmetros
nWidth
Especifica a largura do careta (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 careta (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 de careta pode ser uma linha ou um bloco.
Os parâmetros nWidth
e nHeight
especificam a largura e a altura do caret (em unidades lógicas); a largura exata e a altura (em pixels) dependem do modo de mapeamento.
A largura ou a altura da borda da janela do sistema pode ser recuperada pela GetSystemMetrics
função Windows com o índice e SM_CYBORDER
a SM_CXBORDER
largura do sistema. Usar a largura ou a altura da borda da janela garante que o caret fique visível em uma exibição de alta resolução.
A CreateSolidCaret
função membro destrói automaticamente a forma de careta anterior, se houver, independentemente de qual janela seja a dona do careta. Depois de criado, o cursor fica inicialmente oculto. Para mostrar o cursor, a ShowCaret
função de membro deve ser chamada.
O sistema caret é um recurso compartilhado. CWnd
deve criar um ponto de atenção somente quando ele tiver o foco de entrada ou estiver ativo. Ele deve destruir o cuidado 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 Windows não é criada e anexada até que a função ou Create
membro CreateEx
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 qualquer mensagem de janela que um aplicativo não processa. Essa função de 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 qualquer mensagem de janela que um aplicativo não processa.
virtual LRESULT DefWindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parâmetros
message
Especifica a mensagem 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 de 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 CWinApp
objeto.
static void PASCAL DeleteTempMap();
Comentários
Exclui todos os objetos temporários CWnd
criados pela FromHandle
função membro.
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 Windows anexada ao CWnd
objeto.
virtual BOOL DestroyWindow();
Valor de retorno
Não zero se a janela for destruída; caso contrário, 0.
Comentários
A DestroyWindow
função membro 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 WM_DESTROY
e WM_NCDESTROY
envia mensagens para a janela. Ele não destrói o CWnd
objeto.
DestroyWindow
é um espaço reservado para executar a limpeza. Como DestroyWindow
é uma função virtual, ela é mostrada em qualquer CWnd
classe derivada no Modo de Exibição de Classe. Mas mesmo que você substitua essa função em sua CWnd
classe derivada, DestroyWindow
não será necessariamente chamado. Se DestroyWindow
não for chamado no código MFC, você precisará chamá-lo explicitamente em seu próprio código se quiser que ele seja chamado.
Suponha, por exemplo, que você tenha substituído DestroyWindow
em uma CView
classe derivada. Como o código-fonte MFC não chama DestroyWindow
nenhuma de suas CFrameWnd
classes derivadas, seu substituído DestroyWindow
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 DestroyWindow
função membro destrói primeiro as janelas filho e, em seguida, a própria janela.
A DestroyWindow
função membro também destrói caixas de diálogo modeless criadas por CDialog::Create
.
Se o CWnd
ser destruído for uma janela filho e não tiver o WS_EX_NOPARENTNOTIFY
estilo definido, a WM_PARENTNOTIFY
mensagem 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 de Windows de um CWnd
objeto e retorna o identificador.
HWND Detach();
Valor de retorno
Um HWND
para o objeto Windows.
Exemplo
Veja 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 terminada em nulo 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 de uma caixa de listagem. Se nIDListBox
for 0, DlgDirList
suponha que nenhuma caixa de listagem exista e não tente 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 esteja presente.
nFileType
Especifica os atributos dos arquivos a serem exibidos. Pode ser qualquer combinação dos seguintes valores:
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 oLB_DIR
sinalizador estiver definido, Windows colocará as mensagens geradas naDlgDirList
fila do aplicativo; caso contrário, elas serão enviadas diretamente para o procedimento da caixa de diálogo.DDL_DRIVES
Unidades. Se oDDL_DRIVES
sinalizador estiver definido, oDDL_EXCLUSIVE
sinalizador será definido automaticamente. Portanto, para criar uma listagem de diretório que inclua unidades e arquivos, você deve chamarDlgDirList
duas vezes: uma com oDDL_DRIVES
sinalizador definido e uma vez com os sinalizadores para o 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 e arquivos normais do tipo especificado estão listados.
Valor de retorno
Diferente de zero se a função for bem-sucedida; caso contrário, 0.
Comentários
DlgDirList
envia LB_RESETCONTENT
e LB_DIR
mensagens para a caixa de listagem. Ele preenche a caixa de listagem especificada nIDListBox
com os nomes de todos os arquivos que correspondem ao caminho fornecido por lpPathSpec
.
O lpPathSpec
parâmetro tem o seguinte formulário:
[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 comprimento ou lpPathSpec
se 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 também nIDStaticPath
é 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 a 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 terminada em nulo 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 um literal de cadeia de caracteres. 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
suponha que nenhuma caixa de combinação exista e não tente 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 esteja presente.
nFileType
Especifica os atributos de arquivo DOS dos arquivos a serem exibidos. Pode ser qualquer combinação dos seguintes valores:
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 oCB_DIR
sinalizador estiver definido, Windows colocará as mensagens geradas naDlgDirListComboBox
fila do aplicativo; caso contrário, elas serão enviadas diretamente para o procedimento da caixa de diálogo.DDL_DRIVES
Unidades. Se oDDL_DRIVES
sinalizador estiver definido, oDDL_EXCLUSIVE
sinalizador será definido automaticamente. Portanto, para criar uma listagem de diretório que inclua unidades e arquivos, você deve chamarDlgDirListComboBox
duas vezes: uma com oDDL_DRIVES
sinalizador definido e uma vez com os sinalizadores para o 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 e arquivos normais do tipo especificado estão listados.
Valor de retorno
Especifica o resultado da função. Não é zero se uma listagem foi feita, até mesmo uma listagem vazia. Um valor de retorno 0 implica que a cadeia de caracteres de entrada não continha um caminho de pesquisa válido.
Comentários
DlgDirListComboBox
envia CB_RESETCONTENT
e CB_DIR
mensagens para a caixa de combinação. Ele preenche a caixa de listagem da caixa de combinação especificada nIDComboBox
com os nomes de todos os arquivos que correspondem ao caminho fornecido por lpPathSpec
.
O lpPathSpec
parâmetro tem o seguinte formulário:
[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 corresponder a qualquer caractere e um asterisco (*), o que significa corresponder a qualquer número de caracteres.
Se você especificar uma cadeia de caracteres de comprimento zero, 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 também nIDStaticPath
é atualizado com a nova unidade e/ou o nome do diretório.
Depois que a caixa de listagem de caixa de combinação 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 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 a ID do inteiro de uma caixa de listagem na caixa de diálogo.
Valor de retorno
Não zero se tiver êxito; caso contrário, 0.
Comentários
Ele pressupõe que a caixa de listagem foi preenchida pela DlgDirList
função membro e que a seleção é uma letra de unidade, um arquivo ou um nome de diretório.
A DlgDirSelect
função membro copia a seleção para o buffer fornecido por lpString
. Se não houver seleção, lpString
não será alterado.
DlgDirSelect
envia LB_GETCURSEL
e LB_GETTEXT
mensagens 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 da 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 a ID do inteiro da caixa de combinação na caixa de diálogo.
Valor de retorno
Não zero se tiver êxito; caso contrário, 0.
Comentários
Ele pressupõe que a caixa de listagem tenha sido preenchida pela DlgDirListComboBox
função membro e que a seleção seja uma letra de unidade, um arquivo ou um nome de diretório.
A DlgDirSelectComboBox
função membro 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 CB_GETCURSEL
e CB_GETLBTEXT
envia mensagens 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. Ela é chamada pela UpdateData
função membro. 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 CDialog
aplicativo, você precisará substituir essa função de membro se quiser utilizar a troca automática de dados e a validação da estrutura. O assistente Adicionar Variável escreverá uma versão substituída dessa função de membro para você que contém o "mapa de dados" desejado da DDX (troca de dados de caixa de diálogo) e as chamadas de função global de validação (DDV).
Para gerar automaticamente uma versão substituída dessa função de 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 substituído DoDataExchange
, 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 DoDataExchange
função membro substituída 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 dados de caixa de diálogo Exchange e validação. Para obter uma descrição das macros DDX_ e DDV_ geradas pelo assistente Adicionar Variável, consulte a Observação Técnica 26.
CWnd::DragAcceptFiles
Chame essa função de membro de dentro de uma janela, usando um CWnd
ponteiro, na função do CWinApp::InitInstance
aplicativo para indicar que a janela aceita arquivos descartados do Windows Gerenciador de Arquivos ou Explorador de Arquivos.
void DragAcceptFiles(BOOL bAccept = TRUE);
Parâmetros
BAccept
Sinalizador que indica se arquivos arrastados são aceitos.
Comentários
Somente a janela que chama DragAcceptFiles
com o bAccept
parâmetro definido para TRUE
se identificou como capaz de processar a mensagem WM_DROPFILES
de Windows. Por exemplo, em um aplicativo MDI, se o ponteiro da CMDIFrameWnd
janela for usado na chamada de DragAcceptFiles
função, somente a CMDIFrameWnd
janela receberá a WM_DROPFILES
mensagem. Essa mensagem não é enviada para todas as janelas abertas CMDIChildWnd
. Para que uma CMDIChildWnd
janela receba essa mensagem, você deve ligar DragAcceptFiles
com o ponteiro da CMDIChildWnd
janela.
Para interromper o recebimento de arquivos arrastados, chame a função de 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
Posição inicial do mouse, nas coordenadas da tela. A função determina as coordenadas do retângulo de arrastar usando este ponto.
Valor de retorno
Se o usuário moveu o mouse para fora do retângulo de arrastar enquanto segura o botão esquerdo, o valor retornado não é zero.
Se o usuário não moveu o mouse para fora do retângulo de arrastar enquanto segura o botão esquerdo, o valor retornado será zero.
Comentários
Essa função membro emula a funcionalidade da funçãoDragDetect
, conforme descrito no SDK do Windows.
CWnd::DrawAnimatedRects
Desenha um retângulo de quadro de fio e anima-o 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 pela lprcFrom
posição especificada por lprcTo
. O efeito é semelhante a minimizar ou maximizar uma janela.
lprcFrom
Ponteiro para uma RECT
estrutura que especifica o local e o tamanho do ícone ou janela minimizada.
lprcTo
Ponteiro para uma RECT
estrutura que especifica o local e o tamanho da janela restaurada
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoDrawAnimatedRects
, 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 para este contexto de dispositivo.
lprc
Um ponteiro para uma RECT
estrutura 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
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoDrawCaption
, conforme descrito no SDK do Windows.
CWnd::DrawMenuBar
Redesenhe a barra de menus.
void DrawMenuBar();
Comentários
Se uma barra de menus for alterada depois que Windows tiver criado a janela, chame essa função para desenhar a barra de menus alterada.
Exemplo
Consulte 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 de ActiveX; no entanto, se a CWnd
classe derivada contiver elementos de interface do usuário não enganados, o MFC não terá como saber sobre eles. Nesse caso, você deve substituir as funções de membro de Acessibilidade Ativa apropriadas em sua classe e deve chamar EnableActiveAccessibility
o construtor da classe.
CWnd::EnableDynamicLayout
Habilita ou desabilita o gerenciador de layout dinâmico. Quando o layout dinâmico está habilitado, a posição e o tamanho das janelas filho podem ser ajustados dinamicamente quando o usuário redimensiona 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 apenas chamar esse método. Você também precisa fornecer informações de layout dinâmico sobre 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 a D2D.
bUseDCRenderTarget
Espécies que devem usar o destino CDCRenderTarget
de renderização do CONTEXTO do Dispositivo (DC), . 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 da barra de rolagem horizontal associada à janela.SB_VERT
Habilita ou desabilita as setas da barra de rolagem vertical associada à 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
Não 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 dessa 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 TOOLINFO
struct ou structs para a janela.
Observação
Algumas janelas, como CToolBar
, fornecem uma implementação interna de OnToolHitTest
.
Consulte TOOLINFO
o SDK do Windows para obter mais informações sobre essa estrutura.
Simplesmente chamar EnableToolTips
não é suficiente para exibir dicas de ferramenta para seus controles filho, a menos que a janela pai seja derivada de CFrameWnd
. Isso ocorre porque CFrameWnd
fornece um manipulador padrão para a TTN_NEEDTEXT
notificação. Se a janela pai não for derivada, CFrameWnd
ou seja, se for uma caixa de diálogo ou um modo de exibição de formulário, 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 de dica de TTN_NEEDTEXT
ferramenta. Consulte o Dicas da Ferramenta.
As dicas de ferramenta padrão fornecidas para suas janelas EnableToolTips
não têm texto associado a elas. Para recuperar o texto da dica de ferramenta a ser exibida, a TTN_NEEDTEXT
notificação é 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 atribuir algum valor ao pszText
membro da TOOLTIPTEXT
estrutura, 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 EnableWindow
função membro ser chamada. O valor retornado não será zero se a janela tiver sido desabilitada anteriormente. O valor retornado será 0 se a janela foi habilitada anteriormente ou ocorreu 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 de dica de ferramenta para seguir a posição do ponteiro à medida que 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 EnableWindow
função membro ser chamada. O valor retornado não será zero se a janela tiver sido desabilitada anteriormente. O valor retornado será 0 se a janela foi habilitada anteriormente ou ocorreu um erro.
Comentários
Quando a entrada é desabilitada, a entrada, como cliques do mouse e pressionamentos de teclas, é ignorada. Quando a entrada é habilitada, a janela processa todas as entradas.
Se o estado habilitado estiver sendo alterado, a WM_ENABLE
mensagem será enviada antes que essa função retorne.
Se estiver desabilitada, todas as janelas filho serão implicitamente desabilitadas, embora não sejam enviadas WM_ENABLE
mensagens.
Uma janela deve ser habilitada antes de ser ativada. Por exemplo, se um aplicativo estiver exibindo uma caixa de diálogo de modelagem 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 Windows tentar determinar qual janela deve receber mensagens do mouse.
Por padrão, uma janela é habilitada quando é criada. Um aplicativo pode especificar o WS_DISABLED
estilo na Create
função ou CreateEx
membro para criar uma janela inicialmente desabilitada. Depois que uma janela for criada, um aplicativo também poderá usar a EnableWindow
função membro 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 nResult
parâmetro é propagado para o valor retornado de RunModalLoop
.
CWnd::EndModalState
Chame essa função de membro para alterar uma janela de quadro de modal para modelagem.
virtual void EndModalState();
CWnd::EndPaint
Marca o fim da pintura na janela fornecida.
void EndPaint(LPPAINTSTRUCT lpPaint);
Parâmetros
lpPaint
Aponta para uma PAINTSTRUCT
estrutura que contém as informações de pintura recuperadas pela BeginPaint
função membro.
Comentários
A EndPaint
função membro é necessária para cada chamada para a função membro, mas somente após a BeginPaint
conclusão da pintura.
Se o cursor estiver oculto pela BeginPaint
função membro, EndPaint
restaurará o cursor na tela.
Exemplo
Veja 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
as chamadas AfxGetResourceHandle
retornarão o identificador de recurso atual para o executável. Se o aplicativo MFC que usa MFCx0[U][D].DLL, AfxFindResourceHandle
percorre a CDynLinkLibrary
lista de objetos de DLLs de extensão MFC compartilhadas e MFC que procuram o identificador de recurso correto.
CWnd::FilterToolTipMessage
Chamado pela estrutura para exibir mensagens de dica 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 PreTranslateMessage
de 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á se chamarFilterToolTipMessage
. Para obter mais informações, consulte Métodos de Criação de Ferramenta Dicas.
CWnd::FindWindow
Retorna o nível CWnd
superior cuja classe de janela é fornecida e lpszClassName
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 WNDCLASS
estrutura). 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 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 pesquisa 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 pesquisadas.
hwndChildAfter
Manipule para uma janela filho. A pesquisa 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 o RegisterClass
ou RegisterClassEx
.
lpszWindow
Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome 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çãoFindWindowEx
, conforme descrito no SDK do Windows.
CWnd::FlashWindow
Pisca a janela determinada uma vez.
BOOL FlashWindow(BOOL bInvert);
Parâmetros
bInvert
Especifica se o CWnd
estado original deve ser exibido ou retornado. A CWnd
opção é exibida 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
Não zero se a janela estivesse ativa antes da chamada para a FlashWindow
função membro; caso contrário, 0.
Comentários
Para piscar sucessivamente, crie um temporizador do sistema e chame FlashWindow
repetidamente. Exibir os CWnd
meios alterando a aparência de sua barra de título como se estivesse CWnd
mudando de inativo para status 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 bInvert
parâmetro deve ser FALSE
somente quando a janela estiver recebendo o foco de entrada e não estará mais piscando; ele deve estar TRUE
em chamadas sucessivas enquanto aguarda para obter o foco de entrada.
Essa função sempre retorna não zero para janelas minimizadas. Se a janela for 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 fornecida.
BOOL FlashWindowEx(
DWORD dwFlags,
UINT uCount,
DWORD dwTimeout);
Parâmetros
*dwFlags*
Especifica o status flash. Para obter uma lista completa de valores, consulte a FLASHWINFO
estrutura.
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 FlashWindowEx
função. Se a legenda da janela foi desenhada como ativa antes da chamada, o valor retornado não será zero. Caso contrário, o valor retornado será zero.
Comentários
Esse método emula a funcionalidade da funçãoFlashWindowEx
, conforme descrito no SDK do Windows.
CWnd::FromHandle
Retorna um ponteiro para um CWnd
objeto quando um identificador é fornecido para uma janela. Se um CWnd
objeto não estiver anexado ao identificador, um objeto temporário CWnd
será criado e anexado.
static CWnd* PASCAL FromHandle(HWND hWnd);
Parâmetros
hWnd
Uma HWND
janela de Windows.
Valor de retorno
Retorna um ponteiro para um CWnd
objeto quando um identificador é fornecido para uma janela. Se um CWnd
objeto 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 CWnd
objeto quando um identificador é fornecido para uma janela.
static CWnd* PASCAL FromHandlePermanent(HWND hWnd);
Parâmetros
hWnd
Uma HWND
janela de Windows.
Valor de retorno
Um ponteiro para um objeto CWnd
.
Comentários
Se um CWnd
objeto não estiver anexado ao identificador, NULL
será retornado.
Essa função, ao contrário FromHandle
de, não cria objetos temporários.
CWnd::get_accChild
Chamado pela estrutura para recuperar o endereço de uma IDispatch
interface para o filho especificado.
virtual HRESULT get_accChild(
VARIANT varChild,
IDispatch** ppdispChild);
Parâmetros
varChild
Identifica o filho cuja IDispatch
interface deve ser recuperada.
ppdispChild
Recebe o endereço da interface do IDispatch
objeto filho.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accChild
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janela, que o MFC manipula).
Para obter mais informações, consulte IAccessible::get_accChild
o 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
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accChildCount
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janela, que o MFC manipula). Chame a versão da classe base e adicione os elementos filho não desenrolados.
Para obter mais informações, consulte IAccessible::get_accChildCount
o 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 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 uma 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 com êxito, um código de erro COM sobre falha. Consulte Valores retornados em IAccessible::get_accDefaultAction no SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função na CWnd
classe derivada para descrever a ação padrão do objeto.
Para obter mais informações, consulte IAccessible::get_accDefaultAction
o SDK do Windows.
CWnd::get_accDescription
Chamado por 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 uma 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
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accDescription
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada 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
o 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
no IAccessible::get_accFocus
SDK do Windows.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accFocus
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::get_accFocus
o SDK do Windows.
CWnd::get_accHelp
Chamado pela estrutura para recuperar a cadeia de caracteres da propriedade Help de um objeto.
virtual HRESULT get_accHelp(
VARIANT varChild,
BSTR* pszHelp);
Parâmetros
varChild
Especifica se as informações de ajuda a serem recuperadas são as 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 uma 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
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accHelp
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada para fornecer texto de ajuda para seu objeto.
Para obter mais informações, consulte IAccessible::get_accHelp
o SDK do Windows.
CWnd::get_accHelpTopic
Chamado pela estrutura para recuperar o caminho completo do arquivo WinHelp associado ao objeto especificado e ao 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 WinHelp
arquivo associado ao objeto especificado, se houver.
varChild
Especifica se o tópico ajuda a ser recuperado é o 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 uma ID filho (para obter um tópico da Ajuda para um dos elementos filho do objeto).
pidTopic
Identifica o tópico do arquivo de ajuda associado ao objeto especificado. Consulte pidTopic
no IAccessible::get_accHelpTopic
SDK do Windows.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accHelpTopic
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada para fornecer informações de ajuda sobre seu objeto.
Para obter mais informações, consulte IAccessible::get_accHelpTopic
o SDK do Windows.
CWnd::get_accKeyboardShortcut
Chamado pela estrutura para recuperar a chave de atalho ou a chave de acesso do objeto especificado.
virtual HRESULT get_accKeyboardShortcut(
VARIANT varChild,
BSTR* pszKeyboardShortcut);
Parâmetros
varChild
Especifica se o atalho de teclado a ser recuperado é o do objeto ou um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF
(para obter informações sobre o objeto) ou uma ID filho (para obter informações sobre o elemento filho do objeto).
pszKeyboardShortcut
Endereço de um BSTR
que recebe uma cadeia de caracteres localizada que identifica o atalho de teclado ou NULL
se nenhum atalho de teclado está associado ao objeto especificado.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accKeyboardShortcut
SDK do Windows.
Comentários
Essa função faz parte do suporte do Active Accessibility
MFC.
Substitua essa função em sua CWnd
classe derivada para identificar o atalho de teclado do objeto.
Para obter mais informações, consulte IAccessible::get_accKeyboardShortcut
o 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 um dos elementos filho do objeto. Esse parâmetro pode ser CHILDID_SELF
(para obter informações sobre o objeto) ou uma 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
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accName
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função na classe CWnd
derivada para retornar o nome do objeto.
Para obter mais informações, consulte IAccessible::get_accName
o SDK do Windows.
CWnd::get_accParent
Chamado pela estrutura para recuperar a IDispatch
interface do pai do objeto.
virtual HRESULT get_accParent(IDispatch** ppdispParent);
Parâmetros
ppdispParent
Recebe o endereço da interface do IDispatch
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
com êxito, um COM
código de erro sobre falha. Consulte Valores retornados no IAccessible::get_accParent
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
o 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 as informações de função a serem recuperadas são as 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 uma ID filho (para obter informações sobre o elemento filho do objeto).
pvarRole
Recebe as informações da função. Consulte pvarRole
no IAccessible::get_accRole
SDK do Windows.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accRole
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::get_accRole
o 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
no IAccessible::get_accSelection
SDK do Windows.
Valor de retorno
Retorna S_OK com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accSelection
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::get_accSelection
o 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 as informações de estado a serem recuperadas são as 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 uma ID filho (para obter informações sobre o elemento filho do objeto).
pvarState
Recebe informações sobre o estado do objeto. Consulte pvarState
no IAccessible::get_accState
SDK do Windows.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accState
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::get_accState
o 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 as informações de valor a serem recuperadas são as 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 uma ID filho (para obter informações sobre o elemento filho do objeto).
pszValue
Endereço do BSTR
que recebe uma cadeia de caracteres localizada contendo o valor atual do objeto.
Valor de retorno
Retorna S_OK
com êxito, um código de erro COM sobre falha. Consulte Valores retornados no IAccessible::get_accValue
SDK do Windows.
Comentários
Essa função faz parte do suporte à Acessibilidade Ativa do MFC.
Substitua essa função em sua CWnd
classe derivada se você tiver elementos de interface do usuário não enganados (além de controles de ActiveX sem janelas, que o MFC manipula).
Para obter mais informações, consulte IAccessible::get_accValue
o 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 SetActiveWindow
função membro.
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çãoGetAncestor
, conforme descrito no SDK 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. NULL
É se nenhuma janela tiver a captura do mouse.
O valor 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 SetCapture
função membro é 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 caret e as retorna como um CPoint
.
static CPoint PASCAL GetCaretPos();
Valor de retorno
CPoint
objeto que contém as coordenadas da posição do caret.
Comentários
A posição de careta é fornecida nas coordenadas do cliente da CWnd
janela.
CWnd::GetCheckedRadioButton
Recupera a ID do botão de opção verificado 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 marcada ou 0 se nenhuma estiver selecionada.
CWnd::GetClientRect
Copia as coordenadas do cliente da CWnd
área do cliente na estrutura apontada por lpRect
.
void GetClientRect(LPRECT lpRect) const;
Parâmetros
lpRect
Aponta para uma RECT
estrutura ou um CRect
objeto para receber as coordenadas do cliente. O left
e top
os membros serão 0. O right
e bottom
os membros 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 esquerdo da CWnd
área do cliente, as coordenadas do canto superior esquerdo são (0,0).
Exemplo
Veja 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 seja 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 de membro para recuperar um ponteiro para um controle OLE desconhecido.
LPUNKNOWN GetControlUnknown();
Valor de retorno
Um ponteiro para a IUnknown
interface do controle OLE representado por esse CWnd
objeto. Se esse objeto não representar um controle OLE, o valor retornado será NULL
.
Comentários
Você não deve liberar este IUnknown
ponteiro. Normalmente, você usaria para obter uma interface específica do controle.
O ponteiro de interface retornado por não é contado por GetControlUnknown
referência. Não chame IUnknown::Release
o 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 de membro do manipulador de mensagens OnMessage.
static const MSG* PASCAL GetCurrentMessage();
Valor de retorno
Retorna um ponteiro para a MSG
estrutura que contém a mensagem que a janela está processando no momento. Só deve ser chamado quando estiver em um manipulador OnMessage.
Exemplo
Veja 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 CWnd
cliente 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
atribui atributos padrão ao contexto sempre que ele é recuperado. Para contextos de classe e privados, GetDC
deixa os atributos atribuídos anteriormente inalterados. O contexto do dispositivo pode ser usado em funções GDI (interface do dispositivo de elementos gráficos) subsequentes para desenhar na área do cliente.
A menos que o contexto do dispositivo pertença a uma classe de janela, a ReleaseDC
função membro deve ser chamada para liberar o contexto após a pintura.
Um contexto de dispositivo pertencente à CWnd
classe é retornado pela GetDC
função membro se CS_CLASSDC
, CS_OWNDC
ou CS_PARENTDC
foi especificado como um estilo na WNDCLASS
estrutura quando a classe foi registrada.
CWnd::GetDCEx
Recupera o identificador de um contexto de dispositivo para a CWnd
janela.
CDC* GetDCEx(
CRgn* prgnClip,
DWORD flags);
Parâmetros
prgnClip
Identifica uma região de recorte que pode ser combinada com a região visível da janela do cliente.
flags
Pode ter um dos seguintes valores predefinidos:
DCX_CACHE
Retorna um contexto de dispositivo do cache em vez da janela ouCLASSDC
doOWNDC
cache. SubstituiCS_OWNDC
eCS_CLASSDC
.DCX_CLIPCHILDREN
Exclui as regiões visíveis de todas as janelas filho abaixo daCWnd
janela.DCX_CLIPSIBLINGS
Exclui as regiões visíveis de todas as janelas de irmãos acima daCWnd
janela.DCX_EXCLUDERGN
Exclui a região de recorte identificada pelaprgnClip
região visível do contexto de dispositivo retornado.DCX_INTERSECTRGN
Interseca a região de recorte identificada naprgnClip
região visível do contexto do dispositivo retornado.DCX_LOCKWINDOWUPDATE
Permite desenhar mesmo se houver umaLockWindowUpdate
chamada em vigor que, de outra forma, excluiria essa janela. Esse valor é usado para desenho durante o acompanhamento.DCX_PARENTCLIP
Usa a região visível da janela pai e ignora os bits de estilo eWS_PARENTDC
daWS_CLIPCHILDREN
janela pai. Esse valor define a origem do contexto do dispositivo para o canto superior esquerdo daCWnd
janela.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 subsequentes para desenhar na área do cliente.
Essa função, que é uma extensão para a função, fornece a GetDC
um aplicativo mais controle sobre como e se um contexto de dispositivo para uma janela é cortado.
A menos que o contexto do dispositivo pertença a uma classe de janela, a ReleaseDC
função deve ser chamada para liberar o contexto após o desenho. 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 nem CS_OWNDC
, CS_CLASSDC
essa função retornará NULL
.
Um contexto de dispositivo com características especiais é retornado pela GetDCEx
função se o CS_CLASSDC
, CS_OWNDC
ou CS_PARENTDC
estilo foi especificado na WNDCLASS
estrutura quando a classe foi registrada.
Para obter mais informações sobre essas características, consulte a descrição da WNDCLASS
estrutura no SDK Windows.
CWnd::GetDCRenderTarget
Recupera o destino de renderização do contexto do dispositivo (DC) para a CWnd
janela.
CDCRenderTarget* GetDCRenderTarget();
Valor de retorno
O destino de renderização de 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 de membro para localizar a janela descendente especificada pela ID fornecida.
CWnd* GetDescendantWindow(
int nID,
BOOL bOnlyPerm = FALSE) const;
Parâmetros
nID
Especifica o identificador da janela de controle ou filho a ser recuperado.
bOnlyPerm
Especifica se a janela a ser retornada pode ser temporária. Se TRUE
, apenas uma janela permanente pode ser retornada; se FALSE
, a função pode retornar uma janela temporária. Para obter mais informações sobre janelas temporárias, consulte a Nota Técnica 3.
Valor de retorno
Um ponteiro para um CWnd
objeto ou NULL
se nenhuma janela filho for encontrada.
Comentários
Essa função membro pesquisa toda a árvore de janelas filho, não apenas as janelas que são crianças imediatas.
CWnd::GetDesktopWindow
Retorna a janela da área de trabalho Windows.
static CWnd* PASCAL GetDesktopWindow();
Valor de retorno
Identifica a janela da área de trabalho Windows. Esse 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 qual todos os ícones e outras janelas são pintados.
CWnd::GetDlgCtrlID
Retorna o valor da 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 CWnd
janela filho 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 será inválido se for CWnd
uma janela de nível superior.
Exemplo
Veja 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 recuperado.
phWnd
Um ponteiro para uma janela filho.
Valor de retorno
Um ponteiro para o controle fornecido ou a janela filho. Se nenhum controle com a ID de inteiro fornecido pelo nID
parâmetro 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 traduzido.
bSigned
Especifica se o valor a ser recuperado está assinado.
Valor de retorno
Especifica o valor traduzido 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 retornado assinado for desejado, converta-o como um int
tipo.
A função retornará 0 se o número convertido for maior que INT_MAX
(para números assinados) ou UINT_MAX
(para não assinado).
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, retirando espaços extras no início do texto e convertendo dígitos decimais. Ele interrompe a traduçã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 assinado. Caso contrário, ele cria um valor sem sinal.
Ele envia uma WM_GETTEXT
mensagem para o controle.
CWnd::GetDlgItemText
Chame essa função de 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 GetDlgItemText
função membro copia o texto para o local apontado e lpStr
retorna uma contagem do número de bytes que copia.
CWnd::GetDSCCursor
Chame essa função de membro para recuperar um ponteiro para o cursor subjacente definido pelas DataSource
propriedades , UserName
Password
e 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 cuida de chamar AddRef
o ponteiro.
Comentários
Use o ponteiro retornado para definir a ICursor
propriedade 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 ou GetDSCCursor
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 chamando Release
o 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 window 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 o estilo estendido da janela.
DWORD GetExStyle() const;
Valor de retorno
O estilo estendido da janela. Para obter mais informações sobre os estilos de janela estendidos 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 WM_GETFONT
mensagem para a janela para recuperar a fonte atual.
CFont* GetFont() const;
Valor de retorno
Ponteiro para um CFont
objeto anexado à fonte atual da janela.
Comentários
Esse método não tem efeito, a menos que a janela processe a WM_GETFONT
mensagem. Muitas classes MFC derivam do CWnd
processo dessa mensagem porque estão anexadas a uma classe de janela predefinida que inclui um manipulador de mensagens para a WM_GETFONT
mensagem. Para usar esse método, as classes das quais você deriva devem definir um manipulador de CWnd
métodos para a WM_GETFONT
mensagem.
CWnd::GetForegroundWindow
Retorna um ponteiro para a janela de primeiro plano (a janela 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. Pode ser um objeto temporário CWnd
.
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 de membro para obter o identificador para um 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 pixels por 32 pixels se TRUE
; especifica um ícone de 16 pixels por 16 pixels se FALSE
.
Valor de retorno
Um identificador para um ícone. Se não tiver êxito, retornará NULL
.
CWnd::GetLastActivePopup
Determina qual janela pop-up de propriedade 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
Veja o exemplo de CWnd::FindWindow
.
CWnd::GetLayeredWindowAttributes
Recupera a tecla 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 COLORREF
valor 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 é pbAlpha
0, a janela é completamente transparente. Quando a variável referida é pbAlpha
255, a janela é 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 obter uma lista completa dos valores possíveis, consulte 'GetLayeredWindowAttributes.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoGetLayeredWindowAttributes
, conforme descrito no SDK 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 especificada.
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 MENUBARINFO
estrutura que recebe as informações.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoGetMenuBarInfo
, conforme descrito no SDK do Windows.
CWnd::GetNextDlgGroupItem
Pesquisa 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 pesquisa.
bPrevious
Especifica como a função é pesquisar o grupo de controles na caixa de diálogo. Se TRUE
, a função pesquisa o controle anterior no grupo; se FALSE
, ele pesquisa o próximo controle no grupo.
pCurSiteOrWnd
Identifica o COleControlSiteOrWnd
controle. Para obter mais informações sobre COleControlSiteOrWnd
, consulte 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 WS_GROUP
estilo e termina com o último controle que não foi criado com o WS_GROUP
estilo.
Por padrão, a GetNextDlgGroupItem
função membro 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 no grupo.
Observação
Como o MFC dá suporte a controles de ActiveX sem janelas, controles de ActiveX padrão e janelas, referindo-se a um controle por apenas um HWND
não basta. O COleControlSiteOrWnd
objeto inclui informações que identificam o objeto como um controle de ActiveX com janelas, um controle ActiveX sem janelas ou uma janela, da seguinte maneira:
Tipo de janela ou controle | Identificando informações |
---|---|
Controle de ActiveX com janelas | Contém um HWND objeto COleControlSite e associa um objeto COleControlSite a ele. O m_hWnd membro é COleControlSiteOrWnd definido como o HWND controle e o m_pSite membro aponta para o controle.COleControlSite |
Controle de ActiveX sem janelas | Não contém .HWND O m_pSite membro dos COleControlSiteOrWnd pontos para o controle COleControlSite e o m_hWnd membro é NULL . |
Janela Padrão | Contém apenas um HWND . O m_hWnd membro é COleControlSiteOrWnd definido como o HWND da janela e o m_pSite membro é NULL . |
CWnd::GetNextDlgTabItem
Recupera um ponteiro para o primeiro controle que foi criado com o WS_TABSTOP
estilo 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 pesquisa.
pCurSiteOrWnd
Identifica o COleControlSiteOrWnd
controle. Para obter mais informações sobre COleControlSiteOrWnd
, consulte CWnd::GetNextDlgGroupItem
.
bPrevious
Especifica como a função é pesquisar a caixa de diálogo. Se TRUE
, a função pesquisa o controle anterior na caixa de diálogo; se FALSE
, ele pesquisa o próximo controle.
Valor de retorno
Ponteiro para o controle anterior ou próximo que tem o WS_TABSTOP
estilo, 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
Pesquisa a próxima (ou anterior) janela 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 CWnd
objeto 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 (ou anterior) janela 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 (ou anterior) janela de nível superior; se CWnd
for uma janela filho, a função procurará a próxima (ou anterior) janela filho.
CWnd::GetOleControlSite
Recupera o site personalizado para o controle de ActiveX especificado.
COleControlSite* GetOleControlSite(UINT idControl) const;
Parâmetros
idControl
A ID do controle ActiveX.
CWnd::GetOpenClipboardWindow
Recupera o identificador da 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 de 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 do 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
SDK do Windows.
Comentários
A GetParent
função retorna um ponteiro para o pai imediato (se ele existir). Por outro lado, a GetParentOwner
função retorna um ponteiro para a janela pai ou proprietário mais imediata que não é uma janela filho (não tem o WS_CHILD
estilo). Se você tiver uma janela filho dentro de uma janela GetParent
filho e GetParentOwner
retornar resultados diferentes.
CWnd::GetParentFrame
Chame essa função de 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 CFrameWnd
objeto (ou classe derivada) seja encontrado.
CWnd::GetParentOwner
Chame essa função de membro para obter um ponteiro para a janela pai ou a janela do proprietário de uma janela filho.
CWnd* GetParentOwner() const;
Valor de retorno
Um ponteiro para um objeto CWnd
. Se um CWnd
objeto 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ário mais imediata que não é uma janela filho (não tem o WS_CHILD
estilo). A janela de proprietário atual pode ser definida com SetOwner
. Por padrão, o pai de uma janela é seu proprietário.
Por outro lado, a GetParent
função retorna um ponteiro para o pai imediato, seja uma janela filho ou não. Se você tiver uma janela filho dentro de uma janela GetParent
filho e GetParentOwner
retornar resultados diferentes.
CWnd::GetProperty
Chame essa função de 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 obter 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 pvProp
de .
Observação
Essa função deve ser chamada somente em um CWnd
objeto que representa um controle ActiveX.
Para obter mais informações sobre como usar essa função de membro com contêineres de controle de ActiveX, consulte o artigo ActiveX Contêineres de Controle: Programando controles de ActiveX em um contêiner de controle de 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 se o this
ponteiro for NULL
NULL
.
HWND GetSafeHwnd() const;
Valor de retorno
Retorna o identificador da janela de uma janela. Retorna NULL
se não CWnd
estiver anexado a uma janela ou se ela for usada com um NULL
CWnd
ponteiro.
Exemplo
Veja o exemplo de CWnd::SubclassWindow
.
CWnd::GetSafeOwner
Chame essa função de membro para recuperar a janela de proprietário que deve ser usada para caixas de diálogo ou outras janelas modais.
static CWnd* GetSafeOwner(
CWnd* pParent = NULL,
HWND* pWndTop = NULL);
Parâmetros
pParent
Um ponteiro para uma janela pai CWnd
. 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 correta do proprietário para caixas de diálogo e folhas de propriedades em que o proprietário não é especificado.
CWnd::GetScrollBarCtrl
Chame essa função de membro para obter um ponteiro para a janela de rolagem ou divisor de irmão especificada.
virtual CScrollBar* GetScrollBarCtrl(int nBar) const;
Parâmetros
nBar
Especifica o tipo de barra de rolagem. O parâmetro pode usar 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 ou WS_VSCROLL
bits WS_HSCROLL
são definidos durante a criação de uma janela. A CWnd
implementação 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 SCROLLBARINFO
estrutura que recebe as informações.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoGetScrollBarInfo
, conforme descrito no SDK Windows.
CWnd::GetScrollInfo
Chame essa função de membro para recuperar as informações que a SCROLLINFO
estrutura 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ãocliente de uma janela. Se fizer parte da área nãocliente, 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. Om_hWnd
membro de dados 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 SCROLLINFO
estrutura. Consulte o SDK do Windows para obter mais informações sobre essa estrutura.
nMask
Especifica os parâmetros da barra de rolagem a serem recuperados. O padrão especifica uma combinação de SIF_PAGE
, SIF_POS
e SIF_TRACKPOS
SIF_RANGE
. Consulte SCROLLINFO
mais informações sobre os nMask
valores.
Valor de retorno
Se a mensagem tiver recuperado valores, 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 SCROLLINFO
estrutura 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). Consulte o tópico de SCROLLINFO
estrutura no SDK Windows para obter mais informações sobre como alterar os padrões da estrutura.
O MFC Windows manipuladores de mensagens 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
forneça 32 bits de dados de posição da barra de rolagem. Assim, um aplicativo pode chamar GetScrollInfo
durante o CWnd::OnHScroll
processamento ou CWnd::OnVScroll
obter dados de posição da barra de rolagem de 32 bits.
CWnd::GetScrollLimit
Chame essa função de 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 usar 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 usar 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 atual 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 usar 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 inteiro que deve receber a posição mínima.
lpMaxPos
Aponta para a variável inteiro que deve receber a posição máxima.
Comentários
Se CWnd
não tiver uma barra de rolagem, a GetScrollRange
função membro 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 GetSystemMenu
função membro pode ser usado com o CMenu::AppendMenu
, CMenu::InsertMenu
ou CMenu::ModifyMenu
funções 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 WM_SYSCOMMAND
mensagens. 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.
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 WM_INITMENU
mensagens, 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 título especificada.
BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;
Parâmetros
pti
Ponteiro para uma TITLEBARINFO
estrutura que recebe as informações.
Comentários
Essa função membro emula a funcionalidade da funçãoGetTitleBarInfo
, conforme descrito no SDK Windows.
CWnd::GetTopLevelFrame
Chame essa função de 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 CFrameWnd
objeto derivado, essa função retornará NULL
.
CWnd::GetTopLevelOwner
Chame essa função de 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 de membro para recuperar o pai de nível superior da janela.
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 de proprietário atual.
CWnd::GetTopWindow
Pesquisa 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 CWnd
lista vinculada de janelas filho. 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 filhos, essa função retornará NULL
.
CWnd::GetUpdateRect
Recupera as coordenadas do menor retângulo que inclui completamente a região de atualização.
BOOL GetUpdateRect(
LPRECT lpRect,
BOOL bErase = FALSE);
Parâmetros
lpRect
Aponta para um CRect
objeto ou RECT
estrutura que deve receber as coordenadas do cliente da atualização que inclui a região de atualização.
Defina esse parâmetro para NULL
determinar se existe uma região de atualização dentro do CWnd
. Se lpRect
for NULL
, a GetUpdateRect
função membro retornará não zero se existir uma região de atualização e 0 se não existir. Isso fornece uma maneira de determinar se uma WM_PAINT
mensagem resultou de uma área inválida. Não defina esse parâmetro como NULL
Windows versão 3.0 e anterior.
bErase
Especifica se a tela de fundo na região de atualização deve ser apagada.
Valor de retorno
Especifica o status da região de atualização. O valor não será zero se a região de atualização não estiver vazia; caso contrário, 0.
Se o lpRect
parâmetro for definido como NULL
, o valor retornado não será zero se existir uma região de atualização; caso contrário, 0.
Comentários
Se CWnd
foi criado com o CS_OWNDC
estilo e o modo de mapeamento não MM_TEXT
é, a GetUpdateRect
função membro 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 bErase
parâmetro especifica se GetUpdateRect
deve apagar o plano de fundo da região de atualização. Se bErase
estiver 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 WM_ERASEBKGND
mensagem.
O retângulo de atualização recuperado pela BeginPaint
função membro é idêntico ao recuperado pela GetUpdateRect
função membro.
A BeginPaint
função membro valida automaticamente a região de atualização, portanto, qualquer chamada a GetUpdateRect
ser feita imediatamente após uma chamada para BeginPaint
recuperar 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 comuns 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 BeginPaint
função membro valida automaticamente a região de atualização, portanto, qualquer chamada a GetUpdateRgn
ser feita imediatamente após uma chamada para BeginPaint
recuperar 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. Ele pode levar um dos seguintes valores:
GW_CHILD
Identifica aCWnd
primeira janela filho.GW_HWNDFIRST
SeCWnd
for uma janela filho, retornará a primeira janela de 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 de 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 oCWnd
proprietário.
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 de 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 de membro para recuperar o número de janelas filho associadas.
long GetWindowedChildCount();
Valor de retorno
O número de janelas filho associadas ao CWnd
objeto.
CWnd::GetWindowDC
Recupera o contexto de exibição de toda a janela, incluindo barras de legenda, 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 para GetWindowDC
.
Comentários
Um contexto de exibição de janela permite a pintura em CWnd
qualquer lugar, 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
destina-se a ser usado para efeitos especiais de pintura dentro da CWnd
área nãocliente. Não é recomendável pintar em áreas não comuns de qualquer janela.
A GetSystemMetrics
função Windows pode ser usada para recuperar as dimensões de várias partes da área nãocliente, como a barra de legendas, o menu e as barras de rolagem.
Após a conclusão da pintura, a ReleaseDC
função membro 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 WINDOWINFO
estrutura.
Comentários
Essa função membro emula a funcionalidade da funçãoGetWindowInfo
, conforme descrito no SDK 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 janelas associadas ao CWnd
objeto.
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 WINDOWPLACEMENT
estrutura que recebe as informações de estado e posição do show.
Valor de retorno
Diferente de zero se a função for bem-sucedida; caso contrário, 0.
Comentários
O flags
membro da WINDOWPLACEMENT
estrutura recuperada por essa função é sempre 0. Se CWnd
for maximizado, o showCmd
membro é WINDOWPLACEMENT
SW_SHOWMAXIMIZED
. Se a janela for minimizada, ela será SW_SHOWMINIMIZED
. Caso contrário, é SW_SHOWNORMAL
.
CWnd::GetWindowRect
Copia as dimensões do retângulo delimitador do CWnd
objeto para a estrutura apontada por lpRect
.
void GetWindowRect(LPRECT lpRect) const;
Parâmetros
lpRect
Aponta para um CRect
objeto ou umaRECT
estrutura 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 de membro para obter a região da janela de uma janela.
int GetWindowRgn(HRGN hRgn)const;
Parâmetros
hRgn
Um identificador para 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 é mais de 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 CWnd
título da legenda (se ele tiver um) no buffer apontado por lpszStringBuf
ou para a cadeia de caracteres rString
de destino.
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 especificados nMaxCount
, ela será truncada.
rString
Um CString
objeto 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 CWnd
objeto for um controle, a GetWindowText
função membro copiará o texto dentro do controle em vez de copiar a legenda.
Essa função membro faz com que a WM_GETTEXT
mensagem seja enviada ao CWnd
objeto.
Exemplo
Veja o exemplo de CWnd::SetWindowText
.
CWnd::GetWindowTextLength
Retorna o comprimento do título da legenda do CWnd
objeto.
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 GetWindowTextLength
função membro retornará o comprimento do texto dentro do controle em vez da legenda.
Essa função membro faz com que a WM_GETTEXTLENGTH
mensagem seja enviada ao CWnd
objeto.
Exemplo
Veja o exemplo de CWnd::SetWindowText
.
CWnd::HideCaret
Oculta o careta 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 ShowCaret
função membro. Ocultar o careta não destrói sua forma atual.
Ocultar é cumulativo. Se HideCaret
tiver sido chamada cinco vezes seguidas, a ShowCaret
função membro deverá ser chamada cinco vezes antes que o cursor seja mostrado.
CWnd::HiliteMenuItem
Realça ou remove o destaque de um item de menu de nível superior (barra de menus).
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 nHilite
parâmetro.
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
. Os valores podem ser combinados usando o operador bit a bit OR
. Esses valores têm estes significados:
MF_BYCOMMAND
nIDHiliteItem
Interpreta como a ID do item de menu (a interpretação padrão).MF_BYPOSITION
nIDHiliteItem
Interpreta 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. Não zero se o item foi realçado; caso contrário, 0.
Comentários
Os MF_HILITE
sinalizadores e os sinalizadores MF_UNHILITE
só podem ser usados com essa função de membro; eles não podem ser usados com a CMenu::ModifyMenu
função de membro.
CWnd::HtmlHelp
Chame essa função de membro para invocar o aplicativo HTMLHelp.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parâmetros
dwData
Especifica dados adicionais. O valor usado depende do valor do nCmd
parâmetro.
nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o dwData
parâmetro, consulte o uCommand
parâmetro descrito na Referência da 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 de uma janela.
void InitDynamicLayout();
Comentários
Não chame esse método diretamente.
CWnd::Invalidate
Invalida toda a área de cliente de CWnd
.
void Invalidate(BOOL bErase = TRUE);
Parâmetros
bErase
Especifica se o plano de fundo dentro da região de atualização deve ser apagado.
Comentários
A área do cliente é marcada para pintura quando a próxima WM_PAINT
mensagem ocorre. A região também pode ser validada antes que uma WM_PAINT
mensagem ocorra pela ValidateRect
função ou ValidateRgn
membro.
O bErase
parâmetro 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 será apagado quando a BeginPaint
função de membro for chamada; se bErase
estiver FALSE
, o plano de fundo permanecerá inalterado. Se bErase
for TRUE
para qualquer parte da região de atualização, a tela de fundo em toda a região, não apenas na parte fornecida, será apagada.
Windows envia uma WM_PAINT
mensagem sempre que a CWnd
região de atualização não está vazia e não há outras mensagens na fila do aplicativo para essa janela.
Exemplo
Consulte o exemplo de CWnd::UpdateWindow
.
CWnd::InvalidateRect
Invalida a área do cliente dentro do retângulo especificado adicionando esse retângulo à região de CWnd
atualização.
void InvalidateRect(
LPCRECT lpRect,
BOOL bErase = TRUE);
Parâmetros
lpRect
Aponta para um CRect
objeto ou umaRECT
estrutura 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 o plano de fundo dentro da região de atualização deve ser apagado.
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 WM_PAINT
mensagem é enviada. As áreas invalidadas se acumulam na região de atualização até que a região seja processada quando a próxima WM_PAINT
chamada ocorrer ou até que a região seja validada pela função ou ValidateRgn
membroValidateRect
.
O bErase
parâmetro 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 será apagado quando a BeginPaint
função de membro for chamada; se bErase
estiver FALSE
, o plano de fundo permanecerá inalterado. Se bErase
for TRUE
para qualquer parte da região de atualização, a tela de fundo em toda a região será apagada, não apenas na parte fornecida.
Windows envia uma WM_PAINT
mensagem sempre que a CWnd
região de atualização não está vazia e não há outras mensagens na fila do aplicativo para essa janela.
CWnd::InvalidateRgn
Invalida a área do cliente dentro da região fornecida adicionando-a à região de atualização atual de CWnd
.
void InvalidateRgn(
CRgn* pRgn,
BOOL bErase = TRUE);
Parâmetros
pRgn
Um ponteiro para um CRgn
objeto que identifica a região a ser adicionada à região de atualização. Supõe-se que a região tenha coordenadas de cliente. Se esse parâmetro for NULL
, toda a área do cliente será adicionada à região de atualização.
bErase
Especifica se o plano de fundo dentro da região de atualização deve ser apagado.
Comentários
A região invalidada, juntamente com todas as outras áreas na região de atualização, é marcada para pintura quando a WM_PAINT
mensagem é enviada em seguida. As áreas invalidadas se acumulam na região de atualização até que a região seja processada quando uma WM_PAINT
mensagem for enviada em seguida ou até que a região seja validada pela função ou ValidateRgn
membroValidateRect
.
O bErase
parâmetro 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 será apagado quando a BeginPaint
função de membro for chamada; se bErase
estiver FALSE
, o plano de fundo permanecerá inalterado. Se bErase
for TRUE
para qualquer parte da região de atualização, a tela de fundo em toda a região, não apenas na parte fornecida, será apagada.
Windows envia uma WM_PAINT
mensagem sempre que a CWnd
região de atualização não está vazia e não há outras mensagens na fila do aplicativo para essa janela.
A região determinada deve ter sido criada anteriormente por uma das funções de região.
CWnd::InvokeHelper
Chame essa função de membro para invocar o método ou a propriedade controle de ActiveX especificado pordwDispID
, 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 a ser invocada.
wFlags
Sinalizadores que descrevem o contexto da chamada para IDispatch::Invoke
.
vtRet
Especifica o tipo do valor retornado. Para obter 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 caracteres terminada em nulo de bytes especificando os tipos dos parâmetros a seguir pbParamInfo
. Para obter 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 pbParamInfo
parâmetro especifica os tipos dos parâmetros passados para o método ou propriedade. A lista de variáveis de argumentos é representada pela ...
declaração de sintaxe.
Essa função converte os parâmetros em VARIANTARG
valores e invoca o IDispatch::Invoke
método no controle ActiveX. Se a chamada falhar IDispatch::Invoke
, essa função gerará uma exceção. Se o SCODE
(código de status) retornado por IDispatch::Invoke
é DISP_E_EXCEPTION
, essa função lança um COleException
objeto, caso contrário, ele gera um COleDispatchException
.
Observação
Essa função deve ser chamada apenas em um CWnd
objeto que representa um controle ActiveX.
Para obter mais informações sobre como usar essa função de membro com contêineres de controle de ActiveX, consulte o artigo ActiveX Contêineres de Controle: Controles de ActiveX de Programação em um contêiner de controle de 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 não será 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 CWnd
objeto 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 de membro para determinar se a mensagem fornecida destina-se a uma caixa de diálogo modeless; se for, essa função processará a mensagem.
BOOL IsDialogMessage(LPMSG lpMsg);
Parâmetros
lpMsg
Aponta para uma MSG
estrutura que contém a mensagem a ser verificada.
Valor de retorno
Especifica se a função membro processou a mensagem fornecida. Não será zero se a mensagem tiver sido processada; caso contrário, 0. Se o retorno for 0, chame a CWnd::PreTranslateMessage
função membro da classe base para processar a mensagem. Em uma substituição da CWnd::PreTranslateMessage
função membro, 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 IsDialogMessage
função 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 pelas IsDialogMessage
TranslateMessage
funções 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
Não zero se o controle determinado for verificado e 0 se ele não estiver marcado. Somente botões de opção e caixas de seleção podem ser verificados. Para botões de três estados, o valor retornado poderá ser 2 se o botão estiver indeterminado. Essa função membro retorna 0 para uma cabeçada.
Comentários
Se o botão for um controle de três estados, a função membro determinará se ele está esmaecido, verificado 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
Especifica se CWnd
é minimizado (icônico).
BOOL IsIconic() const;
Valor de retorno
Não zero se CWnd
for 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
há suporte a toque.
BOOL IsTouchWindow() const;
Valor de retorno
TRUE
se CWnd
tiver suporte ao 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
Não 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
Não zero se CWnd
estiver visível (tem o WS_VISIBLE
conjunto de bits de estilo e a janela pai está visível). Como o valor retornado reflete o estado do bit de WS_VISIBLE
estilo, o valor retornado pode não ser zero, embora CWnd
seja totalmente obscurecido por outras janelas.
Comentários
Uma janela possui um estado de visibilidade indicado pelo WS_VISIBLE
bit de estilo. Quando esse bit de estilo é definido com uma chamada para a ShowWindow
função membro, a janela é exibida e o desenho subsequente para a janela é exibido desde que a janela tenha o conjunto de bits de estilo.
Qualquer desenho em uma janela que tenha o WS_VISIBLE
estilo não será exibido se a janela estiver coberta por outras janelas ou for cortada 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
Não zero se CWnd
for maximizado; caso contrário, 0.
CWnd::KillTimer
Mata o evento de temporizador identificado pela nIDEvent
chamada anterior para 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 não será zero se o evento tiver sido morto. Será 0 se a KillTimer
função membro não tiver encontrado 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
Veja 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 essa janela.
Valor de retorno
Não zero se a função for bem-sucedida. Será 0 se ocorrer uma falha.
Comentários
Não chame esse método diretamente.
CWnd::LockWindowUpdate
Desabilita o desenho na janela fornecida.
BOOL LockWindowUpdate();
Valor de retorno
Não zero se a função for bem-sucedida. Será 0 se ocorrer uma falha ou se a LockWindowUpdate
função tiver sido usada para bloquear outra janela.
Comentários
Não é possível mover uma janela bloqueada. Somente uma janela pode ser bloqueada por vez. Para desbloquear uma janela bloqueada com LockWindowUpdate
, chame UnlockWindowUpdate
.
Se um aplicativo com uma janela bloqueada (ou qualquer janela filho bloqueada) chamar a GetDC
função , GetDCEx
ou BeginPaint
Windows, a função chamada retornará um contexto de dispositivo cuja região visível está vazia. Isso ocorrerá até que o aplicativo desbloqueie a janela chamando a UnlockWindowUpdate
função membro.
Enquanto as atualizações de janela estão bloqueadas, o sistema controla o retângulo delimitador de qualquer operação de desenho para contextos de dispositivo associados a uma janela bloqueada. Quando o desenho é reencável, esse retângulo delimitador é invalidado na janela bloqueada e nas janelas filho para forçar uma eventual WM_PAINT
mensagem a atualizar a tela. Se nenhum desenho tiver ocorrido enquanto as atualizações da janela estiverem bloqueadas, nenhuma área será invalidada.
A LockWindowUpdate
função membro não torna a janela determinada invisível e não limpa o bit de WS_VISIBLE
estilo.
CWnd::m_hWnd
O identificador da janela Windows anexada a issoCWnd
.
HWND m_hWnd;
Comentários
O m_hWnd
membro de dados é uma variável pública do tipo HWND
.
CWnd::MapWindowPoints
Converte (mapas) um conjunto de pontos do espaço de coordenadas para CWnd
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 Windows 3.1 e posterior.
lpPoint
Um ponteiro para uma matriz de POINT
estrutura que contém o conjunto de pontos a serem convertidos.
nCount
Especifica o número de POINT
estruturas 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 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 CString
objeto ou cadeia de caracteres com término nulo que contém a mensagem a ser exibida.
lpszCaption
Aponta para um CString
objeto ou cadeia de caracteres com término nulo a ser usado para a legenda da caixa de mensagem. Se lpszCaption
for NULL
, a legenda padrão "Erro" é usada.
nType
Especifica o conteúdo e o comportamento da caixa de mensagem.
Valor de retorno
Esse método utiliza a MessageBox
função conforme definido no SDK 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 de membro para modificar o estilo de uma janela.
BOOL ModifyStyle(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parâmetros
dwRemove
Especifica 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
Não zero se o estilo foi modificado com êxito; caso contrário, 0.
Comentários
Estilos a serem adicionados ou removidos podem ser combinados usando o operador OR (|
) bit a bit. 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
não for zero, ModifyStyle
chamará a função SetWindowPos
de API Windows e redesenhará a janela combinando nFlags
com os quatro sinalizadores predefinidos a seguir:
SWP_NOSIZE
Mantém o tamanho atual.SWP_NOMOVE
Mantém a posição atual.SWP_NOZORDER
Mantém a ordem Z atual.SWP_NOACTIVATE
Não ativa a janela.
Para modificar os estilos estendidos de uma janela, consulte ModifyStyleEx
.
Observação
Para alguns estilos em determinados controles (o ES_READONLY
estilo no controle de edição, por exemplo), ModifyStyle
pode não alterar corretamente o estilo porque o controle pode precisar executar 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 de membro para modificar o estilo estendido de uma janela.
BOOL ModifyStyleEx(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parâmetros
dwRemove
Especifica estilos estendidos a serem removidos durante a modificação de estilo.
dwAdd
Especifica 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
Não zero se o estilo foi modificado com êxito; caso contrário, 0.
Comentários
Estilos a serem adicionados ou removidos podem ser combinados usando o operador OR (|
bit a bit). Consulte os tópicos Estilos de Janela Estendidos neste livro e CreateWindowEx
no SDK Windows para obter informações sobre os estilos estendidos disponíveis
Se nFlags
não for zero, ModifyStyleEx
chamará a função SetWindowPos
de API Windows e redesenhará a janela combinando nFlags
com os quatro sinalizadores predefinidos a seguir:
SWP_NOSIZE
Mantém o tamanho atual.SWP_NOMOVE
Mantém a posição atual.SWP_NOZORDER
Mantém a ordem Z atual.SWP_NOACTIVATE
Não ativa a janela.
Para modificar janelas usando estilos de janela regulares, consulte 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 da parte superior do CWnd
.
nWidth
Especifica a nova largura do CWnd
.
nHeight
Especifica a nova altura do CWnd
.
bRepaint
Especifica se CWnd
deve ser repintado. Se TRUE
, CWnd
recebe uma WM_PAINT
mensagem em seu OnPaint
manipulador de mensagens como de costume. Se esse parâmetro for FALSE
, não ocorrerá nenhum tipo de repositório. Isso se aplica à área do cliente, à área nãocliente (incluindo o título e as barras de rolagem) e a qualquer parte da janela pai descoberta como resultado da CWnd
movimentação de '. Quando esse parâmetro é FALSE
, o aplicativo deve invalidar ou redesenhar explicitamente qualquer parte da CWnd
janela pai que deve ser redesenhada.
lpRect
O CRect
objeto ou RECT
estrutura que especifica o novo tamanho e a posição.
Comentários
Para um objeto de nível CWnd
superior, os parâmetros e y
os x
parâmetros são relativos ao canto superior esquerdo da tela. Para um objeto filho CWnd
, eles são relativos ao canto superior esquerdo da área de cliente da janela pai.
A MoveWindow
função envia a WM_GETMINMAXINFO
mensagem. Lidar com essa mensagem oferece CWnd
a oportunidade de modificar os valores padrão para as maiores e menores janelas possíveis. Se os parâmetros para a MoveWindow
função membro excederem esses valores, os valores poderão ser substituídos pelos valores mínimos ou máximos no WM_GETMINMAXINFO
manipulador.
Exemplo
Veja 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 o evento que ocorreu. Esse 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 é a ID filho do elemento que gerou o evento.
Comentários
Essa função membro emula a funcionalidade da funçãoNotifyWinEvent
, conforme descrito no SDK Windows.
CWnd::OnActivate
A estrutura chama essa função de membro quando um CWnd
objeto está sendo ativado ou desativado.
afx_msg void OnActivate(
UINT nState,
CWnd* pWndOther,
BOOL bMinimized);
Parâmetros
nState
Especifica se a origem 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, pelo uso da interface do teclado para selecionar a janela).WA_CLICKACTIVE
A janela está sendo ativada por um clique do mouse.
pWndOther
Ponteiro para a CWnd
ativação ou desativação. O ponteiro pode ser NULL
, e pode ser temporário.
bMinimized
Especifica o estado minimizado do CWnd
ser ativado ou desativado. Um valor de TRUE
indica que a janela é minimizada.
Se TRUE
, o CWnd
está sendo ativado; caso contrário, desativado.
Comentários
Se o CWnd
objeto for ativado com um clique do mouse, ele também receberá uma OnMouseActivate
chamada de função membro.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro para todas as janelas de nível superior da tarefa que está sendo ativada 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 origem 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 da ID do thread. Se bActive
for TRUE
, dwThreadID
identifica o thread que possui o CWnd
ser desativado. Se bActive
for, dwThreadID
identifica o thread que possui o CWnd
que está FALSE
sendo ativado.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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
A ID de expedição da propriedade ambiente solicitada.
pvar
Ponteiro para uma estrutura alocada por VARIANT
chamador, por meio da qual o valor da propriedade 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 de 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 CWnd
objeto 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 cmd
seção do lParam
parâmetro 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 uDevice
seção do lParam
parâmetro de WM_APPCOMMAND
.
nKey
[in] Indica todas as chaves 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 chaves na dwKeys
seção do lParam
parâmetro de WM_APPCOMMAND
. Para obter mais informações, consulte a subtítulo "Parâmetros de Mensagem" em Sobre a entrada do mouse.
Comentários
Esse método recebe a WM_APPCOMMAND
notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando a Área de Transferência contém um identificador de dados para o CF_OWNERDISPLAY
formato (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 de membro e copie o nome do CF_OWNERDISPLAY
formato no buffer especificado, não excedendo o número máximo de bytes especificados.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro para informar CWnd
para cancelar qualquer modo interno.
afx_msg void OnCancelMode();
Comentários
Se o CWnd
objeto tiver o foco, sua OnCancelMode
função de membro será chamada quando uma caixa de diálogo ou uma caixa de mensagem for exibida. Isso dá a CWnd
oportunidade de cancelar modos como a captura do mouse.
A implementação padrão responde chamando a ReleaseCapture
função Windows. Substitua essa função de membro em sua classe derivada para lidar com outros modos.
CWnd::OnCaptureChanged
A estrutura chama essa função de 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 ReleaseCapture
função Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 removido 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 CWnd
objeto que recebe uma OnChangeCbChain
chamada deve usar a SendMessage
função Windows para enviar a WM_CHANGECBCHAIN
mensagem para a próxima janela na cadeia de visualizadores de área de transferência (o identificador retornado porSetClipboardViewer
). Se hWndRemove
for a próxima janela na cadeia, a janela especificada pela 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 (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 membro emula a funcionalidade da WM_CHANGEUISTATE
mensagem, conforme descrito no SDK do Windows.
CWnd::OnChar
A estrutura chama essa função de membro quando um pressionamento de tecla é convertido em um caractere não sistema.
afx_msg void OnChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parâmetros
nChar
Contém o valor do código de caractere da chave.
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 chave.
nFlags
Contém o código de verificação, o código de transição de chave, o estado da chave 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 chave pressionada. |
16-23 | Especifica o código de verificação. O valor depende do OEM (fabricante de equipamento original) |
24 | Especifica se a chave é uma chave 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 chave estendida; caso contrário, é 0. |
25-28 | Usado internamente por 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 chave anterior. O valor será 1 se a chave estiver inativa antes do envio da mensagem ou se for 0 se a chave estiver ativada. |
31 | Especifica o estado de transição. O valor será 1 se a tecla estiver sendo liberada ou se for 0 se a tecla estiver sendo pressionada. |
Comentários
Essa função é chamada antes da OnKeyUp
função membro e depois que a OnKeyDown
função membro é 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 chaves pressionadas e OnChar
chamadas geradas, as informações geralmente nFlags
não são úteis para aplicativos. As informações se nFlags
aplicam somente à chamada mais recente à OnKeyUp
função de membro ou à OnKeyDown
função de membro que precede a chamada para OnChar
.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL corretas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 LBS_WANTKEYBOARDINPUT
estilo envia ao proprietário uma WM_CHARTOITEM
mensagem em resposta a uma WM_CHAR
mensagem.
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 de 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 pela 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 CWnd
objeto 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 de 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 Windows enviado para uma janela pai.
wParam
O wparam associado à mensagem.
lParam
O lparam associado à mensagem.
pLResult
Um ponteiro para um valor a ser retornado do procedimento de janela do pai. Esse ponteiro será NULL
se nenhum valor retornado for esperado.
Valor de retorno
Não 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 de membro diretamente.
A implementação padrão dessa função de membro retorna 0, o que significa que o pai deve lidar com a mensagem.
Substitua essa função de membro para estender a maneira como um controle responde às mensagens de notificação.
CWnd::OnClipboardUpdate
A estrutura chama essa função de membro quando o conteúdo da área de transferência foi alterado.
afx_msg void OnClipboardUpdate();
CWnd::OnClose
A estrutura chama essa função de membro como um sinal de que o aplicativo ou o CWnd
aplicativo deve ser encerrado.
afx_msg void OnClose();
Comentários
As chamadas DestroyWindow
de implementação padrão .
CWnd::OnColorizationColorChanged
A estrutura chama esse membro quando a política de renderização para a área nãocliente foi 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 do formulário 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 WM_DWMNCRENDERINGCHANGED
mensagem de notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 tecla de acelerador é traduzido.
virtual BOOL OnCommand(
WPARAM wParam,
LPARAM lParam);
Parâmetros
wParam
A palavra de wParam
baixa ordem identifica a ID de comando do item de menu, controle ou acelerador. A palavra de alta ordem especifica a mensagem de wParam
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 ordem alta 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á diferente de zero se processar essa mensagem; caso contrário, 0.
Comentários
OnCommand
processa o mapa de mensagens para notificação de controle e ON_COMMAND
entradas e chama a função de membro apropriada.
Substitua essa função de membro em sua classe derivada para manipular a WM_COMMAND
mensagem. Uma substituição não processará o mapa da mensagem, a menos que a classe OnCommand
base seja chamada.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro para todas as janelas de nível superior quando 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 gasto atualmente Windows compactação de memória com o 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 CWnd
objeto 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 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 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 de 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 filho.
afx_msg int OnCompareItem(
int nIDCtl,
LPCOMPAREITEMSTRUCT lpCompareItemStruct);
Parâmetros
nIDCtl
O identificador do controle que enviou a WM_COMPAREITEM
mensagem.
lpCompareItemStruct
Contém um ponteiro longo para uma COMPAREITEMSTRUCT
estrutura de dados 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 | Item 1 e item 2 classificam o mesmo. |
1 | O item 1 classifica após o item 2. |
Comentários
Se uma caixa de combinação ou lista for criada com o estilo ou LBS_SORT
estiloCBS_SORT
, Windows enviará uma mensagem ao proprietário da caixa de combinação ou da caixa de listagem WM_COMPAREITEM
sempre que o aplicativo adicionar um novo item.
Dois itens na caixa de combinação ou listagem são reformados em uma COMPAREITEMSTRUCT
estrutura apontada por lpCompareItemStruct
. OnCompareItem
deve retornar um valor que indica qual dos itens deve aparecer antes do outro. Normalmente, Windows faz essa chamada várias vezes até determinar a posição exata do novo item.
Se o hwndItem
membro da COMPAREITEMSTRUCT
estrutura pertencer a um CListBox
objeto ou CComboBox
objeto, a CompareItem
função virtual da classe apropriada será chamada. Substitua CComboBox::CompareItem
ou CListBox::CompareItem
em sua classe ou CComboBox
derivada CListBox
para fazer a comparação de item.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de 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 WM_DWMCOMPOSITIONCHANGED
notificação, que é descrita no SDK Windows.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 no botão direito do mouse (clicado com o botão direito do mouse) na janela.
afx_msg void OnContextMenu(
CWnd* pWnd,
CPoint pos);
Parâmetros
pWnd
Manipule até a janela na qual o usuário clicou com o botão direito do mouse. Essa 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 DefWindowProc
função. Se a janela for uma janela filho, DefWindowProc
envie 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 CWnd
objeto que está enviando os dados.
pCopyDataStruct
Um ponteiro para uma COPYDATASTRUCT
estrutura que contém os dados que estão sendo enviados.
Valor de retorno
Retorna TRUE
se o aplicativo receptor aceitar os dados com êxito. 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 de recebimento 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 de recebimento não deve liberar a memória associada à estrutura.
Se o aplicativo receptor precisar de acesso aos dados depois que essa função retornar, 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 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 de membro quando um aplicativo solicita que a janela Windows seja criada chamando a função ou CreateEx
membroCreate
.
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
Parâmetros
lpCreateStruct
Aponta para uma CREATESTRUCT
estrutura que contém informações sobre o CWnd
objeto que está sendo criado.
Valor de retorno
OnCreate
deve retornar 0 para continuar a criação do CWnd
objeto. Se o aplicativo retornar -1, a janela será destruída.
Comentários
O CWnd
objeto recebe essa chamada depois que a janela é criada, mas antes de ficar visível. OnCreate
é chamado antes que a Create
função ou CreateEx
membro retorne.
Substitua essa função de membro para executar qualquer inicialização necessária de uma classe derivada.
A CREATESTRUCT
estrutura 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 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 de 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 solicita 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
Editar controleCTLCOLOR_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 SetTextColor
função membro 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 CTLCOLOR_EDIT
códigos e na mensagem e CTLCOLOR_MSGBOX
chame a CDC::SetBkColor
função em resposta ao CTLCOLOR_EDIT
código.
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 com uma CComboBox
substituição dessa OnCtlColor
verificação CTLCOLOR_LISTBOX
no nCtlColor
parâmetro. Neste manipulador, a SetBkColor
função membro 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 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 Visual Studio para adicionar um manipulador de mensagens para WM_CTLCOLOR
. Como alternativa, você pode adicionar manualmente uma ON_WM_CTLCOLOR()
entrada 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 de membro quando a OnKeyUp
função membro e as OnKeyDown
funções membro são chamadas.
afx_msg void OnDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parâmetros
nChar
Especifica o valor do caractere de chave morta.
nRepCnt
Especifica a contagem de repetição.
nFlags
Especifica o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto, conforme mostrado na lista a seguir:
Valor | Descrição |
---|---|
0-7 | Código de verificação (valor dependente de OEM). Byte baixo de palavra de alta ordem. |
8 | Chave estendida, como uma chave de função ou uma chave no teclado numérico (1 se for uma chave estendida; caso contrário, 0). |
9-10 | Não usado. |
11-12 | Usado internamente por 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 chave anterior (1 se a chave estiver inativa antes da chamada, 0 se a chave estiver ativada). |
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 chave morta. Uma chave morta é uma chave, como o caractere umlaut (ponto duplo), que é combinado com outros caracteres para formar um caractere composto. Por exemplo, o caractere umlaut-O consiste na chave morta, umlaut e na chave O.
Um aplicativo normalmente usa para fornecer aos usuários OnDeadChar
comentários sobre cada tecla pressionada. Por exemplo, um aplicativo pode exibir o destaque na posição atual do caractere sem mover o cursor.
Como não há necessariamente uma correspondência um-para-um entre chaves pressionadas e OnDeadChar
chamadas, as informações geralmente nFlags
não são úteis para aplicativos. As informações se nFlags
aplicam somente à chamada mais recente à OnKeyUp
função membro ou à OnKeyDown
função membro que precede a OnDeadChar
chamada.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL direitas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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 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 porCComboBox::DeleteString
, CListBox::DeleteString
, ou CComboBox::ResetContent
CListBox::ResetContent
.
afx_msg void OnDeleteItem(
int nIDCtl,
LPDELETEITEMSTRUCT lpDeleteItemStruct);
Parâmetros
nIDCtl
O identificador do controle que enviou a WM_DELETEITEM
mensagem.
lpDeleteItemStruct
Especifica um ponteiro longo para uma DELETEITEMSTRUCT
estrutura de dados que contém informações sobre o item da caixa de listagem excluído.
Comentários
Se o hwndItem
membro da DELETEITEMSTRUCT
estrutura pertencer a uma caixa de combinação ou caixa de listagem, a DeleteItem
função virtual da classe apropriada será chamada. Substitua a DeleteItem
função membro 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 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 de membro para informar o CWnd
objeto de que ele está sendo destruído.
afx_msg void OnDestroy();
Comentários
OnDestroy
é chamado depois que o CWnd
objeto é removido da tela.
OnDestroy
é chamado primeiro para o CWnd
ser destruído, em seguida, para as janelas filho de CWnd
como eles são destruídos. Pode-se supor que todas as janelas filho ainda existam enquanto OnDestroy
são executadas.
Se o CWnd
objeto que está sendo destruído faz parte da cadeia de visualizadores de área de transferência (definida chamando a SetClipboardViewer
função membro), a CWnd
cadeia de visualizadores de área de transferência deve ser removida chamando a ChangeClipboardChain
função membro antes de retornar da OnDestroy
função.
CWnd::OnDestroyClipboard
A estrutura chama essa função de membro para o proprietário da Área de Transferência quando a Área de Transferência é esvaziada por meio de uma chamada para a EmptyClipboard
função 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 DBT_DEVICEREMOVEPENDING
mensagem 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 DBT_DEVICEQUERYREMOVE
mensagem antes de fazê-lo.
O nEvent
parâmetro pode ser um destes valores:
DBT_DEVICEARRIVAL
Um dispositivo foi inserido e agora está disponível.DBT_DEVICEQUERYREMOVE
A permissão para remover um dispositivo é 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 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 de membro para todos os objetos de nível CWnd
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 WIN.INI
de inicialização Windows.
Comentários
Os aplicativos que lidam com a WM_DEVMODECHANGE
mensagem 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 OnWinIniChange
função é chamada.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 SetClipboardViewer
função membro precisam responder a essa chamada.
Cada janela que recebe uma OnDrawClipboard
chamada deve chamar a SendMessage
função Windows para passar uma WM_DRAWCLIPBOARD
mensagem para a próxima janela na cadeia de visualizadores de área de transferência. O identificador da próxima janela é retornado pela SetClipboardViewer
função membro; ele pode ser modificado em resposta a uma OnChangeCbChain
chamada de função de membro.
CWnd::OnDrawIconicThumbnailOrLivePreview
Chamado pela estrutura quando ele precisa obter um bitmap a ser exibido na miniatura da guia Windows 7 ou no cliente para a espiada do aplicativo.
virtual void OnDrawIconicThumbnailOrLivePreview(
CDC& dc,
CRect rect,
CSize szRequiredThumbnailSize,
BOOL bIsThumbnail,
BOOL& bAlphaChannelSet);
Parâmetros
dc
Especifica o contexto do dispositivo.
rect
Especifica o retângulo delimitador da área a ser renderizada.
szRequiredThumbnailSize
Especifica o tamanho da miniatura de destino. Deve ser ignorado se bIsThumbnail
for FALSE
.
bIsThumbnail
Especifica se esse método é chamado para miniatura icônica 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 no 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 é enviada WM_PRINT
para essa janela com PRF_CLIENT
sinalizadores PRF_CHILDREN
e PRF_NONCLIENT
sinalizadores.
CWnd::OnDrawItem
A estrutura chama essa função de 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 foi alterado.
afx_msg void OnDrawItem(
int nIDCtl,
LPDRAWITEMSTRUCT lpDrawItemStruct);
Parâmetros
nIDCtl
Contém o identificador do controle que enviou a WM_DRAWITEM
mensagem. Se um menu enviou a mensagem, nIDCtl
contém 0.
lpDrawItemStruct
Especifica um ponteiro longo para uma DRAWITEMSTRUCT
estrutura de dados que contém informações sobre o item a ser desenhado e o tipo de desenho necessário.
Comentários
O itemAction
membro da DRAWITEMSTRUCT
estrutura define a operaçã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 hDC
membro da DRAWITEMSTRUCT
estrutura seja restaurado para o estado padrão.
Se o hwndItem
membro pertencer a um CButton
objeto CComboBox ou, CMenu
CListBox
em seguida, a DrawItem
função virtual da classe apropriada será chamada. Substitua a DrawItem
função membro da classe do controle apropriado para desenhar o item.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário libera o botão esquerdo do mouse em uma janela que se registrou como destinatário de arquivos descartados.
afx_msg void OnDropFiles(HDROP hDropInfo);
Parâmetros
hDropInfo
Um ponteiro para uma estrutura de dados interna que descreve os arquivos descartados. Esse identificador é usado pelas DragFinish
funções , DragQueryFile
e DragQueryPoint
Windows para recuperar informações sobre os arquivos descartados.
Comentários
Normalmente, uma classe derivada será projetada para dar suporte a arquivos descartados e se registrará durante a construção da janela.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando um aplicativo altera o estado habilitado do CWnd
objeto.
afx_msg void OnEnable(BOOL bEnable);
Parâmetros
bEnable
Especifica se o CWnd
objeto foi habilitado ou desabilitado. Esse parâmetro será TRUE
se o CWnd
tiver sido habilitado; será FALSE
se o CWnd
tiver sido desabilitado.
Comentários
OnEnable
é chamado antes que a EnableWindow
função membro retorne, mas depois que o estado habilitado para a janela (WS_DISABLED
bit de estilo) for alterado.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro depois que o CWnd
objeto retorna um valor diferente de zero de uma OnQueryEndSession
chamada de função de membro.
afx_msg void OnEndSession(BOOL bEnding);
Parâmetros
bEnding
Especifica se a sessão está ou não sendo encerrada. É TRUE
se a sessão está sendo encerrada; caso contrário FALSE
.
Comentários
A OnEndSession
chamada informa ao CWnd
objeto se a sessão está realmente terminando.
Se bEnding
forTRUE
, Windows pode terminar a qualquer momento depois que todos os aplicativos tiverem retornado do processamento dessa chamada. Consequentemente, fazer com que um aplicativo execute todas as tarefas necessárias para o encerramento dentro OnEndSession
.
Você não precisa chamar a DestroyWindow
função de membro ou PostQuitMessage
Windows função quando a sessão estiver terminando.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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
A estrutura chama essa função de membro para informar o procedimento de janela principal de um aplicativo de que uma caixa de diálogo modal ou um menu está inserindo 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 um menu que está sendo exibido. Esse parâmetro pode ser um dos seguintes valores:
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
). Esse ponteiro pode ser temporário e não deve ser armazenado para uso posterior.
Comentários
Uma caixa de diálogo ou menu modal insere um estado ocioso quando nenhuma mensagem está esperando em sua fila depois de processar uma ou mais mensagens anteriores.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando um loop modal de menu foi inserido.
afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);
Parâmetros
bIsTrackPopupMenu
Especifica se o menu envolvido é um menu pop-up. Tem um valor diferente de zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro uma vez após a janela afetada inserir um loop modal móvel ou de dimensionamento.
afx_msg void OnEnterSizeMove();
Comentários
Esse método recebe a WM_ENTERSIZEMOVE
notificação, 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 borda de dimensionamento da janela ou quando a janela passa a WM_SYSCOMMAND
mensagem para a CWnd::DefWindowProc
função 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 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 de membro quando o plano de fundo do CWnd
objeto 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
Não 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 hbrBackground
membro da estrutura de classe de janela.
Se o hbrBackground
membro for NULL
, sua versão substituída deverá apagar a cor da tela de OnEraseBkgnd
fundo. Sua versão também deve alinhar a origem do pincel pretendido com as CWnd
coordenadas chamando UnrealizeObject
primeiro para o pincel e, em seguida, selecionando o pincel.
Um substituído OnEraseBkgnd
deve retornar não zero em resposta se WM_ERASEBKGND
ele processar a mensagem e apagar o plano de fundo; isso indica que nenhuma nova apagamento é necessária. Se retornar 0, a janela permanecerá marcada como precisando ser apagada. (Normalmente, isso significa que o fErase
membro da PAINTSTRUCT
estrutura será TRUE
.)
Windows pressupõe que a tela de fundo seja calculada com o MM_TEXT
modo de mapeamento. 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 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 de membro quando um loop modal de menu foi encerrado.
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
Parâmetros
bIsTrackPopupMenu
Especifica se o menu envolvido é um menu pop-up. Tem um valor 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 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 de 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 WM_EXITSIZEMOVE
notificação, que é descrita no SDK 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 WM_SYSCOMMAND
mensagem para a CWnd::DefWindowProc
função e o wParam
parâmetro 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 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 OnFontChange
chamada da estrutura depois que o aplicativo altera 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 AddFontResource
função ou RemoveFontResource
Windows) deve enviar a WM_FONTCHANGE
mensagem para todas as janelas de nível superior.
Para enviar essa mensagem, use a SendMessage
função Windows com o hWnd
parâmetro definido como HWND_BROADCAST
.
CWnd::OnGetDlgCode
Chamado para um controle para que o controle possa processar a tecla de direção e a própria entrada tab-key.
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
Pushbutton padrão.DLGC_HASSETSEL
EM_SETSEL
Mensagens.DLGC_UNDEFPUSHBUTTON
Nenhum processamento padrão de pushbutton. (Um aplicativo pode usar esse sinalizadorDLGC_BUTTON
para indicar que ele processa a entrada do botão, mas depende do sistema para processamento de botão padrão.)DLGC_RADIOBUTTON
Botão de opção.DLGC_STATIC
Controle estático.DLGC_WANTALLKEYS
Todas as entradas de teclado.DLGC_WANTARROWS
Setas.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, Windows manipula todas as entradas de tecla de direção e tab para um CWnd
controle. Ao substituir OnGetDlgCode
, um CWnd
controle pode escolher um tipo específico de entrada para processar a si mesmo.
As funções padrão OnGetDlgCode
para as classes de controle predefinidas retornam um código apropriado para cada classe.
CWnd::OnGetMinMaxInfo
A estrutura chama essa função de membro sempre que Windows precisa saber a posição ou dimensões maximizadas ou o tamanho mínimo ou máximo do acompanhamento.
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
Parâmetros
lpMMI
Aponta para uma MINMAXINFO
estrutura 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 MINMAXINFO
estrutura.
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.
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 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 Ajuda F1 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 e ID_DEFAULT_HELP
os ID_HELP_FINDER
comandos.
afx_msg void OnHelpFinder();
Comentários
Consulte CWinApp::OnHelpFinder
para obter mais informações.
CWnd::OnHelpIndex
Manipula o ID_HELP_INDEX
comando 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 HELPINFO
estrutura 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 de membro quando o usuário pressiona uma tecla quente em todo o sistema.
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2);
Parâmetros
nHotKeyId
[in] Identificador da chave de acesso que gerou a mensagem. Se a mensagem tiver sido gerada por uma chave de acesso definida pelo sistema, esse parâmetro será um dos seguintes valores:
IDHOT_SNAPDESKTOP
- A tecla de acesso da área de trabalho de ajuste foi pressionada.IDHOT_SNAPWINDOW
- A tecla de acesso da janela de ajuste 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 nKey2
parâmetro. Os valores possíveis são:
MOD_ALT
- Qualquer chave ALT foi mantida pressionada.MOD_CONTROL
- Qualquer chave CTRL foi mantida pressionada.MOD_SHIFT
- Qualquer chave SHIFT foi mantida pressionada.MOD_WIN
- Qualquer chave do WINDOWS foi mantida pressionada. Essas chaves são rotuladas com o logotipo do Microsoft Windows.
nKey2
[in] O código de chave virtual da chave de acesso.
Comentários
Esse método recebe a WM_HOTKEY
notificação, que é descrita no SDK do Windows. Essa mensagem é colocada na parte superior da fila de mensagens associada ao thread que registrou a chave de acesso. Use a RegisterHotKey
função para registrar uma chave de acesso em todo o sistema.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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.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.SB_THUMBPOSITION
Role até a posição absoluta. A posição atual é especificada pelonPos
parâmetro.SB_THUMBTRACK
Arraste a caixa de rolagem para a posição especificada. A posição atual é especificada pelonPos
parâmetro.
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 SB_THUMBTRACK
código da barra de rolagem 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 SetScrollPos
função de membro.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro do proprietário da OnHScrollClipboard
Área de Transferência é chamada pelo visualizador da Área de Transferência quando os dados da Área de Transferência têm o CF_OWNERDISPLAY
formato 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 o canto inferior direito.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 o canto superior esquerdo.
nPos
Contém a posição da caixa de rolagem se o código da barra de rolagem for ; caso contrário, não será SB_THUMBPOSITION
usado.
Comentários
O proprietário deve rolar a imagem da Área de Transferência, invalidar a seção apropriada e atualizar os valores da barra de rolagem.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro para um objeto minimizado (icônico) 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 do ícone. 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 DefWindowProc
função membro preenche a tela de fundo do ícone com o pincel de fundo da janela pai.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando um menu está prestes a ficar ativo.
afx_msg void OnInitMenu(CMenu* pMenu);
Parâmetros
pMenu
Especifica o menu a ser inicializado. 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 de 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 em 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 depois clicar em um item na barra de menus, a função será chamada novamente.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando um menu pop-up está prestes a ficar ativo.
afx_msg void OnInitMenuPopup(
CMenu* pPopupMenu,
UINT nIndex,
BOOL bSysMenu);
Parâmetros
pPopupMenu
Especifica o objeto de menu do menu pop-up. 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando um dispositivo de E/S é adicionado ou removido do sistema.
afx_msg void OnInputDeviceChange(unsigned short uFlag);
Parâmetros
uFlag
[in] Esse sinalizador pode conter os seguintes valores:
GIDC_ARRIVAL
- Um novo dispositivo foi adicionado ao sistema.GIDC_REMOVAL
- Um dispositivo foi removido do sistema.
Comentários
Esse método recebe a WM_INPUT_DEVICE_CHANGE
notificação, que é descrita no SDK do Windows. É uma mensagem de dispositivo de entrada genérica.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 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 lfCharSet
parâmetro da LOGFONT
estrutura.
nLocaleId
[in] 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 WM_INPUTLANGCHANGE
mensagem de notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 ser usado com o conjunto de caracteres do sistema. Os valores possíveis são INPUTLANGCHANGE_BACKWARD
, INPUTLANGCHANGE_FORWARD
e INPUTLANGCHANGE_SYSCHARSET
.
nLocaleId
[in] 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 WM_INPUTLANGCHANGEREQUEST
mensagem de notificação, que é descrita no SDK do Windows. Essa mensagem é postada quando o usuário escolhe uma nova linguagem de entrada com uma chave 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando uma tecla não sistema é pressionada.
afx_msg void OnKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parâmetros
nChar
Especifica o código de chave virtual da chave fornecida. Para obter uma lista de códigos de chave 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 segurando a chave).
nFlags
Especifica o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto, conforme mostrado na lista a seguir:
Valor | Descrição |
---|---|
0-7 | Código de verificação (valor dependente de OEM). |
8 | Chave estendida, como uma chave de função ou uma chave no teclado numérico (1 se for uma chave estendida). |
9-10 | Não usado. |
11-12 | Usado internamente por 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 chave anterior (1 se a chave estiver inativa antes da chamada, 0 se a chave estiver ativada). |
15 | Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada). |
Para uma WM_KEYDOWN
mensagem, o bit de transição de chave (bit 15) é 0 e o bit de código de contexto (bit 13) é 0.
Comentários
Uma tecla não 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 OnKeyDown
chamada pode ocorrer antes de uma OnKeyUp
chamada de função membro ser feita. O bit que indica o estado de chave anterior pode ser usado para determinar se a OnKeyDown
chamada é a primeira transição para baixo ou uma transição repetida para baixo.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL corretas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando uma chave não sistema é liberada.
afx_msg void OnKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parâmetros
nChar
Especifica o código de chave virtual da chave fornecida. Para obter uma lista de códigos de chave 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 segurando a chave).
nFlags
Especifica o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto, conforme mostrado na lista a seguir:
Valor | Descrição |
---|---|
0-7 | Código de verificação (valor dependente de OEM). Baixo byte de palavra de alta ordem. |
8 | Chave estendida, como uma chave de função ou uma chave no teclado numérico (1 se for uma chave estendida; caso contrário, 0). |
9-10 | Não usado. |
11-12 | Usado internamente por 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 chave anterior (1 se a chave estiver inativa antes da chamada, 0 se a chave estiver ativada). |
15 | Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada). |
Para uma WM_KEYUP
mensagem, o bit de transição de chave (bit 15) é 1 e o bit de código de contexto (bit 13) é 0.
Comentários
Uma tecla não sistema é uma tecla de teclado pressionada quando a tecla ALT não é pressionada ou uma tecla de teclado pressionada quando o CWnd
foco de entrada é pressionado.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL corretas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 CWnd
objeto estiver exibindo um careta, o careta deverá ser destruído neste momento.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio estiver inativo.MK_RBUTTON
Defina se o botão direito do mouse estiver inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da janela.
Comentários
Somente janelas que têm o CS_DBLCLKS
WNDCLASS
estilo receberão OnLButtonDblClk
chamadas. Esse é o padrão para janelas de classe do Microsoft Foundation. Windows chamadas 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
WM_LBUTTONUP
mensagens, chamada WM_LBUTTONDBLCLK
e outra WM_LBUTTONUP
mensagem quando o botão é liberado.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário pressiona o botão esquerdo do mouse.
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
Parâmetros
nFlags
Indica se várias chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio estiver inativo.MK_RBUTTON
Defina se o botão direito do mouse estiver inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da janela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_MBUTTON
Defina se o botão do mouse do meio estiver inativo.MK_RBUTTON
Defina se o botão direito do mouse estiver inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da janela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário clica duas vezes no botão do mouse do meio.
afx_msg void OnMButtonDblClk(
UINT nFlags,
CPoint point);
Parâmetros
nFlags
Indica se várias chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio estiver inativo.MK_RBUTTON
Defina se o botão direito do mouse estiver inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da janela.
Comentários
Somente janelas que têm o CS_DBLCLKS
WNDCLASS
estilo receberão OnMButtonDblClk
chamadas. Esse é o padrão para todas as janelas de classe do Microsoft Foundation. Windows gera uma OnMButtonDblClk
chamada quando o usuário pressiona, libera e pressiona o botão do mouse do meio novamente dentro do limite de tempo de clique duplo do sistema. Clicar duas vezes no botão do mouse do meio gera quatro eventos: WM_MBUTTONDOWN
e WM_MBUTTONUP
mensagens, a WM_MBUTTONDBLCLK
chamada e outra WM_MBUTTONUP
mensagem.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário pressiona o botão do mouse do meio.
afx_msg void OnMButtonDown(
UINT nFlags,
CPoint point);
Parâmetros
nFlags
Indica se várias chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio estiver inativo.MK_RBUTTON
Defina se o botão direito do mouse estiver inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas 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 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 de membro quando o usuário libera o botão do mouse do meio.
afx_msg void OnMButtonUp(
UINT nFlags,
CPoint point);
Parâmetros
nFlags
Indica se várias chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_RBUTTON
Defina se o botão direito do mouse está inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas 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 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 de membro para a janela filho que está sendo desativada e a janela filho 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 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. Esse 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 que está sendo desativada. Esse ponteiro pode ser temporário e não deve ser armazenado para uso posterior.
Comentários
Uma janela filho MDI é ativada independentemente da janela de quadro MDI. Quando o quadro se torna ativo, a janela filho que foi ativada pela última vez com uma OnMDIActivate
chamada recebe uma WM_NCACTIVATE
mensagem para desenhar um quadro de janela ativo e uma barra de legendas, mas não recebe outra OnMDIActivate
chamada.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro pela estrutura para o proprietário de um botão de desenho do proprietário, caixa de combinação, caixa de listagem ou item de menu quando o controle é criado.
afx_msg void OnMeasureItem(
int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parâmetros
nIDCtl
A ID do controle.
lpMeasureItemStruct
Aponta para uma MEASUREITEMSTRUCT
estrutura de dados que contém as dimensões do controle owner-draw.
Comentários
Substitua essa função de membro e preencha a MEASUREITEMSTRUCT
estrutura de dados apontada por lpMeasureItemStruct
e retorne; isso informa Windows das dimensões do controle e permite que Windows processem a interação do usuário com o controle corretamente.
Se uma caixa de listagem ou caixa de combinação for criada com o estilo ou CBS_OWNERDRAWVARIABLE
o LBS_OWNERDRAWVARIABLE
estilo, 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.
Windows inicia a chamada para OnMeasureItem
o proprietário de caixas de combinação e caixas de listagem criadas com o OWNERDRAWFIXED
estilo antes de enviar a WM_INITDIALOG
mensagem. Como resultado, quando o proprietário recebe essa chamada, Windows ainda não determinou a altura e a largura da fonte usada no controle; chamadas de função e cálculos que exigem esses valores devem ocorrer na função principal do aplicativo ou biblioteca.
Se o item que está sendo medido for um objeto ou um CMenu
objetoCListBox
, a MeasureItem
função virtual da classe CComboBox
apropriada será chamada. Substitua a MeasureItem
função membro 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 for criada com o estilo ou CBS_OWNERDRAWVARIABLE
o LBS_OWNERDRAWVARIABLE
estilo. Se o controle for criado pelo editor de diálogo, OnMeasureItem
não será chamado. Isso ocorre porque a WM_MEASUREITEM
mensagem é enviada no início do processo de criação do controle. Se você subclasse usando DDX_Control
, SubclassDlgItem
ou SubclassWindow
, a subclasse geralmente ocorre após o processo de criação. Portanto, não há como lidar com a WM_MEASUREITEM
mensagem na função do OnChildNotify
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 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 de 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 build, especifica o caractere ANSI ou Unicode que o usuário pressionou.
nFlags
Contém o MF_POPUP
sinalizador se o menu for um menu pop-up. Ele conterá o MF_SYSMENU
sinalizador se o menu for um menu controle.
pMenu
Contém um ponteiro para o selecionado CMenu
. 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 Windows descartar o caractere que o usuário pressionou e cria um bipe curto no alto-falante do sistema. |
1 | Informa Windows fechar o menu atual. |
2 | Informa 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 por 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 chaves de acelerador (atalho) são usadas para selecionar bitmaps colocados em um menu.
Comentários
Ele é enviado para o CWnd
proprietário do 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 do CWnd
, e nFlags
é 0.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 CMenu
objeto que contém o item de menu.
Valor Retornado
Valor Retornado | 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 WM_MENUDRAG
notificação, que é descrita no SDK Windows.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 MENUGETOBJECTINFO
estrutura que contém informações sobre o menu arrastar e soltar em que o cursor do mouse está ativado.
Valor Retornado
Valor Retornado | Significado |
---|---|
MNGO_NOERROR |
Um ponteiro de interface que dá suporte a operações de drop-and-drag é retornado no pvObj membro da MENUGETOBJECTINFO estrutura. Atualmente, há suporte apenas para a IDropTarget interface. |
MNGO_NOINTERFACE |
Não há suporte para nenhuma interface drop-and-drag. |
Comentários
Esse método recebe a WM_MENUGETOBJECT
notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 CMenu
objeto que contém o item de menu.
Comentários
Esse método recebe a WM_MENURBUTTONUP
notificação, que é descrita no SDK do Windows. A WM_MENURBUTTONUP
mensagem permite que um aplicativo forneça um menu com diferenciação de contexto para o item de menu especificado na mensagem.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 CWnd
objeto 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á a 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 está marcado.MF_DISABLED
O item está desabilitado.MF_GRAYED
O item está 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 nem MF_SYSMENU
MF_POPUP
, ele não será utilizado.
Comentários
Se nFlags
contiver 0xFFFF e hSysMenu
contiver 0, Windows fechou o menu porque o usuário pressionou a tecla ESC ou clicou fora do menu.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 de teste de ocorrência . Um teste de ocorrência é um teste que determina o local do cursor.
message
Especifica o número da mensagem do mouse.
Valor de retorno
Especifica se o CWnd
evento do mouse deve ser ativado e se deve ser descartado. Ele deve ser um dos seguintes valores:
MA_ACTIVATE
AtivarCWnd
objeto.MA_NOACTIVATE
Não ativarCWnd
objeto.MA_ACTIVATEANDEAT
Ative oCWnd
objeto e descarte o evento do mouse.MA_NOACTIVATEANDEAT
Não ative oCWnd
objeto 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 ocorrência individuais, consulte a OnNcHitTest
função de membro
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 MK_CONTROL
sinalizador indica que a tecla CTRL é pressionada.
point
[in] Um CPoint
objeto que especifica o x
cursor e y
as coordenadas do cursor em relação ao canto superior esquerdo da área do cliente.
Comentários
Esse método recebe a WM_MOUSEHOVER
notificação, que é descrita no SDK do Windows.
O nFlags
parâmetro pode ser uma combinação de chaves modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.
Chave modificadora | Descrição |
---|---|
MK_CONTROL |
A tecla CTRL é 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 é pressionada. |
MK_XBUTTON1 |
O XBUTTON1 botão do mouse do Microsoft IntelliMouse é pressionado. |
MK_XBUTTON2 |
O XBUTTON2 botão do mouse do Microsoft IntelliMouse é pressionado. |
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 MK_CONTROL
sinalizador indica que a tecla CTRL é pressionada. Para obter uma lista de sinalizadores, consulte o subtítulo "Parâmetros de Mensagem" na 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 CPoint
objeto que especifica as coordenadas e y
o x
cursor relativos ao canto superior esquerdo da área do cliente.
Comentários
Esse método recebe a WM_MOUSEHWHEEL
mensagem de notificação, que é descrita no SDK 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 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 de membro quando o cursor deixa a área do cliente da janela especificada em uma chamada anterior para TrackMouseEvent
.
afx_msg void OnMouseLeave();
Comentários
Esse método recebe a WM_MOUSELEAVE
notificação, que é descrita no SDK Windows.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o cursor do mouse se move.
afx_msg void OnMouseMove(
UINT nFlags,
CPoint point);
Parâmetros
nFlags
Indica se várias chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio está inativo.MK_RBUTTON
Defina se o botão direito do mouse está inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da janela.
Comentários
Se o mouse não for capturado, a WM_MOUSEMOVE
mensagem será recebida pelo CWnd
objeto abaixo do cursor do mouse; caso contrário, a mensagem irá para a janela que capturou o mouse.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando 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 chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio está inativo.MK_RBUTTON
Defina se o botão direito do mouse está inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
zDelta
Indica a distância girada. O zDelta
valor é 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 a frente (longe do usuário). O usuário pode reverter essa resposta alterando a configuração roda no software do mouse. Consulte as Observações para obter mais informações sobre esse parâmetro.
pt
Especifica a coordenada x e y do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Valor de retorno
Não 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
. Windows roteia automaticamente a mensagem para o controle ou a janela filho que tem o foco. A função DefWindowProc
Win32 propaga a mensagem até a cadeia pai para a janela que a processa.
O zDelta
parâmetro é um múltiplo, WHEEL_DELTA
que é definido como 120. Esse valor é o limite para uma ação a ser executada e uma dessas ações (por exemplo, rolando para frente 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é WHEEL_DELTA
que 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 atingido.
Substitua essa função de 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 Windows tratamento de mensagens 95/98 ou Windows NT 3.51, use OnRegisteredMouseWheel
.
CWnd::OnMove
A estrutura chama essa função de membro depois que o CWnd
objeto é 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 pop-up e sobrepostas e coordenadas pai-cliente para janelas filho.
y
Especifica o novo local de coordenadas y do canto superior esquerdo da área do cliente. Esse novo local é dado em coordenadas de tela para janelas pop-up e sobrepostas 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 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 de membro enquanto um usuário está movendo um CWnd
objeto.
afx_msg void OnMoving(
UINT nSide,
LPRECT lpRect);
Parâmetros
nSide
A borda da janela a ser movida.
lpRect
Endereço da estrutura ou RECT
que CRect
conterá as coordenadas do item.
Comentários
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando a área nãocliente 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 bActive
parâmetro será TRUE
se uma legenda ou ícone ativo deve ser desenhado. É FALSE
para uma legenda ou ícone inativo.
Valor de retorno
Não zero se Windows deve continuar com o processamento padrão; 0 para impedir que a barra de legenda ou ícone seja desativado.
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
estiver 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 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 de 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. 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 NCCALCSIZE_PARAMS
estrutura de dados que contém informações que um aplicativo pode usar para calcular o novo tamanho e a posição do CWnd
retângulo (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 do cliente da janela quando o tamanho ou a posição da janela for alterado.
Independentemente do valor de bCalcValidRects
, o primeiro retângulo na matriz especificada pelo rgrc
membro da estrutura contém NCCALCSIZE_PARAMS
as coordenadas da janela. Para uma janela filho, as coordenadas são relativas à área de cliente da janela pai. Para janelas de nível superior, as coordenadas são coordenadas de tela. Um aplicativo deve modificar o rgrc[0]
retângulo para refletir o tamanho e a posição da área do cliente.
Os rgrc[1]
retângulos e rgrc[2]
são válidos somente se bCalcValidRects
for TRUE
. Nesse caso, o rgrc[1]
retângulo contém as coordenadas da janela antes de ser movido ou redimensionado. O rgrc[2]
retângulo 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 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 de membro antes da WM_CREATE
mensagem quando o CWnd
objeto é criado pela primeira vez.
afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);
Parâmetros
lpCreateStruct
Aponta para a estrutura de CREATESTRUCT
dados para CWnd
.
Valor de retorno
Não zero se a área nãocliente for criada. Será 0 se ocorrer um erro; a Create
função retornará failure
nesse caso.
Comentários
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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ãocliente está sendo destruída e é a última função membro chamada quando a janela Windows é destruída.
afx_msg void OnNcDestroy();
Comentários
A implementação padrão executa alguma limpeza e chama a função PostNcDestroy
de membro virtual.
Substitua PostNcDestroy
se você quiser executar sua própria limpeza, como uma delete this
operação. Se você substituir OnNcDestroy
, deverá chamar OnNcDestroy
sua classe base para garantir que qualquer memória alocada internamente para a janela seja liberada.
CWnd::OnNcHitTest
A estrutura chama essa função de membro para o CWnd
objeto que contém o cursor (ou o CWnd
objeto que usou a SetCapture
função membro para capturar a entrada do mouse) sempre que o mouse é movido.
afx_msg LRESULT OnNcHitTest(CPoint point);
Parâmetros
point
Contém as coordenadas x e y do cursor. Essas coordenadas são sempre coordenadas de tela.
Valor de retorno
Um dos valores enumerados do mouse hit-test. Consulte WM_NCHITTEST
a lista de valores.
Comentários
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o usuário clica duas vezes no botão esquerdo do mouse enquanto o cursor está dentro de uma área nãocliente de CWnd
.
afx_msg void OnNcLButtonDblClk(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor. Consulte WM_NCHITTEST
a lista de valores.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Se apropriado, a WM_SYSCOMMAND
mensagem é enviada.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o usuário pressiona o botão esquerdo do mouse enquanto o cursor está dentro de uma área nãocliente do CWnd
objeto.
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor. Consulte WM_NCHITTEST
a lista de valores.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Se apropriado, o WM_SYSCOMMAND
é enviado.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o usuário libera o botão esquerdo do mouse enquanto o cursor está dentro de uma área nãocliente.
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor. Consulte WM_NCHITTEST
a lista de valores.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas 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 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 de membro quando o usuário clica duas vezes no botão do mouse do meio enquanto o cursor está dentro de uma área nãocliente.
afx_msg void OnNcMButtonDblClk(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas 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 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 de membro quando o usuário pressiona o botão do mouse do meio enquanto o cursor está dentro de uma área nãocliente.
afx_msg void OnNcMButtonDown(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário libera o botão do mouse do meio enquanto o cursor está dentro de uma área nãocliente.
afx_msg void OnNcMButtonUp(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o cursor passa o mouse sobre a área nãocliente 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 de teste de ocorrência retornado pela CWnd::DefWindowProc
função como resultado do processamento da WM_NCHITTEST
mensagem.
point
[in] Um CPoint
objeto 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 WM_NCMOUSEHOVER
notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o cursor deixa a área nãocliente da janela especificada em uma chamada anterior para TrackMouseEvent
.
afx_msg void OnNcMouseLeave();
Comentários
Esse método recebe a WM_NCMOUSELEAVE
notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o cursor é movido dentro de uma área nãocliente.
afx_msg void OnNcMouseMove(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Se apropriado, a WM_SYSCOMMAND
mensagem é enviada.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando a área nãocliente 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 de membro quando o usuário clica duas vezes no botão direito do mouse enquanto o cursor está dentro de uma área nãocliente de CWnd
.
afx_msg void OnNcRButtonDblClk(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário pressiona o botão direito do mouse enquanto o cursor está dentro de uma área nãocliente.
afx_msg void OnNcRButtonDown(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário libera o botão direito do mouse enquanto o cursor está dentro de uma área nãocliente.
afx_msg void OnNcRButtonUp(
UINT nHitTest,
CPoint point);
Parâmetros
nHitTest
Especifica o código de teste de ocorrência. Um teste de ocorrência é um teste que determina o local do cursor.
point
Especifica um CPoint
objeto que contém as coordenadas de tela x e y da posição do cursor. Essas coordenadas são sempre relativas ao canto superior esquerdo da tela.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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ãocliente foi 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ãocliente da janela; FALSE
se a renderização estiver desabilitada.
Comentários
Esse método recebe a WM_DWMNCRENDERINGCHANGED
notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário clica XBUTTON1
duas vezes ou XBUTTON2
enquanto o cursor está na área nãocliente de uma janela.
void OnNcXButtonDblClk(
short nHitTest,
UINT nButton,
CPoint point);
Parâmetros
nHitTest
[in] O valor de teste de ocorrência retornado pela CWnd::DefWindowProc
função como resultado do processamento da WM_NCHITTEST
mensagem.
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 CPoint
objeto que especifica o x
cursor e y
as coordenadas do cursor em relação ao canto superior esquerdo da área do cliente.
Comentários
Esse método recebe a WM_XBUTTONDBLCLK
notificação, que é descrita no SDK 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 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 de membro quando o usuário pressiona XBUTTON1
ou XBUTTON2
do mouse enquanto o cursor está na área nãocliente de uma janela.
afx_msg void OnNcXButtonDown(
short nHitTest,
UINT nButton,
CPoint point);
Parâmetros
nHitTest
[in] O valor de teste de ocorrência retornado pela CWnd::DefWindowProc
função como resultado do processamento da WM_NCHITTEST
mensagem.
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 CPoint
objeto que especifica as coordenadas e y
o x
cursor em relação ao canto superior esquerdo da tela.
Comentários
Esse método recebe a WM_NCXBUTTONDOWN
notificação, que é descrita no SDK 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 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 de membro quando o usuário libera XBUTTON1
ou XBUTTON2
do mouse enquanto o cursor está na área nãocliente de uma janela.
afx_msg void OnNcXButtonUp(
short nHitTest,
UINT nButton,
CPoint point);
Parâmetros
nHitTest
[in] O valor de teste de ocorrência retornado pela CWnd::DefWindowProc
função como resultado do processamento da WM_NCHITTEST
mensagem.
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 CPoint
objeto 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 WM_NCXBUTTONUP
notificação, que é descrita no SDK 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 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 de 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 MK_CONTROL
sinalizador indica que a tecla CTRL está pressionada. Para obter uma lista de sinalizadores, consulte a subtítula "Parâmetros de Mensagem" na entrada sobre o mouse.
lpMdiNextMenu
[in] Ponteiro para uma MDINEXTMENU
estrutura que contém informações sobre o menu a ser ativado.
Comentários
Esse método recebe a WM_UNINITMENUPOPUP
notificação, que é descrita no SDK Windows. Em resposta a essa mensagem, seu aplicativo pode definir o hmenuNext
membro da MDINEXTMENU
estrutura para especificar o menu para o qual alternar e o hwndNext
membro 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 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 de 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 NMHDR
estrutura como seu primeiro membro.
pResult
Ponteiro para uma LRESULT
variável na qual armazenar o código de resultado se a mensagem for manipulada.
Valor de retorno
Um aplicativo retornará não zero se processar essa mensagem; caso contrário, 0.
Comentários
OnNotify
processa o mapa de mensagens para notificação de controle.
Substitua essa função de membro em sua classe derivada para manipular a WM_NOTIFY
mensagem. Uma substituição não processará o mapa de mensagens, a menos que a classe OnNotify
base seja chamada.
Para obter mais informações sobre a WM_NOTIFY
mensagem, consulte a Nota Técnica 61 (TN061) ON_NOTIFY
e WM_NOTIFY
as mensagens. 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 de Windows.
CWnd::OnNotifyFormat
A estrutura chama essa função de membro para determinar se a janela atual aceita estruturas ANSI ou Unicode na WM_NOTIFY
mensagem de notificação.
afx_msg UINT OnNotifyFormat(
CWnd* pWnd,
UINT nCommand);
Parâmetros
pWnd
[in] Um ponteiro para um CWnd
objeto que representa a janela que envia a WM_NOTIFY
mensagem. Esse parâmetro é o ponteiro para um controle se o nCommand
parâmetro 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 WM_NOTIFY
mensagem. Os valores possíveis são:
NF_QUERY
- A mensagem é uma consulta para determinar se as estruturas ANSI ou Unicode devem ser usadas emWM_NOTIFY
mensagens. Essa mensagem é enviada de um controle para sua janela pai durante a criação de um controle e em resposta àNF_REQUERY
forma dessa mensagem.NF_REQUERY
- A mensagem é uma solicitação para que um controle envie aNF_QUERY
forma dessa mensagem para sua janela pai. Essa solicitação é enviada da janela pai e solicita ao controle para requerer o pai sobre o tipo de estrutura a ser usada nasWM_NOTIFY
mensagens. Se onCommand
parâmetro forNF_REQUERY
, o valor retornado será o resultado da operação requery.
Valor retornado
Valor retornado | Significado |
---|---|
NFR_ANSI |
As estruturas ANSI devem ser usadas em WM_NOTIFY mensagens enviadas pelo controle. |
NFR_UNICODE |
Estruturas Unicode devem ser usadas em WM_NOTIFY mensagens enviadas pelo controle. |
0 | Ocorreu um erro. |
Comentários
Esse método recebe a WM_NOTIFYFORMAT
notificação, que é descrita no SDK Windows. WM_NOTIFY
as mensagens 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 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 de membro quando Windows ou um aplicativo faz uma solicitação para repintar uma parte da janela de um aplicativo.
afx_msg void OnPaint();
Comentários
A WM_PAINT
mensagem é enviada quando a UpdateWindow
função ou RedrawWindow
membro é chamada.
Uma janela pode receber mensagens de pintura internas como resultado da chamada da RedrawWindow
função membro com o conjunto de RDW_INTERNALPAINT
sinalizadores. Nesse caso, a janela pode não ter uma região de atualização. Um aplicativo deve chamar a GetUpdateRect
função membro 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 e EndPaint
membroBeginPaint
.
É responsabilidade do aplicativo verificar se há qualquer repositório interno ou atualização necessário examinando suas estruturas de dados internas para cada WM_PAINT
mensagem porque uma WM_PAINT
mensagem pode ter sido causada por uma área inválida e uma chamada para a RedrawWindow
função membro com o conjunto de RDW_INTERNALPAINT
sinalizadores.
Uma mensagem interna WM_PAINT
é enviada apenas uma vez por Windows. Depois que uma mensagem interna WM_PAINT
for enviada para uma janela pela UpdateWindow
função membro, nenhuma mensagem adicional WM_PAINT
será enviada ou postada até que a janela seja invalidada ou até que a RedrawWindow
função membro seja chamada novamente com o RDW_INTERNALPAINT
sinalizador 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 usarWM_Paint
, consulte os seguintes tópicos no SDK do Windows:
CWnd::OnPaintClipboard
A função membro do proprietário de uma área de OnPaintClipboard
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 CF_OWNERDISPLAY
formato 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 área de transferência do aplicativo. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.
hPaintStruct
Identifica uma PAINTSTRUCT
estrutura de dados 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 repintado, o proprietário da Área de Transferência deve comparar as dimensões da área de desenho fornecidas no rcpaint
membro da PAINTSTRUCT
estrutura com as dimensões fornecidas na chamada de função membro mais recente OnSizeClipboard
.
OnPaintClipboard
deve usar a GlobalLock
função Windows para bloquear a memória que contém a PAINTSTRUCT
estrutura de dados e desbloquear essa memória com a GlobalUnlock
função Windows antes de sair.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de 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 OnPaletteChanged
função membro é chamada para todas as janelas de nível superior e sobrepostas, incluindo a que alterou a paleta do sistema e fez com que a WM_PALETTECHANGED
mensagem fosse enviada. Se qualquer janela filho usar uma paleta de cores, essa mensagem deverá ser transmitida a 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 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 de 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 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 de membro pai OnParentNotify
é 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 message
alta ordem for o identificador da janela filho; caso contrário, a palavra de alta ordem será indefinida. O evento (palavra de baixa ordem) 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 mouse do meio.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) message
for WM_CREATE
ou WM_DESTROY
, lParam
especificar 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
pouco antes da Create
função membro 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 WS_EX_NOPARENTNOTIFY
estilo, enviam essa mensagem para suas janelas pai. Por padrão, janelas filho em uma caixa de diálogo têm o WS_EX_NOPARENTNOTIFY
estilo, a menos que a janela filho tenha sido criada sem esse estilo chamando a CreateEx
função membro.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de 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
negar a solicitação.
Comentários
Esse método recebe a WM_POWERBROADCAST
mensagem, que é descrita no SDK Windows.
O nPowerEvent
parâmetro especifica que eventos como a energia da bateria são baixos, o status de energia foi alterado, a permissão para suspender a operação é solicitada ou negada, uma operação é retomada automaticamente após um evento, o sistema está suspendendo a operação ou uma operação é retomada após a suspensão. O nEventData
parâmetro normalmente não é usado. Para obter mais informações, consulte os parâmetros e lParam
os wParam
parâmetros da WM_POWERBROADCAST
mensagem.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro por uma janela minimizada (icônica) 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 identificador de cursor ou í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 ícone compatível com a resolução do driver de exibição. O aplicativo pode chamar as CWinApp::LoadCursor
funções ou CWinApp::LoadIcon
membro 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 de membro quando o usuário escolhe encerrar a sessão Windows ou quando um aplicativo chama a ExitWindows
função Windows.
afx_msg BOOL OnQueryEndSession();
Valor de retorno
Não zero se um aplicativo puder ser desligado convenientemente; caso contrário, 0.
Comentários
Se qualquer aplicativo retornar 0, a sessão Windows não será encerrada. Windows para de chamar OnQueryEndSession
assim que um aplicativo retorna 0 e envia a WM_ENDSESSION
mensagem com um valor de FALSE
parâmetro para qualquer aplicativo que já tenha retornado não zero.
CWnd::OnQueryNewPalette
A estrutura chama essa função de membro quando o CWnd
objeto está prestes a receber o foco de entrada, dando a CWnd
oportunidade de realizar sua paleta lógica quando ele recebe o foco.
afx_msg BOOL OnQueryNewPalette();
Valor de retorno
Não zero se o CWnd
perceber sua paleta lógica; caso contrário, 0.
CWnd::OnQueryOpen
A estrutura chama essa função de membro quando o CWnd
objeto é minimizado e o usuário solicita que ele CWnd
seja restaurado para seu tamanho e posição preminimizados.
afx_msg BOOL OnQueryOpen();
Valor de retorno
Não zero se o ícone puder ser aberto ou 0 para impedir que o ícone seja aberto.
Comentários
Enquanto estiver dentro 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 membro emula a funcionalidade da WM_QUERYUISTATE
mensagem, conforme descrito no SDK do Windows.
CWnd::OnRawInput
A estrutura chama essa função de 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 ser um dos seguintes valores:
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 RAWINPUT
estrutura que contém a entrada bruta do dispositivo.
Comentários
Esse método recebe a WM_INPUT
notificação, que é descrita no SDK Windows.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de 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 chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio está inativo.MK_RBUTTON
Defina se o botão direito do mouse está inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica as coordenadas x e y do cursor. Essas 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 OnRButtonDblClk
chamadas. Esse é o padrão para janelas na Biblioteca de Classes do Microsoft Foundation. Windows chamadas OnRButtonDblClk
quando o usuário pressiona, libera e, em seguida, pressiona novamente o botão direito do mouse dentro do limite de tempo de clique duplo do sistema. Clicar duas vezes no botão direito do mouse gera quatro eventos: WM_RBUTTONDOWN
e WM_RBUTTONUP
mensagens, a OnRButtonDblClk
chamada e outra WM_RBUTTONUP mensagem quando o botão é liberado.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o usuário pressiona o botão direito do mouse.
afx_msg void OnRButtonDown(
UINT nFlags,
CPoint point);
Parâmetros
nFlags
Indica se várias chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio está inativo.MK_RBUTTON
Defina se o botão direito do mouse está inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica as coordenadas x e y do cursor. Essas 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 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 de 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 chaves virtuais estão inativas. Esse parâmetro pode ser qualquer combinação dos seguintes valores:
MK_CONTROL
Defina se a chave CTRL está inativa.MK_LBUTTON
Defina se o botão esquerdo do mouse estiver inativo.MK_MBUTTON
Defina se o botão do mouse do meio está inativo.MK_SHIFT
Defina se a chave SHIFT está inativa.
point
Especifica as coordenadas x e y do cursor. Essas 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 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 de membro quando 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
Posição horizontal do ponteiro.
lParam
Posição vertical do ponteiro.
Valor de retorno
Insignificante neste momento. Sempre zero.
Comentários
A menos que seja substituída, OnRegisteredMouseWheel
encaminhe a mensagem para a janela apropriada (a janela pai com foco) e chame o WM_MOUSEWHEEL
manipulador para essa janela.
Substitua essa função de membro para fornecer seu próprio roteamento de mensagem ou para alterar o comportamento de rolagem da roda do mouse.
Observação
OnRegisteredMouseWheel
manipula mensagens para Windows 95/98 e Windows NT 3.51. Para Windows NT tratamento de mensagens 4.0, use OnMouseWheel
.
CWnd::OnRenderAllFormats
A função membro do proprietário da Área de OnRenderAllFormats
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 SetClipboardData
função 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 OpenClipboard
função membro antes de chamar a SetClipboardData
função Windows e chamar a CloseClipboard
função Windows posteriormente.
CWnd::OnRenderFormat
A função membro do proprietário da Área de OnRenderFormat
Transferência é chamada pela estrutura quando um formato específico com renderização atrasada precisa ser renderizado.
afx_msg void OnRenderFormat(UINT nFormat);
Parâmetros
nFormat
Especifica 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 SetClipboardData
função Windows.
Não chame a OpenClipboard
função de membro ou a CloseClipboard
função Windows de dentroOnRenderFormat
.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de 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 WM_WTSSESSION_CHANGE
notificação, que é descrita no SDK Windows.
O nSessionState
parâmetro especifica que uma sessão está conectada ou desconectada do console ou de um terminal remoto, um usuário conectado ou desativado, 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 wParam
parâmetro da WM_WTSSESSION_CHANGE
mensagem.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 chamará essa função de membro se a entrada do mouse não for capturada e o mouse causar movimento de cursor dentro do CWnd
objeto.
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 de teste de ocorrência . O teste de ocorrência determina o local do cursor.
message
Especifica o número da mensagem do mouse.
Valor de retorno
Não é possível interromper o processamento adicional ou 0 para continuar.
Comentários
A implementação padrão chama a janela pai antes do OnSetCursor
processamento. Se a janela pai retornar TRUE
, o processamento adicional será interrompido. Chamar a janela pai fornece o controle da janela pai sobre a configuração do cursor em uma janela filho.
A implementação padrão define o cursor como uma seta se ela não estiver na área do cliente ou para o cursor de classe registrada, se estiver.
Se nHitTest
for HTERROR
e message
for uma mensagem de botão para baixo do mouse, a MessageBeep
função membro 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 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 de membro depois de obter o foco de entrada.
afx_msg void OnSetFocus(CWnd* pOldWnd);
Parâmetros
pOldWnd
Contém o CWnd
objeto 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 cuidado apropriadas neste momento.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 exige OnSettingChange
todas as janelas de nível superior quando a função Win32 SystemParametersInfo 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 SystemParametersInfo
chamada, esse parâmetro é um sinalizador que indica o parâmetro do sistema que foi alterado. Para obter uma lista de valores, consulte SystemParametersInfo
o 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 Windows enviará a mensagem se o usuário alterar as configurações por meio do Painel de Controle.
A ON_WM_SETTINGCHANGE
mensagem é semelhante à ON_WM_WININICHANGE
mensagem, com a seguinte diferença:
Use
ON_WM_SETTINGCHANGE
ao executar Windows NT 4.0 ou mais recente ou em Windows 95/98.Use
ON_WININICHANGE
ao executar Windows NT 3,51 ou mais. Esta mensagem agora está obsoleta.
Você deve ter apenas uma dessas macros no mapa de mensagens. Para escrever um programa que funcione para Windows 95/98 e Windows NT 4.0, escreva um manipulador para ON_WM_SETTINGCHANGE
. Em Windows NT 3.51, o manipulador será chamado OnSettingChange
e uFlags
sempre será zero.
CWnd::OnShowWindow
A estrutura chama essa função de membro quando o CWnd
objeto 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 ShowWindow
chamada de função membro; caso contrário nStatus
, será uma das seguintes:
SW_PARENTCLOSING
A janela pai está fechando (sendo tornada icônica) ou uma janela pop-up está sendo ocultada.SW_PARENTOPENING
A janela pai está abrindo (sendo exibida) ou uma janela pop-up está sendo mostrada.
Comentários
Uma janela é oculta ou mostrada quando a ShowWindow
função membro é chamada, quando uma janela sobreposta é maximizada ou restaurada, ou quando uma janela pop-up ou sobreposta é fechada (tornada icônica) 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 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 de membro depois que o tamanho da janela é alterado.
afx_msg void OnSize(
UINT nType,
int cx,
int cy);
Parâmetros
nType
Especifica o tipo de redimensionamento solicitado. Esse parâmetro pode ser um dos seguintes valores:
SIZE_MAXIMIZED
A janela foi maximizada.SIZE_MINIMIZED
A janela foi minimizada.SIZE_RESTORED
A janela foi redimensionada, mas nemSIZE_MINIMIZED
SIZE_MAXIMIZED
se aplica.SIZE_MAXHIDE
A mensagem é enviada para todas as janelas pop-up quando alguma outra janela é maximizada.SIZE_MAXSHOW
A mensagem é enviada para todas as janelas pop-up quando alguma outra janela foi restaurada para seu tamanho anterior.
cx
Especifica a nova largura da área do cliente.
cy
Especifica a nova altura da área do cliente.
Comentários
Se a função ou membro SetScrollPos
for chamada para uma janela filho, OnSize
o bRedraw
parâmetro de SetScrollPos
ou MoveWindow
não deve ser zero para fazer com que ela CWnd
seja repintada.MoveWindow
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 do proprietário da Área de OnSizeClipboard
Transferência é chamada pelo visualizador da Área de Transferência quando a Área de Transferência contém dados com o CF_OWNERDISPLAY
atributo e o tamanho da área do cliente da janela visualizador de área de transferência foi alterado.
afx_msg void OnSizeClipboard(
CWnd* pClipAppWnd,
HGLOBAL hRect);
Parâmetros
pClipAppWnd
Identifica a janela Área de Transferência-aplicativo. O ponteiro pode ser temporário e não deve ser armazenado.
hRect
Identifica um objeto de memória global. O objeto memory contém uma RECT
estrutura de dados que especifica a área para o proprietário da Área de Transferência pintar.
Comentários
A OnSizeClipboard
função membro é chamada com um retângulo nulo (0,0,0,0,0) como o novo tamanho quando o aplicativo de área de transferência está prestes a ser destruído ou minimizado. Isso permite que o proprietário da Área de Transferência libere seus recursos de exibição.
DentroOnSizeClipboard
, um aplicativo deve usar a GlobalLock
função Windows para bloquear a memória que contém a estrutura de RECT
dados. Faça com que o aplicativo desbloqueie essa memória com a GlobalUnlock
função Windows antes de gerar ou retornar o controle.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de 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 estrutura ou RECT
do CRect
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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 SP_JOBSTATUS
sinalizador.
nJobs
Especifica o número de trabalhos restantes na fila do Gerenciador de Impressão.
Comentários
Essa chamada é somente para fins informativos.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro depois que a SetWindowLong
função 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 inexistentes 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 pretendidos da janela foram alterados.
lpStyleStruct
Aponta para uma STYLESTRUCT
estrutura 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando a SetWindowLong
função está prestes a alterar um ou mais estilos da janela.
afx_msg void OnStyleChanging(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parâmetros
nStyleType
Especifica se os estilos estendidos ou inexistentes 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 pretendidos da janela foram alterados.
lpStyleStruct
Aponta para uma STYLESTRUCT
estrutura que contém os novos estilos da janela. Um aplicativo pode examinar os estilos e alterá-los.
Comentários
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro se CWnd
tiver o foco de entrada e as WM_SYSKEYUP
mensagens e WM_SYSKEYDOWN
as mensagens forem traduzidas.
afx_msg void OnSysChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parâmetros
nChar
Especifica o código de chave de caractere ASCII de uma chave de menu de 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 segurando a chave.
nFlags
O nFlags
parâmetro 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 chave pressionada. |
16-23 | Especifica o código de verificação. O valor depende do OEM (fabricante de equipamento original) |
24 | Especifica se a chave é uma chave 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 chave estendida; caso contrário, é 0. |
25-28 | Usado internamente por 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 chave anterior. O valor será 1 se a chave estiver inativa antes do envio da mensagem ou se for 0 se a chave estiver ativada. |
31 | Especifica o estado de transição. O valor será 1 se a tecla estiver sendo liberada ou se for 0 se a tecla estiver sendo pressionada. |
Comentários
Ele especifica o código de chave virtual da chave de menu Controle. (Para obter uma lista de códigos de chave virtual padrão, consulte Winuser.h)
Quando o código de contexto é 0, WM_SYSCHAR
pode passar a WM_SYSCHAR
mensagem para a TranslateAccelerator
função Windows, que tratará como se fosse uma mensagem de chave normal em vez de uma chave de caractere do sistema. Isso permite que as teclas de acelerador sejam usadas com a janela ativa, mesmo que a janela ativa não tenha o foco de entrada.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL corretas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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
Windows chamadas 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 de 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 ser qualquer um dos seguintes valores:
SC_CLOSE
Feche oCWnd
objeto.SC_HOTKEY
Ative oCWnd
objeto associado à chave de acesso especificada pelo aplicativo. A palavra delParam
baixa ordem identifica aHWND
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 oCWnd
objeto.SC_MINIMIZE
(ouSC_ICON
) Minimize oCWnd
objeto.SC_MOUSEMENU
Recupere um menu por meio de um clique do mouse.SC_MOVE
Mova oCWnd
objeto.SC_NEXTWINDOW
Vá para a próxima janela.SC_PREVWINDOW
Mover para a janela anterior.SC_RESTORE
Restaurar a janela para a posição e o tamanho normais.SC_SCREENSAVE
Executa o aplicativo de salvamento de tela especificado na seção [inicialização] doSYSTEM.INI
arquivo.SC_SIZE
Dimensione oCWnd
objeto.SC_TASKLIST
Execute ou ative o aplicativo Windows Task Manager.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 será usado.
SC_HOTKEY
Ative a janela associada à chave de acesso especificada pelo aplicativo. A palavra delParam
baixa ordem identifica a janela a ser ativada.SC_SCREENSAVE
Execute o aplicativo de salvamento de tela especificado na seção Desktop 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 WM_SYSCOMMAND
mensagens, os quatro bits de baixa ordem do nID
parâmetro são usados internamente por Windows. Quando um aplicativo testa o valor de nID
, ele deve combinar o valor 0xFFF0 com o nID
valor usando o operador bit a bit AND para obter o resultado correto.
Os itens de menu em um menu De controle podem ser modificados com as GetSystemMenu
funções de membro e , AppendMenu
InsertMenu
e ModifyMenu
Os aplicativos que modificam o menu Controle devem processar WM_SYSCOMMAND
mensagens e todas WM_SYSCOMMAND
as mensagens 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 WM_SYSCOMMAND
mensagem para OnSysCommand
.
Os pressionamentos de tecla acelerador (atalho) definidos para selecionar itens no menu Controle são traduzidos em OnSysCommand
chamadas; todos os outros pressionamentos de teclas de acelerador são traduzidos em WM_COMMAND
mensagens.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro se o CWnd
objeto tiver o foco de entrada quando a função ou OnSysKeyDown
membro OnSysKeyUp
for chamada.
afx_msg void OnSysDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parâmetros
nChar
Especifica o valor do caractere de chave morta.
nRepCnt
Especifica a contagem de repetição.
nFlags
Especifica o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto, conforme mostrado na lista a seguir:
Valor | Significado |
---|---|
0-7 | Código de verificação (valor dependente de OEM). Baixo byte de palavra de alta ordem. |
8 | Chave estendida, como uma chave de função ou uma chave no teclado numérico (1 se for uma chave estendida; caso contrário, 0). |
9-10 | Não usado. |
11-12 | Usado internamente por 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 chave anterior (1 se a chave estiver inativa antes da chamada, 0 se a chave estiver ativada). |
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 chave morta.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 CWnd
objeto tiver o foco de entrada, a OnSysKeyDown
função membro 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 chave virtual da tecla que está sendo pressionada. Para obter uma lista de códigos de chave virtual padrão, consulte Winuser.h
nRepCnt
Especifica a contagem de repetição.
nFlags
Especifica o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto, conforme mostrado na lista a seguir:
Valor | Significado |
---|---|
0-7 | Código de verificação (valor dependente de OEM). Baixo byte de palavra de alta ordem. |
8 | Chave estendida, como uma chave de função ou uma chave no teclado numérico (1 se for uma chave estendida; caso contrário, 0). |
9-10 | Não usado. |
11-12 | Usado internamente por Windows. |
13 | Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada, caso contrário). |
14 | Estado de chave anterior (1 se a chave estiver inativa antes do envio da mensagem, 0 se a chave estiver ativada). |
15 | Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada). |
Para OnSysKeyDown
chamadas, 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 inativa 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 de membro da OnSysKeyDown
janela ativa será chamada. O CWnd
objeto que recebe a mensagem pode distinguir entre esses dois contextos verificando o código de contexto em nFlags
.
Quando o código de contexto for 0, a WM_SYSKEYDOWN
mensagem recebida por OnSysKeyDown
ele poderá ser passada para a TranslateAccelerator
função Windows, que tratará como se fosse uma mensagem-chave normal em vez de uma mensagem de chave do sistema. Isso permite que as teclas de acelerador 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 OnSysKeyDown
chamada pode ocorrer antes que a WM_SYSKEYUP
mensagem seja recebida. O estado de chave anterior (bit 14) pode ser usado para determinar se a OnSysKeyDown
chamada indica a primeira transição para baixo ou uma transição repetida para baixo.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL corretas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 CWnd
objeto tiver o foco, a OnSysKeyUp
função de membro 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 chave virtual da tecla que está sendo pressionada. Para obter uma lista de códigos de chave virtual padrão, consulte Winuser.h
nRepCnt
Especifica a contagem de repetição.
nFlags
Especifica o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto, conforme mostrado na lista a seguir:
Valor | Significado |
---|---|
0-7 | Código de verificação (valor dependente de OEM). Baixo byte de palavra de alta ordem. |
8 | Chave estendida, como uma chave de função ou uma chave no teclado numérico (1 se for uma chave estendida; caso contrário, 0). |
9-10 | Não usado. |
11-12 | Usado internamente por Windows. |
13 | Código de contexto (1 se a tecla ALT for mantida pressionada enquanto a tecla for pressionada, caso contrário). |
14 | Estado de chave anterior (1 se a chave estiver inativa antes do envio da mensagem, 0 se a chave estiver ativada). |
15 | Estado de transição (1 se a tecla estiver sendo liberada, 0 se a tecla estiver sendo pressionada). |
Para OnSysKeyUp
chamadas, 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 inativa 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 de membro da OnSysKeyUp
janela ativa será chamada. O CWnd
objeto que recebe a chamada pode distinguir entre esses dois contextos verificando o código de contexto em nFlags
.
Quando o código de contexto for 0, a WM_SYSKEYUP
mensagem recebida por OnSysKeyUp
ele poderá ser passada para a TranslateAccelerator
função Windows, que tratará como se fosse uma mensagem-chave normal em vez de uma mensagem de chave do sistema. Isso permite que as teclas de acelerador (atalho) sejam usadas com a janela ativa, mesmo que a janela ativa não tenha o foco de entrada.
Para teclados ibm avançados de 101 e 102 teclas, as teclas aprimoradas são a ALT certa e as teclas CTRL corretas na seção principal do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta 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.
Para não-EUA. Teclados avançados de 102 teclas, 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 chave:
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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 destes valores:
IDABORT
O usuário clicou em um botão Abortar 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 de Windows autor.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 de repetição autorizável.HELP_TCARD_DATA
O usuário clicou em um botão autorizável. OdwActionData
parâmetro contém um inteiro longo especificado pelo autor da ajuda.HELP_TCARD_NEXT
O usuário clicou em um botão Avançar 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 Windows Ajuda. Um aplicativo inicia um cartão de treinamento especificando o HELP_TCARD
comando em uma chamada para a WinHelp
função.
CWnd::OnTimeChange
A estrutura chama essa função de membro depois que o tempo do sistema é alterado.
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 WM_TIMECHANGE
mensagem para todas as janelas de nível superior, um aplicativo pode usar a SendMessage
função Windows com seu hwnd
parâmetro definido como HWND_BROADCAST
.
CWnd::OnTimer
A estrutura chama essa função de membro após cada intervalo especificado na SetTimer
função membro usada para instalar um temporizador.
afx_msg void OnTimer(UINT_PTR nIDEvent);
Parâmetros
nIDEvent
Especifica o identificador do temporizador.
Comentários
A DispatchMessage
função Windows envia uma WM_TIMER
mensagem quando nenhuma outra mensagem está na fila de mensagens do aplicativo.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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
Consulte o exemplo em CWnd::SetTimer
.
CWnd::OnToolHitTest
A estrutura chama essa função de 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. Essas coordenadas são sempre relativas ao canto superior esquerdo da janela
pTI
Um ponteiro para uma TOOLINFO
estrutura. Os seguintes valores de estrutura são definidos por padrão:
hwnd
=m_hWnd
Manipular para uma janelauId
=(UINT)hWndChild
Manipular para uma janela filhouFlags
|=TTF_IDISHWND
Identificador da 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, a 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
defina os sinalizadores de estrutura como TTF_NOTBUTTON
e TTF_CENTERTIP
.
Substitua OnToolHitTest
para fornecer informações diferentes do padrão fornecido.
ConsulteTOOLINFO
, no SDK do Windows, para obter mais informações sobre a estrutura.
CWnd::OnTouchInput
Processe a entrada única de Windows toque.
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 entrada por toque.
nInputsCount
Número total de entradas por toque.
pInput
Ponteiro para a estrutura TOUCHINPUT
.
Valor de retorno
TRUE
se o aplicativo processar Windows entrada por toque; caso contrárioFALSE
.
Comentários
CWnd::OnTouchInputs
Processa entradas de Windows toque.
virtual BOOL OnTouchInputs(
UINT nInputsCount,
PTOUCHINPUT pInputs);
Parâmetros
nInputsCount
Número total de entradas por toque Windows.
pInputs
Matriz de TOUCHINPUT
.
Valor de retorno
TRUE
se o aplicativo processar Windows entradas por toque; caso contrárioFALSE
.
Comentários
CWnd::OnUniChar
A estrutura chama essa função de membro quando uma tecla é pressionada. Ou seja, a janela atual tem o foco do teclado e uma WM_KEYDOWN
mensagem é traduzida pela TranslateMessage
função.
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 é autorepeado como resultado do usuário segurando a chave. 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 chave estendida, o código de contexto, o estado de chave 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 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 chave for uma chave estendida; caso contrário, é 0. |
9-12 | Usado internamente por Windows. |
13 | Especifica o código de contexto. O sinalizador será 1 se a tecla ALT estiver pressionada enquanto a tecla for pressionada; caso contrário, o valor será 0. |
14 Especifica o estado de chave anterior. O sinalizador será 1 se a chave estiver inativa antes do envio da mensagem ou 0 se a chave estiver ativada. | |
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 WM_UNICHAR
notificação, que é descrita no SDK do Windows. A WM_UNICHAR
mensagem foi projetada para enviar ou postar caracteres Unicode para janelas ANSI. É equivalente à WM_CHAR
mensagem, mas usa a codificação UTF-32 (Unicode Transformation Format-32), enquanto a WM_CHAR
mensagem usa UTF-16.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de 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 CMenu
objeto 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 WM_UNINITMENUPOPUP
notificação, que é descrita no SDK do Windows.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 membro emula a funcionalidade da WM_UPDATEUISTATE
mensagem, 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 desativa.
afx_msg void OnUserChanged();
Comentários
Esse método recebe a WM_USERCHANGED
mensagem de notificação, que é descrita no SDK do Windows. Quando o usuário faz logon ou desativa, 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 de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 CWnd
objeto possuir uma caixa de listagem com o LBS_WANTKEYBOARDINPUT
estilo, a caixa de listagem enviará a WM_VKEYTOITEM
mensagem em resposta a uma WM_KEYDOWN
mensagem.
afx_msg int OnVKeyToItem(
UINT nKey,
CListBox* pListBox,
UINT nIndex);
Parâmetros
nKey
Especifica o código de chave virtual da chave que o usuário pressionou. Para obter uma lista de códigos de chave 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 requer nenhuma ação adicional pela 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 de membro é chamada pela estrutura apenas para caixas de listagem que têm o LBS_HASSTRINGS
estilo.
Observação
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem de 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 de membro quando o usuário clica na barra de rolagem vertical da 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 baixo.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 cima.
nPos
Contém a posição atual da caixa de rolagem se o código da barra de rolagem for ouSB_THUMBTRACK
; caso contrário, não será SB_THUMBPOSITION
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 CWnd
objeto, ele também deverá redefinir a posição da caixa de rolagem com a SetScrollPos
função membro.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 do proprietário da Área de OnVScrollClipboard
Transferência é chamada pelo visualizador da Área de Transferência quando os dados da Área de Transferência têm o CF_OWNERDISPLAY
formato 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 baixo.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 cima.
nPos
Contém 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 apropriada 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 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 estiver.
Comentários
Esse método recebe a WM_DWMWINDOWMAXIMIZEDCHANGE
mensagem de notificação, que é descrita no SDK Windows.
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o tamanho, a posição ou a ordem Z são alterados como resultado de uma chamada para a SetWindowPos
função membro ou outra função de gerenciamento de janela.
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
Parâmetros
lpwndpos
Aponta para uma WINDOWPOS
estrutura de dados que contém informações sobre o novo tamanho e a posição da janela.
Comentários
A implementação padrão envia e WM_SIZE
WM_MOVE
as mensagens para a janela. Essas mensagens não serão enviadas se um aplicativo manipular a OnWindowPosChanged
chamada 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 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 de membro quando o tamanho, a posição ou a ordem Z estão prestes a ser alterados como resultado de uma chamada para a SetWindowPos
função membro ou outra função de gerenciamento de janela.
afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
Parâmetros
lpwndpos
Aponta para uma WINDOWPOS
estrutura de dados 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 desmarcando os bits apropriados no flags
membro da WINDOWPOS
estrutura.
Para uma janela com o estilo ou WS_THICKFRAME
o WS_OVERLAPPED
estilo, a implementação padrão envia uma WM_GETMINMAXINFO
mensagem para a janela. Isso é feito para validar o novo tamanho e a posição da janela e para impor os estilos e CS_BYTEALIGN
clienteCS_BYTEALIGNCLIENT
. 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 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 de membro depois que uma alteração é feita no arquivo de inicialização 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 SystemParametersInfo
função Windows chama OnWinIniChange
depois que um aplicativo usa a função para alterar uma configuração no WIN.INI
arquivo.
Para enviar a WM_WININICHANGE
mensagem para todas as janelas de nível superior, um aplicativo pode usar a SendMessage
função Windows com seu hwnd
parâmetro definido como HWND_BROADCAST
.
Se um aplicativo alterar muitas seções WIN.INI
diferentes ao mesmo tempo, o aplicativo deverá enviar uma WM_WININICHANGE
mensagem 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 OnWinIniChange
chamada com lpszSection
o conjunto definido, 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 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; 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 de membro quando o usuário clica XBUTTON1
duas vezes 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 MK_CONTROL
sinalizador 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 CPoint
objeto que especifica as coordenadas e y
o x
cursor relativos ao canto superior esquerdo da área do cliente.
Comentários
Esse método recebe a WM_XBUTTONDBLCLK
notificação, que é descrita no SDK 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 nFlags
parâmetro pode ser uma combinação de chaves modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.
Chave do modificador | Descrição |
---|---|
MK_CONTROL |
A tecla CTRL é 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 é pressionada. |
MK_XBUTTON1 |
O XBUTTON1 botão do mouse do Microsoft IntelliMouse é pressionado. |
MK_XBUTTON2 |
O XBUTTON2 botão do mouse do Microsoft IntelliMouse é pressionado. |
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o usuário pressiona 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 MK_CONTROL
sinalizador indica que a tecla CTRL está pressionada.
nButton
[in] Um valor de XBUTTON1
se o primeiro botão Microsoft Intellimouse X foi clicado ou XBUTTON2
se o segundo botão X foi clicado.
point
[in] Um CPoint
objeto que especifica as coordenadas e y
o x
cursor relativos ao canto superior esquerdo da área do cliente.
Comentários
Esse método recebe a WM_XBUTTONDOWN
notificação, que é descrita no SDK 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 nFlags
parâmetro pode ser uma combinação de chaves modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.
Chave do modificador | Descrição |
---|---|
MK_CONTROL |
A tecla CTRL é 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 é pressionada. |
MK_XBUTTON1 |
O XBUTTON1 botão do mouse do Microsoft IntelliMouse é pressionado. |
MK_XBUTTON2 |
O XBUTTON2 botão do mouse do Microsoft IntelliMouse é pressionado. |
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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 de membro quando o usuário é liberado 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 MK_CONTROL
sinalizador indica que a tecla CTRL está pressionada.
nButton
[in] Um valor de XBUTTON1
se o primeiro botão Microsoft Intellimouse X foi clicado duas vezes ou XBUTTON2
se o segundo botão X foi clicado duas vezes.
point
[in] Um CPoint
objeto que especifica as coordenadas e y
o x
cursor relativos ao canto superior esquerdo da área do cliente.
Comentários
Esse método recebe a WM_XBUTTONUP
notificação, que é descrita no SDK 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 nFlags
parâmetro pode ser uma combinação de chaves modificadoras listadas na tabela a seguir. Para obter mais informações, consulte Sobre a entrada do mouse.
Chave do modificador | Descrição |
---|---|
MK_CONTROL |
A tecla CTRL é 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 é pressionada. |
MK_XBUTTON1 |
O XBUTTON1 botão do mouse do Microsoft IntelliMouse é pressionado. |
MK_XBUTTON2 |
O XBUTTON2 botão do mouse do Microsoft IntelliMouse é pressionado. |
Observação
Essa função membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem 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
Não zero se a Área de Transferência for aberta por meio 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 CloseClipboard
função Windows seja chamada.
O objeto atual CWnd
não se tornará o proprietário da Área de Transferência até que a EmptyClipboard
função 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 para o CWnd
objeto.
operator HWND() const;
CWnd::operator !=
Compara dois CWnd
objetos para determinar se eles não têm o mesmo m_hWnd
.
BOOL operator!=(const CWnd& wnd) const;
Parâmetros
wnd
Uma referência a um objeto CWnd
.
Valor de retorno
Nonzero se igual; caso contrário, 0.
CWnd::operator ==
Compara dois CWnd
objetos para determinar se eles têm o mesmo m_hWnd
.
BOOL operator==(const CWnd& wnd) const;
Parâmetros
wnd
Uma referência a um objeto CWnd
.
Valor de retorno
Nonzero 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 postada.
wParam
Especifica informações adicionais da mensagem. O conteúdo desse parâmetro depende da mensagem que está sendo postada.
lParam
Especifica informações adicionais da mensagem. O conteúdo desse parâmetro depende da mensagem que está sendo postada.
Valor de retorno
Não zero se a mensagem for postada; caso contrário, 0.
Comentários
As mensagens em uma fila de mensagens são recuperadas por chamadas para a GetMessage
função ou PeekMessage
Windows.
A função Windows PostMessage
pode ser usada para acessar outro aplicativo.
Exemplo
Consulte o exemplo de AfxGetMainWnd
.
CWnd::PostNcDestroy
Chamado pela função de 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 this
ponteiro.
CWnd::PreCreateWindow
Chamado pela estrutura antes da criação da janela Windows anexada a esse CWnd
objeto.
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parâmetros
cs
Uma estrutura CREATESTRUCT
.
Valor de retorno
Não 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 ao cs
this
ponteiro se o menu for NULL
e o estilo contiver WS_CHILD
. Para a funcionalidade adequada, verifique se o controle de diálogo tem uma ID que não NULL
é .
Essa alteração corrige uma falha em cenários de interoperabilidade gerenciados/nativos. Uma TRACE
instrução em CWnd::Create
alertas para o desenvolvedor do problema.
Nunca chame essa função diretamente.
A implementação padrão dessa função verifica o nome de uma NULL
classe de janela e substitui um padrão apropriado. Substitua essa função de membro para modificar a CREATESTRUCT
estrutura antes que a janela seja criada.
Cada classe derivada de 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 a 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 de 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 de membro permite a subclasse dinâmica de controles. É uma substituição avançada.
CWnd::PreTranslateMessage
Usado por classe CWinApp
para traduzir mensagens de janela antes de serem enviadas para as TranslateMessage
funções e DispatchMessage
Windows.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parâmetros
pMsg
Aponta para uma MSG
estrutura que contém a mensagem a ser processada.
Valor de retorno
Não zero se a mensagem foi traduzida e não deve ser expedida; 0 se a mensagem não foi traduzida e deve ser enviada.
CWnd::Print
Chame essa função de membro para desenhar a janela atual no contexto do dispositivo especificado, que é mais comumente 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
Desenhe a janela somente se ela estiver visível.PRF_CHILDREN
Desenhe todas as janelas filhos visíveis.PRF_CLIENT
Desenhe a área do cliente da janela.PRF_ERASEBKGND
Apago o plano de fundo antes de desenhar a janela.PRF_NONCLIENT
Desenhe a área nãocliente da janela.PRF_OWNED
Desenhe todas as janelas de propriedade.
Comentários
CWnd::DefWindowProc
a função 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ãocliente no contexto de dispositivo fornecido.Se
PRF_ERASEBKGND
for especificado, envie umaWM_ERASEBKGND
mensagem à janela.Se
PRF_CLIENT
for especificado, envie umaWM_PRINTCLIENT
mensagem à janela.Se
PRF_CHILDREN
estiver definido, envie umaWM_PRINT
mensagem para cada janela filho visível.Se
PRF_OWNED
estiver definido, envie umaWM_PRINT
mensagem para cada janela de propriedade visível.
CWnd::PrintClient
Chame essa função de 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
Desenhe a janela somente se ela estiver visível.PRF_CHILDREN
Desenhe todas as janelas filhos visíveis.PRF_CLIENT
Desenhe a área do cliente da janela.PRF_ERASEBKGND
Apago o plano de fundo antes de desenhar a janela.PRF_NONCLIENT
Desenhe a área nãocliente da janela.PRF_OWNED
Desenhe todas as janelas de propriedade.
CWnd::PrintWindow
Copia uma janela visual para o contexto do dispositivo especificado, normalmente um DC 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
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoPrintWindow
, conforme descrito no SDK do Windows.
CWnd::RedrawWindow
Atualiza o retângulo ou a região especificados na área de cliente da janela determinada.
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
Parâmetros
lpRectUpdate
Aponta para uma RECT
estrutura 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. Se ambos prgnUpdate
e lpRectUpdate
estiverem 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 umaWM_ERASEBKGND
mensagem quando a janela é repintada. ORDW_INVALIDATE
sinalizador também deve ser especificado; caso contrário, RDW_ERASE não terá efeito.RDW_FRAME
Faz com que qualquer parte da área nãocliente da janela que cruze a região de atualização receba umaWM_NCPAINT
mensagem. ORDW_INVALIDATE
sinalizador também deve ser especificado; caso contrárioRDW_FRAME
, não terá efeito.RDW_INTERNALPAINT
Faz com que umaWM_PAINT
mensagem seja postada na janela, independentemente de a janela conter uma região inválida.RDW_INVALIDATE
InvalidarlpRectUpdate
ouprgnUpdate
(apenas um pode nãoNULL
ser). Se ambos estiveremNULL
, 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 eRDW_VALIDATE
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 afetaWM_PAINT
as mensagens resultantes de áreas inválidas.RDW_VALIDATE
lpRectUpdate
Valida ouprgnUpdate
(apenas um pode nãoNULL
ser). Se ambos estiveremNULL
, a janela inteira será validada. Esse sinalizador não afeta mensagens internasWM_PAINT
.
O controle de sinalizadores a seguir durante a repintação 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 pelo e sinalizadoresRDW_ALLCHILDREN
) recebamWM_NCPAINT
eWM_ERASEBKGND
mensagens, se necessário, antes que a função retorne.RDW_NOCHILDREN
WM_PAINT
as mensagens são adiadas.RDW_UPDATENOW
Faz com que as janelas afetadas (conforme especificado pelo e sinalizadoresRDW_ALLCHILDREN
) recebamWM_NCPAINT
,WM_ERASEBKGND
eWM_PAINT
as mensagens, se necessário, antes que a funçãoRDW_NOCHILDREN
retorne.
Por padrão, as janelas afetadas pela RedrawWindow
função dependem se a janela especificada tem o WS_CLIPCHILDREN
estilo. As janelas filho das WS_CLIPCHILDREN
janelas não são afetadas. No entanto, as janelas que não WS_CLIPCHILDREN
são janelas são validadas recursivamente ou invalidadas até que uma WS_CLIPCHILDREN
janela seja encontrada. Os sinalizadores a seguir controlam quais janelas são afetadas pela RedrawWindow
função:
RDW_ALLCHILDREN
Inclui janelas filho, se houver, na operação de repinção.RDW_NOCHILDREN
Exclui janelas filho, se houver, da operação de repinto.
Valor de retorno
Não zero se a janela foi redesenhada com êxito; caso contrário, 0.
Comentários
Quando a RedrawWindow
função membro é usada para invalidar parte da janela da área de trabalho, essa janela não recebe uma WM_PAINT
mensagem. Para repintizar a área de trabalho, um aplicativo deve usarCWnd::ValidateRgn
, CWnd::InvalidateRgn
ou CWnd::UpdateWindow
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
à sua origem.
As mensagens refletidas são enviadas diretamente para CWnd::OnWndMsg
ou CCmdTarget::OnCmdMsg
.
Para obter mais informações sobre a reflexão de mensagens, consulte Como lidar com mensagens refletidas.
CWnd::ReflectLastMsg
Essa função de 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 para uma janela filho.
pResult
O resultado gerado pela janela filho a ser retornado pela janela pai. Pode ser NULL
.
Valor de retorno
Não zero se a mensagem foi tratada; caso contrário, 0.
Comentários
Essa função membro chama SendChildNotifyLastMsg
se a janela identificada por hWndChild
um controle OLE ou uma janela no mapa permanente.
Para obter mais informações sobre a 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
Não zero se tiver êxito; caso contrário, 0.
Comentários
O efeito da ReleaseDC
função membro depende do tipo de contexto do dispositivo.
O aplicativo deve chamar a ReleaseDC
função de membro para cada chamada para a GetWindowDC
função membro e para cada chamada para a GetDC
função membro.
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
A ID do primeiro em um intervalo de barras de controle para reposicionar e redimensionar.
nIDLast
A ID da última em um intervalo de barras de controle para reposicionar e redimensionar.
nIDLeftOver
Especifica a 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 dissolpRectParam
, é inicializado com o tamanho da área do cliente, como se o layout tivesse sido realmente feito.CWnd::reposExtra
Adiciona os valores dalpRectParam
área donIDLast
cliente e também executa o layout.
lpRectParam
Aponta para uma RECT
estrutura; o uso do qual depende do valor de nFlag
.
lpRectClient
Aponta para uma RECT
estrutura 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 estendida até o tamanho do quadro.
Comentários
O nIDFirst
e nIDLast
os parâmetros definem um intervalo de IDs de barra de controle a serem reposicionadas na área do cliente. O nIDLeftOver
parâmetro especifica a 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 de membro para recuperar, traduzir ou expedir mensagens até ContinueModal
retornar FALSE
.
int RunModalLoop(DWORD dwFlags = 0);
Parâmetros
dwFlags
Especifica a mensagem Windows a ser enviada. Pode ser um dos seguintes valores:
MLF_NOIDLEMSG
Não envieWM_ENTERIDLE
mensagens para o pai.MLF_NOKICKIDLE
Não envieWM_KICKIDLE
mensagens para a janela.MLF_SHOWONIDLE
Mostre a janela quando a fila de mensagens ficar ociosa.
Valor de retorno
Especifica o valor do nResult
parâmetro passado para a EndModalLoop
função membro, que é usada para encerrar o loop modal.
Comentários
Por padrão, ContinueModal
retorna FALSE
após EndModalLoop
ser chamado. Retorna o valor fornecido quanto nResult
a EndModalLoop
.
CWnd::ScreenToClient
Converte as coordenadas de tela de um determinado ponto ou retângulo na exibição em coordenadas do cliente.
void ScreenToClient(LPPOINT lpPoint) const; void ScreenToClient(LPRECT lpRect) const;
Parâmetros
lpPoint
Aponta para um CPoint
objeto ou POINT
estrutura que contém as coordenadas de tela a serem convertidas.
lpRect
Aponta para um CRect
objeto ou RECT
estrutura que contém as coordenadas de tela a serem convertidas.
Comentários
A ScreenToClient
função membro substitui as coordenadas de tela fornecidas dentro lpPoint
ou lpRect
por coordenadas do cliente. As novas coordenadas são relativas ao canto superior esquerdo da área do CWnd
cliente.
Exemplo
Consulte 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 vertical. Esse parâmetro deve ser um valor negativo para rolar para cima.
lpRect
Aponta para um CRect
objeto ou RECT
estrutura 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 o retângulo de rolagem.
lpClipRect
Aponta para um CRect
objeto ou RECT
estrutura que especifica o retângulo de recorte a ser rolado. Somente os bits dentro desse retângulo são rolados. Bits fora desse retângulo não são afetados mesmo que estejam no lpRect
retângulo. Se lpClipRect
for NULL
, nenhum recorte é executado no retângulo de rolagem.
Comentários
Se o cursor estiver sendo CWnd
rolado, ScrollWindow
ocultará automaticamente o cursor para evitar que ele seja apagado e restaure o careta após a conclusão da rolagem. A posição de cuidado é ajustada adequadamente.
A área descoberta pela ScrollWindow
função membro não é repintada, mas é combinada na região de atualização do objeto atual CWnd
. O aplicativo eventualmente receberá uma WM_PAINT
mensagem notificando-a de que a região precisa ser repintificada. Para repintar a área descoberta ao mesmo tempo em que a rolagem é feita, chame a UpdateWindow
função de membro imediatamente após a chamada ScrollWindow
.
Se lpRect
forNULL
, as posições de qualquer janela filho na janela são compensadas pelo valor especificado eyAmount
, e quaisquer áreas inválidas xAmount
(não pagas) no CWnd
também são compensadas. ScrollWindow
é mais rápido quando lpRect
é NULL
.
Se lpRect
não NULL
estiver, as posições das janelas filho não serão alteradas e as áreas CWnd
inválidas não serão deslocadas. Para evitar problemas de atualização quando lpRect
não NULL
estiver, chame a UpdateWindow
função membro para repintação 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 ter um valor negativo para rolar para a esquerda.
dy
Especifica a quantidade, em unidades de dispositivo, da rolagem vertical. Esse parâmetro deve ter um valor negativo para rolar para cima.
lpRectScroll
Aponta para uma RECT
estrutura 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 RECT
estrutura 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 desse retângulo são rolados. Bits fora desse retângulo não são afetados mesmo que estejam no lpRectScroll
retângulo. 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 RECT
estrutura 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 umaWM_ERASEBKGND
mensagem para a janela.SW_INVALIDATE
Invalida a região identificada apósprgnUpdate
a rolagem.SW_SCROLLCHILDREN
Rola todas as janelas filho que cruzam o retângulo apontado pelolpRectScroll
número de pixels especificados emdx
edy
. Windows envia umaWM_MOVE
mensagem para todas as janelas filho que se cruzamlpRectScroll
, 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 à ScrollWindow
função, com alguns recursos adicionais.
Se SW_INVALIDATE
e SW_ERASE
não forem especificados, a ScrollWindowEx
função membro não invalida a área da qual é rolada. Se qualquer um desses sinalizadores estiver definido, ScrollWindowEx
invalide essa área. A área não é atualizada até que o aplicativo chame a UpdateWindow
função membro, chame a RedrawWindow
função de membro (especificando RDW_UPDATENOW
ou RDW_ERASENOW
) ou recupere a WM_PAINT
mensagem da fila do aplicativo.
Se a janela tiver o WS_CLIPCHILDREN
estilo, as áreas retornadas especificadas e prgnUpdate
lpRectUpdate
representarão a área total da janela rolada que deve ser atualizada, incluindo quaisquer áreas em janelas filho que precisem ser atualizadas.
Se o SW_SCROLLCHILDREN
sinalizador for especificado, 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 DeferWindowPos
função Windows para mover janelas filho que não estão completamente dentro do lpRectScroll
retângulo. O cursor será reposicionado se o SW_SCROLLCHILDREN
sinalizador estiver definido e o retângulo de careta cruzar o retângulo de rolagem.
Todas as coordenadas de entrada e saída (para lpRectScroll
, lpRectClip
e prgnUpdate
lpRectUpdate
) são consideradas coordenadas do cliente, independentemente de a janela ter o CS_OWNDC
estilo ou CS_CLASSDC
a classe. Use as LPtoDP
funções e DPtoLP
Windows para converter de e para coordenadas lógicas, se necessário.
CWnd::SendChildNotifyLastMsg
Essa função de membro é chamada pela estrutura para fornecer uma mensagem de notificação para uma janela filho, da janela pai, para que a janela filho possa manipular 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 a 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 SendDlgItemMessage
função membro não retorna até que a mensagem tenha sido processada.
O uso SendDlgItemMessage
é idêntico à obtenção de um CWnd
* para o controle determinado e chamar a SendMessage
função de membro.
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 esta 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 SendMessage
função membro chama o procedimento de janela diretamente e não retorna até que o procedimento da janela tenha processado a mensagem. Isso contrasta com a PostMessage
função de membro, 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 de membro para enviar a mensagem de Windows especificada 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 pesquisar. Se TRUE
, recursivamente, pesquisar todas as crianças; se FALSE
, pesquisar somente 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 obter 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
estiverem TRUE
, a pesquisa continuará abaixo das 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 da 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; ela não aguarda o procedimento da janela concluir o processamento da 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 SetActiveWindow
função membro deve ser usada com cuidado, pois permite que um aplicativo assuma arbitrariamente a janela ativa e o foco de entrada. Normalmente, 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 há 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 deve chamar a ReleaseCapture
função para que outras janelas possam receber a entrada do mouse.
Enquanto a entrada do mouse é capturada, nenhuma WM_NCHITTEST
ou WM_SETCURSOR
mensagens são enviadas 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 caret.
Comentários
A SetCaretPos
função membro moverá o cursor somente se ele pertencer a uma janela na tarefa atual. SetCaretPos
move o caret se o caret está oculto ou não.
O cursor é um recurso compartilhado. Uma janela não deve mover o careta se ele não possui o caret.
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 WM_DRAWCLIPBOARD
mensagem) sempre que o conteúdo da Área de Transferência é 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 de cadeia de visualizadores de área de transferência.
Comentários
Uma janela que faz parte da cadeia de visualizadores de área de transferência deve responder WM_DRAWCLIPBOARD
e WM_CHANGECBCHAIN
WM_DESTROY
enviar mensagens e passar a mensagem para a próxima janela da cadeia.
Essa função membro envia uma WM_DRAWCLIPBOARD
mensagem para a janela. Como o identificador para a próxima janela na cadeia de visualizadores de área de transferência ainda não foi retornado, o aplicativo não deve passar a WM_DRAWCLIPBOARD
mensagem que recebe durante a chamada para SetClipboardViewer
.
Para se remover da cadeia de visualizadores de área de transferência, um aplicativo deve chamar a ChangeClipboardChain
função membro.
CWnd::SetDlgCtrlID
Define a ID da janela ou a 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
O identificador anterior da janela, se tiver êxito; 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 a 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 WM_SETTEXT
mensagem para o controle especificado.
Exemplo
Veja 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 CString
objeto ou cadeia de caracteres com término nulo que contém o texto a ser copiado para o controle.
Comentários
SetDlgItemText
envia uma WM_SETTEXT
mensagem 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 em primeiro plano é a janela com a qual o usuário está trabalhando no momento. A janela de primeiro plano se aplica apenas a janelas de nível superior (janelas de quadro ou caixas de diálogo).
Exemplo
Veja 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 há essa janela. O ponteiro retornado pode ser temporário e não deve ser armazenado.
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 SetFocus
função membro envia uma WM_KILLFOCUS
mensagem para a janela que perde o foco de entrada e uma WM_SETFOCUS
mensagem para a janela que recebe o foco de entrada. Ele 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 WM_SETFONT
mensagem para a janela para usar a fonte especificada.
void SetFont(
CFont* pFont,
BOOL bRedraw = TRUE);
Parâmetros
pFont
Ponteiro para um CFont
objeto.
bRedraw
TRUE
para que a janela seja redesenhada imediatamente após processar a WM_SETFONT
mensagem; caso contrário FALSE
.
Comentários
Esse método não tem efeito, a menos que a janela processe a WM_SETFONT
mensagem. Muitas classes MFC derivam do CWnd
processo dessa mensagem porque estão anexadas a uma classe de janela predefinida que inclui um manipulador de mensagens para a WM_SETFONT
mensagem. Para usar esse método, as classes das quais você deriva devem definir um manipulador de CWnd
métodos para a WM_SETFONT
mensagem.
CWnd::SetIcon
Chame essa função de membro para definir o identificador como 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 pixels por 32 pixels se TRUE
; especifica um ícone de 16 pixels 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
Veja o exemplo de CWnd::GetSystemMenu
.
CWnd::SetLayeredWindowAttributes
Define a tecla 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 COLORREF
valor 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 um COLORREF
, use a RGB
macro.
bAlpha
Valor alfa usado para descrever a opacidade da janela em camadas. Para obter mais informações, consulte o SourceConstantAlpha
membro da BLENDFUNCTION
estrutura. 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 ser um ou mais dos seguintes valores. Para obter uma lista de valores possíveis, consulte SetLayeredWindowAttributes
.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoSetLayeredWindowAttributes
, conforme descrito no SDK 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
Não 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 CMenu::DestroyMenu
função membro para realizar essa tarefa.
Exemplo
Veja 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 window. Se esse parâmetro for NULL
, o objeto window não terá proprietário.
Comentários
Esse proprietário pode 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 janelas. 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 no local). Além disso, quando uma janela do servidor é desativada ou ativada durante a edição in-loco, qualquer janela pertencente à janela de quadro fica oculta ou mostrada. 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 anterior da janela pai, 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, Windows executará o redesenho e o repositório apropriados.
CWnd::SetProperty
Chame essa função de membro para definir 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 a ser definida. Para obter 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 CWnd
objeto 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 ActiveX Contêineres de Controle: Programando controles de ActiveX em um contêiner de controle de ActiveX.
CWnd::SetRedraw
Um aplicativo chama 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 redesenhamento. Se esse parâmetro for TRUE
, o sinalizador de redraw será definido; se FALSE
, o sinalizador estiver limpo.
Comentários
Essa função membro define ou limpa o sinalizador de redesenhamento. Enquanto o sinalizador de redesenhamento estiver limpo, o conteúdo não será atualizado após cada alteração e não será repintado até que o sinalizador de redesenhecimento seja definido. Por exemplo, um aplicativo que precisa adicionar vários itens a uma caixa de listagem pode limpar o sinalizador de redraw, adicionar os itens e, em seguida, definir o sinalizador de redraw. Por fim, o aplicativo pode chamar a Invalidate
função ou InvalidateRect
membro para fazer com que a caixa de listagem seja repintada.
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 de membro para definir as informações que a SCROLLINFO
estrutura 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ãocliente de uma janela. Se fizer parte da área nãocliente, nBar também indicará se a barra de rolagem está posicionada horizontalmente, verticalmente ou ambas. Deve ser um dos seguintes:
SB_CTL
Contém os parâmetros de um controle de barra de rolagem. Om_hWnd
membro de dados 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 SCROLLINFO
estrutura. Consulte o SDK do Windows para obter mais informações sobre essa estrutura.
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á redesenhado. A barra de rolagem é redesenhada por padrão.
Valor de retorno
Se tiver êxito, o retorno será TRUE
. Caso contrário, será FALSE
.
Comentários
A SCROLLINFO
estrutura 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). Consulte o tópico de SCROLLINFO
estrutura no SDK Windows para obter mais informações sobre como alterar os padrões da estrutura.
O MFC Windows manipuladores de mensagens que indicam a posição CWnd::OnHScroll
da barra de rolagem e CWnd::OnVScroll
fornecem apenas 16 bits de dados de posição. GetScrollInfo
e SetScrollInfo
forneça 32 bits de dados de posição da barra de rolagem. Assim, um aplicativo pode chamar GetScrollInfo
durante o CWnd::OnHScroll
processamento ou CWnd::OnVScroll
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 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. Ele deve estar 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
A FALSE
configuração bRedraw
é útil sempre que a barra de rolagem será 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 determinada.
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 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 de rolagem mínima.
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 for 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 ao processar uma mensagem de notificação da barra de rolagem.
Se a chamada para SetScrollRange
seguir imediatamente uma chamada para a SetScrollPos
função membro, o bRedraw
parâmetro na SetScrollPos
função membro 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 (tanto o quanto nMaxPos
os nMinPos
valores são 0). A diferença entre os valores especificados e nMinPos
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 não zero. Se o identificador do temporizador for exclusivo, esse mesmo valor será retornado por SetTimer
. Caso contrário, SetTimer
determina um novo valor exclusivo e retorna isso. Para um temporizador de janela (que tem uma NULL
função de retorno de chamada), o valor deve ser exclusivo apenas para outros temporizadores do Windows 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 valor de tempo limite, ou intervalo, em milissegundos.
lpfnTimer
Especifica o endereço da função de retorno de chamada fornecida pelo aplicativo que processa TimerProc
as WM_TIMER
mensagens. Se esse parâmetro for NULL
, as WM_TIMER
mensagens serão colocadas na fila de mensagens do aplicativo e manipuladas pelo CWnd
objeto.
Valor de retorno
O identificador do 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 nIDEvent
parâmetro. Um aplicativo deve sempre passar o valor retornado para a KillTimer
função membro para eliminar o temporizador. Não zero se tiver êxito; caso contrário, 0.
Comentários
Um valor de intervalo é especificado e sempre que o intervalo passa, o sistema posta uma WM_TIMER
mensagem na fila de mensagens de instalação do aplicativo de instalação ou passa a mensagem para uma função de retorno de chamada definida pelo TimerProc
aplicativo.
A lpfnTimer
função de retorno de chamada 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
e CWnd::OnTimer
CWnd::KillTimer
para manipular WM_TIMER
mensagens. O primeiro temporizador é configurado para enviar uma WM_TIMER
mensagem para a janela do quadro principal a cada 2 segundos.OnStartTimer
O OnTimer
manipulador de eventos manipula mensagens WM_TIMER
para a janela de quadro principal. Esse método faz com que o alto-falante do computador bipe a cada 2 segundos. O segundo temporizador envia uma mensagem para a função de retorno de chamada a cada 3,75 segundos. OnStopTimer
interromperá os dois temporizadores chamando CWnd::KillTimer
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 de 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 da janela pai. Da mesma forma, se uma janela de propriedade não tiver um identificador de contexto de ajuda, ela herdará o identificador de sua janela de proprietário. 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 do show e as posições normais (restauradas), minimizadas e maximizadas para uma janela.
BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);
Parâmetros
lpwndpl
Aponta para uma WINDOWPLACEMENT
estrutura que especifica o novo estado e as posições do show.
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 das 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 CWnd
objeto que precederá (ser maior que) esse CWnd
objeto 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 essaCWnd
for uma janela superior, a janela perderá seu status superior; o sistema coloca a janela na parte inferior de todas as outras janelas.wndTop
Coloca a janela na parte superior 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 para a parte superior de todas as janelas não superiores (ou seja, atrás de todas as janelas mais altas). 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 da parte superior da janela.
cx
Especifica a nova largura da janela.
cy
Especifica a nova altura da janela.
nFlags
Especifica as 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 umaWM_NCCALCSIZE
mensagem 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 a parte superior do grupo superior ou não superior (dependendo da configuração dopWndInsertAfter
parâmetro).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 o parâmetro ey
osx
parâmetros).SWP_NOOWNERZORDER
Não altera a posição da janela do proprietário na ordem Z.SWP_NOREDRAW
Não redesenhe as alterações. Se esse sinalizador estiver definido, nenhum repositório de nenhum tipo ocorrerá. Isso se aplica à área do cliente, à área nãocliente (incluindo as barras de título e rolagem) e a 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 aWM_WINDOWPOSCHANGING
mensagem.SWP_NOSIZE
Retém o tamanho atual (ignora o ecy
oscx
parâmetros).SWP_NOZORDER
Retém a ordenação atual (ignorapWndInsertAfter
).SWP_SHOWWINDOW
Exibe a janela.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Windows são ordenadas 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 da 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 pWndInsertAfter
parâmetro e garantindo que o SWP_NOZORDER
sinalizador não esteja definido ou definindo a ordem Z de uma janela para &wndTopMost
que ela esteja acima de qualquer janela superior existente. Quando uma janela não superior é feita na parte superior, suas janelas de propriedade também são mais altas. 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 é feita não superior, todos os seus proprietários e suas janelas de propriedade também são feitas janelas não superiores.
Se nem SWP_NOACTIVATE
for SWP_NOZORDER
especificado (ou seja, quando o aplicativo solicitar que uma janela seja ativada e colocada simultaneamente na ordem Z especificada), o valor especificado pWndInsertAfter
será usado somente nas seguintes circunstâncias:
Nem
&wndTopMost
nem&wndNoTopMost
é especificado nopWndInsertAfter
parâmetro.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 é feita em si uma janela superior para garantir que todas as janelas de propriedade permaneçam acima de seu proprietário.
Com Windows versões 3.1 e posteriores, as janelas podem ser movidas para a parte superior da ordem Z e bloqueadas lá definindo seus WS_EX_TOPMOST
estilos. Essa janela superior mantém sua posição superior mesmo quando desativada. Por exemplo, selecionar o comando WinHelp Always On Top torna a janela da Ajuda mais alta e, em seguida, permanece visível quando você retorna ao seu aplicativo.
Para criar uma janela superior, chame SetWindowPos
com o pWndInsertAfter
parâmetro igual a &wndTopMost
, ou defina o WS_EX_TOPMOST
estilo ao criar a janela.
Se a ordem Z contiver qualquer janela com o WS_EX_TOPMOST
estilo, uma janela movida com o &wndTopMost
valor 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 WS_EX_TOPMOST
bit, a janela é movida acima de todas as janelas não superiores, mas abaixo de qualquer janela superior.
Se SetWindowPos
for chamado quando o pWndInsertAfter
parâmetro 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 de 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 redesenhar a janela depois de definir a região; caso contrário, ela não o fará. Normalmente, defina bRedraw
como TRUE
se a janela estiver visível. Se definido como TRUE
, o sistema envia e WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED
as mensagens 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, SetWindowRgn
o sistema operacional é proprietário da região especificada pelo identificador hRgn
de região. 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 CString
objeto ou 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 WM_SETTEXT
mensagem 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 careta na tela na posição atual do cursor.
void ShowCaret();
Comentários
Uma vez mostrado, o cursor começa a piscar automaticamente.
A ShowCaret
função membro mostra o cuidado somente se ele tiver uma forma atual e não tiver sido ocultado duas ou mais vezes consecutivamente. Se o caret não pertencer a esta janela, o ponto não será mostrado.
Ocultar o ponto de cuidado é cumulativo. Se a HideCaret
função membro tiver sido chamada cinco vezes consecutivamente, ShowCaret
deverá ser chamada cinco vezes para mostrar o cursor.
O caret é um recurso compartilhado. A janela deve mostrar o cuidado somente quando ele tem o foco de entrada ou está ativo.
Exemplo
Consulte o exemplo de CWnd::CreateCaret
.
CWnd::ShowOwnedPopups
Mostra ou oculta todas as janelas pop-up pertencentes a esta 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 visíveis estarão ocultas.
Exemplo
Consulte 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ãocliente de uma janela. Se faz parte da área nãocliente, nBar
também indica 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 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
origem deve ser mostrada. Ele 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, Windows restaurá-la 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 um ícone.SW_SHOWMINNOACTIVE
Exibe a janela como um ícone. A janela que está ativa no momento permanece ativa.SW_SHOWNA
Exibe a janela em seu estado atual. A janela que está ativa no momento permanece ativa.SW_SHOWNOACTIVATE
Exibe a janela em seu tamanho e posição mais recentes. A janela que está ativa no momento permanece ativa.SW_SHOWNORMAL
Ativa e exibe a janela. Se a janela for minimizada ou maximizada, Windows restaurá-la para seu tamanho e posição originais.
Valor de retorno
Diferente de zero se a janela estivesse 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 devem ShowWindow
usar um dos valores listados acima em vez do especificado por CWinApp::m_nCmdShow
.
Exemplo
Consulte o exemplo de CWnd::CalcWindowRect
.
CWnd::SubclassDlgItem
Chame essa função de membro para "subclasse dinamicamente" um controle criado a partir de um modelo de caixa de diálogo e anexe-a a esse CWnd
objeto.
BOOL SubclassDlgItem(
UINT nID,
CWnd* pParent);
Parâmetros
nID
A 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 é subclasse dinamicamente, as CWnd
mensagens do Windows rotearão pelo mapa de mensagens e chamarão manipuladores de mensagens na CWnd
classe 's primeiro. 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 Windows a um CWnd
objeto e substitui o controle WndProc
e AfxWndProc
as funções. A função armazena o antigo WndProc
no local retornado pela GetSuperWndProcAddr
função membro.
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 de membro para "subclasse dinamicamente" uma janela e anexe-a a esse CWnd
objeto.
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 é subclasse dinamicamente, as CWnd
mensagens do Windows rotearão pelo mapa de mensagens e chamarão manipuladores de mensagens na CWnd
classe 's primeiro. 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 Windows a um CWnd
objeto e substitui as funções e AfxWndProc
a WndProc
janela. A função armazena um ponteiro para o antigo WndProc
no CWnd
objeto.
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 de 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
Win32 para obter mais informações sobre como bloquear janelas.
CWnd::UnsubclassWindow
Chame essa função de membro para definir WndProc
de volta para seu valor original e desanexar a janela identificada pelo HWND do CWnd
objeto.
HWND UnsubclassWindow();
Valor de retorno
Um identificador para a janela não classificada.
Exemplo
Consulte o exemplo de CWnd::SubclassWindow
.
CWnd::UpdateData
Chame essa função de 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
Não zero se a operação for bem-sucedida; caso contrário, 0. Se bSaveAndValidate
for TRUE
, então um valor retornado de não zero significa que os dados são validados com êxito.
Comentários
A estrutura chama UpdateData
automaticamente com bSaveAndValidate
definido quando FALSE
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
chamadas dessa função membro com bSaveAndValidate
o conjunto para TRUE
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 de 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 ON_UPDATE_COMMAND_UI
mecanismo de retorno de chamada.
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 de 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 translucê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
deve ser NULL
.
pptDst
Um ponteiro para uma POINT
estrutura 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
Ponteiro para uma SIZE
estrutura que especifica o novo tamanho da janela em camadas. Se o tamanho da janela não estiver mudando, psize
poderá ser NULL
.
Se pDCSrc
for NULL
, psize
deve ser NULL
.
pDCSrc
Um ponteiro para um DC 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 POINT
estrutura que especifica o local da camada no contexto do dispositivo.
Se pDCSrc
for NULL
, pptSrc
deve ser NULL
.
crKey
Ponteiro para um COLORREF
valor 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 um COLORREF
, use a macro RGB.
pblend
Ponteiro para uma BLENDFUNCTION
estrutura que especifica o valor de transparência a ser usado ao redigir a janela em camadas.
dwFlags
Especifica uma ação a ser tomada. Esse parâmetro pode ser um ou mais dos valores a seguir. Para obter uma lista de valores possíveis, consulte UpdateLayeredWindow
.
Valor de retorno
Não zero se a função for bem-sucedida; caso contrário, 0.
Comentários
Essa função membro emula a funcionalidade da funçãoUpdateLayeredWindow
, conforme descrito no SDK do Windows.
CWnd::UpdateWindow
Atualiza a área do cliente enviando uma WM_PAINT
mensagem se a região de atualização não estiver vazia.
void UpdateWindow();
Comentários
A UpdateWindow
função membro envia uma WM_PAINT
mensagem 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 o retângulo da região de atualização da janela.
void ValidateRect(LPCRECT lpRect);
Parâmetros
lpRect
Aponta para um CRect
objeto ou RECT
estrutura que contém coordenadas do 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 BeginPaint
função membro valida automaticamente toda a área do cliente. Nem a ValidateRect
função nem o ValidateRgn
membro devem ser chamados se uma parte da região de atualização precisar ser validada antes WM_PAINT
da próxima geração.
Windows continua gerando WM_PAINT
mensagens até que a região de atualização atual seja validada.
CWnd::ValidateRgn
Valida a área do cliente dentro da região fornecida removendo a região da região de atualização atual da janela.
void ValidateRgn(CRgn* pRgn);
Parâmetros
pRgn
Um ponteiro para um CRgn
objeto 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 fornecida deve ter sido criada anteriormente por uma função de região. As coordenadas da região são consideradas coordenadas do cliente.
A BeginPaint
função membro valida automaticamente toda a área do cliente. Nem a ValidateRect
função nem o ValidateRgn
membro devem ser chamados se uma parte da região de atualização precisar ser validada antes que a próxima WM_PAINT
mensagem seja 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 CPoint
objeto ou POINT
estrutura de dados que define o ponto a ser verificado.
Valor de retorno
Um ponteiro para o objeto de janela no qual o ponto está. NULL
É se nenhuma janela existe 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 ChildWindowFromPoint
função membro para uma pesquisa não mestrictiva.
CWnd::WindowProc
Fornece um procedimento Windows (WindowProc
) para um CWnd
objeto.
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parâmetros
message
Especifica a mensagem Windows a ser processada.
wParam
Fornece informações adicionais usadas no processamento da mensagem. O valor do parâmetro depende da mensagem.
lParam
Fornece informações adicionais usadas no processamento da mensagem. O valor do parâmetro depende da mensagem.
Valor de retorno
O valor retornado depende da mensagem.
Comentários
Ele envia mensagens pelo mapa de mensagens da janela.
CWnd::WinHelp
Chamado para iniciar o aplicativo WinHelp.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parâmetros
dwData
Especifica dados adicionais. O valor usado depende do valor do nCmd
parâmetro.
nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o dwData
parâmetro, consulte a WinHelp
função Windows no SDK Windows.
Comentários
Consulte CWinApp::WinHelp
para obter mais informações.
CWnd::RegisterTouchWindow
Registra ou cancela o registro Windows suporte a toque.
BOOL RegisterTouchWindow(
BOOL bRegister = TRUE,
ULONG ulFlags = 0);
Parâmetros
bRegister
TRUE
indica registrar Windows suporte ao toque; FALSE
caso contrário.
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
caso bem-sucedido; caso contrário, FALSE
.
Comentários
CWnd::ResizeDynamicLayout
Chamado pela estrutura quando o tamanho da janela for 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
CCmdTarget
Classe
Gráfico de Hierarquia
CFrameWnd
Classe
CView
Classe