Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Fornece a funcionalidade básica para classes de vista definidas pelo utilizador.
Sintaxe
class AFX_NOVTABLE CView : public CWnd
Membros
Construtores Protegidos
| Nome | Description |
|---|---|
CView::CView |
Constrói um CView objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
CView::DoPreparePrinting |
Exibe a caixa de diálogo Imprimir e cria o contexto do dispositivo de impressora; chamar ao sobrepor a OnPreparePrinting função membro. |
CView::GetDocument |
Devolve o documento associado à visualização. |
CView::IsSelected |
Testa se um item do documento está selecionado. Obrigatório para suporte OLE. |
CView::OnDragEnter |
Chamada quando um item é arrastado pela primeira vez para a região de arrastar e largar de uma vista. |
CView::OnDragLeave |
Chamado quando um item arrastado sai da região de arrastar e largar de uma vista. |
CView::OnDragOver |
Chamada quando um item é arrastado sobre a região de arrastar e largar de uma vista. |
CView::OnDragScroll |
Chamado para determinar se o cursor é arrastado para a região de scroll da janela. |
CView::OnDrop |
Chamado quando um item foi largado na região de arrastar e largar de uma vista, handler por defeito. |
CView::OnDropEx |
Chamado quando um item foi largado na região de arrastar e largar de uma vista, handler primário. |
CView::OnInitialUpdate |
Chamado depois de uma visualização ser primeiro anexada a um documento. |
CView::OnPrepareDC |
É chamada antes de a OnDraw função membro ser chamada para exibição do ecrã ou a OnPrint função membro ser chamada para impressão ou pré-visualização de impressão. |
CView::OnScroll |
Chamado quando os itens OLE são arrastados para além dos limites da vista. |
CView::OnScrollBy |
Chamado quando uma vista contendo elementos OLE ativos no local está deslocada. |
Métodos Protegidos
| Nome | Description |
|---|---|
CView::OnActivateFrame |
Chamada quando a janela de frame que contém a vista é ativada ou desativada. |
CView::OnActivateView |
É chamada quando uma vista é ativada. |
CView::OnBeginPrinting |
Chamada quando começa um trabalho de impressão; override para alocar recursos da interface gráfica do dispositivo gráfico (GDI). |
CView::OnDraw |
Chamado para renderizar uma imagem do documento para exibição de ecrã, impressão ou pré-visualização de impressão. Implementação necessária. |
CView::OnEndPrinting |
Chamada quando um trabalho de impressão termina; override para desalocar recursos GDI. |
CView::OnEndPrintPreview |
É chamada quando o modo de pré-visualização é encerrado. |
CView::OnPreparePrinting |
Chamada antes de um documento ser impresso ou pré-visualizado; override para inicializar a caixa de diálogo Imprimir. |
CView::OnPrint |
Chamado para imprimir ou pré-visualizar uma página do documento. |
CView::OnUpdate |
Chamado para notificar uma visualização de que o seu documento foi modificado. |
Observações
Uma vista está anexada a um documento e atua como intermediária entre o documento e o utilizador: a vista apresenta uma imagem do documento no ecrã ou impressora e interpreta a entrada do utilizador como operações sobre o documento.
Uma vista é um filho de uma janela de moldura. Mais do que uma vista pode partilhar uma janela de frame, como no caso de uma janela divisor. A relação entre uma classe de visualização, uma classe de janela frame e uma classe de documento é estabelecida por um CDocTemplate objeto. Quando o utilizador abre uma nova janela ou divide uma existente, o framework constrói uma nova vista e anexa-a ao documento.
Uma vista pode ser anexada a apenas um documento, mas um documento pode ter múltiplas vistas associadas ao mesmo tempo — por exemplo, se o documento for exibido numa janela divisora ou em múltiplas janelas filhas numa aplicação de interface múltipla de documentos (MDI). A sua aplicação pode suportar diferentes tipos de vistas para um dado tipo de documento; Por exemplo, um programa de processamento de texto pode fornecer tanto uma vista de texto completa de um documento como uma vista de esboço que mostra apenas os cabeçalhos das secções. Estes diferentes tipos de vistas podem ser colocados em janelas de moldura separadas ou em painéis separados de uma única janela de moldura se usar uma janela divisor.
Uma vista pode ser responsável por lidar com vários tipos diferentes de entrada, como entrada por teclado, rato ou por arrastar e largar, bem como comandos provenientes de menus, barras de ferramentas ou barras de deslocamento. Uma vista recebe comandos encaminhados pela sua janela de frame. Se a vista não tratar um dado comando, encaminha o comando para o documento associado. Como todos os alvos de comando, uma vista trata mensagens através de um mapa de mensagens.
A visualização é responsável por exibir e modificar os dados do documento, mas não por os armazenar. O documento fornece à vista os detalhes necessários sobre os seus dados. Pode permitir que a view aceda diretamente aos membros de dados do documento, ou pode fornecer funções de membro na classe document para a classe view chamar.
Quando os dados de um documento mudam, a vista responsável pelas alterações normalmente chama a CDocument::UpdateAllViews função do documento, que notifica todas as outras vistas ao chamar a OnUpdate função membro para cada uma. A implementação padrão de OnUpdate invalida toda a área do cliente da visão. Pode substituir a função para invalidar apenas as regiões da área do cliente que correspondem às partes modificadas do documento.
Para usar CView, derive uma classe a partir dela e implemente a OnDraw função membro para realizar a exibição do ecrã. Também podes usar OnDraw para fazer impressão e pré-visualização de impressão. O framework gere o ciclo de impressão para imprimir e pré-visualizar o seu documento.
Uma vista trata as mensagens da barra de deslocamento com as CWnd::OnHScroll funções e CWnd::OnVScroll membro. Pode implementar o tratamento de mensagens na barra de deslocamento nestas funções, ou pode usar a CView classe CScrollView derivada para gerir o scroll por si.
Além CScrollViewde , a Microsoft Foundation Class Library fornece nove outras classes derivadas de CView:
CCtrlView, uma vista que permite a utilização da arquitetura document - view com controlos de árvore, lista e edição rica.CDaoRecordView, uma vista que mostra registos da base de dados em controlos de caixa de diálogo.CEditView, uma vista que fornece um editor de texto multilinha simples. Podes usar umCEditViewobjeto como controlo numa caixa de diálogo, bem como como vista num documento.CFormView, uma vista rolável que contém controlos de caixa de diálogo e é baseada num recurso de template de diálogo.CListView, uma vista que permite a utilização da arquitetura document - view com controlos de lista.CRecordView, uma vista que mostra registos da base de dados em controlos de caixa de diálogo.CRichEditView, uma vista que permite a utilização da arquitetura Document - View com controlos de edição ricos.CScrollView, uma vista que fornece automaticamente suporte para scroll.CTreeView, uma vista que permite a utilização da arquitetura documento - vista com controlos em árvore.
A CView classe também tem uma classe de implementação derivada chamada CPreviewView, que é usada pelo framework para realizar pré-visualização de impressão. Esta classe oferece suporte para as funcionalidades únicas da janela de pré-visualização de impressão, como uma barra de ferramentas, pré-visualização de uma ou dupla página e zoom, ou seja, ampliação da imagem pré-visualizada. Não precisas de chamar ou sobrescrever nenhuma das CPreviewViewfunções membros de , a menos que queiras implementar a tua própria interface para pré-visualização de impressão (por exemplo, se quiseres suportar edição em modo de pré-visualização de impressão). Para mais informações sobre a utilização CViewde , consulte Arquitetura de Documentos/Visualizações e Impressão. Além disso, consulte a Nota Técnica 30 para mais detalhes sobre a personalização da pré-visualização de impressão.
Hierarquia de herança
CView
Requerimentos
Cabeçalho:afxwin.h
CView::CView
Constrói um CView objeto.
CView();
Observações
A estrutura chama o construtor quando uma nova janela de moldura é criada ou uma janela é dividida. Substitua a OnInitialUpdate função membro para inicializar a vista após o documento ser anexado.
CView::DoPreparePrinting
Chama esta função a partir do teu override de OnPreparePrinting para invocar a caixa de diálogo Imprimir e criar um contexto de dispositivo de impressora.
BOOL DoPreparePrinting(CPrintInfo* pInfo);
Parâmetros
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual.
Valor de retorno
Diferente de zero se a impressão ou a pré-visualização puder começar; 0 se a operação tiver sido cancelada.
Observações
O comportamento desta função depende se está a ser chamada para impressão ou para pré-visualização de impressão (especificada pelo m_bPreview membro do pInfo parâmetro). Se um ficheiro estiver a ser impresso, esta função invoca a caixa de diálogo Imprimir, usando os valores na CPrintInfo estrutura para onde pInfo aponta; depois de o utilizador fechar a caixa de diálogo, a função cria um contexto de dispositivo de impressora com base nas definições especificadas pelo utilizador na caixa de diálogo e devolve esse contexto do dispositivo através do pInfo parâmetro. Este contexto de dispositivo é usado para imprimir o documento.
Se um ficheiro estiver a ser pré-visualizado, esta função cria um contexto de dispositivo de impressora usando as definições atuais da impressora; Este contexto de dispositivo é usado para simular a impressora durante a pré-visualização.
CView::GetDocument
Chame esta função para obter um ponteiro para o documento da vista.
CDocument* GetDocument() const;
Valor de retorno
Um ponteiro para o CDocument objeto associado à vista.
NULL se a vista não estiver anexada a um documento.
Observações
Isto permite-lhe chamar as funções membros do documento.
CView::IsSelected
Chamado pelo framework para verificar se o item do documento especificado foi selecionado.
virtual BOOL IsSelected(const CObject* pDocItem) const;
Parâmetros
pDocItem
Aponta para o item do documento que está a ser testado.
Valor de retorno
Não nulo se o item do documento especificado for selecionado; caso contrário, 0.
Observações
A implementação padrão desta função devolve FALSE. Substitua esta função se estiver a implementar a seleção usando CDocItem objetos. Deve sobrescrever esta função se a sua vista contiver itens OLE.
CView::OnActivateFrame
Chamada pela estrutura quando a janela de frame que contém a vista é ativada ou desativada.
virtual void OnActivateFrame(
UINT nState,
CFrameWnd* pFrameWnd);
Parâmetros
nState
Especifica se a janela do quadro está a ser ativada ou desativada. Pode ser um dos seguintes valores:
WA_INACTIVEA janela da moldura está a ser desativada.WA_ACTIVEA janela de frames é ativada por algum método que não seja um clique do rato (por exemplo, usando a interface do teclado para selecionar a janela).WA_CLICKACTIVEA janela da moldura é ativada com um clique do rato
pFrameWnd
Apontar para a janela de moldura que vai ser ativada.
Observações
Substitua esta função de membro se quiser realizar um processamento especial quando a janela de frame associada à vista for ativada ou desativada. Por exemplo, CFormView faz esta sobreposição quando guarda e restaura o controlo que tem o foco.
CView::OnActivateView
Chamado pela estrutura quando uma vista é ativada ou desativada.
virtual void OnActivateView(
BOOL bActivate,
CView* pActivateView,
CView* pDeactiveView);
Parâmetros
bActivate
Indica se a visualização está a ser ativada ou desativada.
pActivateView
Aponta para o objeto de visualização que está a ser ativado.
pDeactiveView
Aponta para o objeto de visão que está a ser desativado.
Observações
A implementação padrão desta função define o foco para a vista a ser ativada. Anule esta função se quiser realizar um processamento especial quando uma vista for ativada ou desativada. Por exemplo, se quiser fornecer pistas visuais especiais que distinguam a vista ativa das vistas inativas, examinaria o bActivate parâmetro e atualizaria a aparência da vista em conformidade.
Os pActivateView parâmetros e pDeactiveView apontam para a mesma vista se a janela do quadro principal da aplicação for ativada sem alteração na vista ativa — por exemplo, se o foco estiver a ser transferido de outra aplicação para esta, em vez de uma vista para outra dentro da aplicação ou ao alternar entre janelas filhas do MDI. Isto permite que a vista volte a realizar a sua paleta, se necessário.
Estes parâmetros diferem quando CFrameWnd::SetActiveView é chamado com uma vista que é diferente do que CFrameWnd::GetActiveView retornaria. Isto acontece mais frequentemente com janelas splitter.
CView::OnBeginPrinting
Chamado pelo framework no início de um trabalho de impressão ou pré-visualização de impressão, depois OnPreparePrinting de ter sido chamado.
virtual void OnBeginPrinting(
CDC* pDC,
CPrintInfo* pInfo);
Parâmetros
pDC
Aponta para o contexto do dispositivo da impressora.
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual.
Observações
A implementação padrão desta função não faz nada. Sobrepor esta função para alocar quaisquer recursos GDI, como canetas ou fontes, necessários especificamente para impressão. Selecione os objetos GDI no contexto do dispositivo dentro da OnPrint função membro para cada página que os utilize. Se estiver a usar o mesmo objeto de visualização para realizar tanto a exibição como a impressão do ecrã, use variáveis separadas para os recursos GDI necessários para cada ecrã; Isto permite atualizar o ecrã durante a impressão.
Também pode usar esta função para realizar inicializações que dependem das propriedades do contexto do dispositivo da impressora. Por exemplo, o número de páginas necessárias para imprimir o documento pode depender das definições que o utilizador especificou a partir da caixa de diálogo Imprimir (como o comprimento da página). Nessa situação, não pode especificar o comprimento do documento na OnPreparePrinting função membro, onde normalmente o faria; deve esperar até que o contexto do dispositivo de impressora seja criado com base nas definições da caixa de diálogo.
OnBeginPrinting é a primeira função sobrescrita que lhe dá acesso ao CDC objeto que representa o contexto do dispositivo de impressora, por isso pode definir o comprimento do documento a partir desta função. Note que, se o comprimento do documento não for especificado até esta altura, uma barra de deslocamento não é exibida durante a pré-visualização de impressão.
CView::OnDragEnter
Chamada pela framework quando o rato entra pela primeira vez na região não deslocável da janela drop target.
virtual DROPEFFECT OnDragEnter(
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parâmetros
pDataObject
Aponta para o COleDataObject ser arrastado para a área de queda da vista.
dwKeyState
Contém o estado das teclas modificadoras. Isto é uma combinação de qualquer número dos seguintes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON, e MK_RBUTTON.
point
A posição atual do rato em relação à área do cliente da vista.
Valor de retorno
Um valor do DROPEFFECT tipo enumerado, que indica o tipo de queda que ocorreria se o utilizador largasse o objeto nesta posição. O tipo de queda geralmente depende do estado atual da chave indicado por dwKeyState. Um mapeamento padrão dos estados-chave para DROPEFFECT valores é:
DROPEFFECT_NONEO objeto de dados não pode ser descartado nesta janela.DROPEFFECT_LINKforMK_CONTROL|MK_SHIFTCria uma ligação entre o objeto e o seu servidor.DROPEFFECT_COPYparaMK_CONTROLCria uma cópia do objeto descartado.DROPEFFECT_MOVEforMK_ALTCria uma cópia do objeto descartado e elimina o objeto original. Este é tipicamente o efeito de queda por defeito, quando a vista pode aceitar este objeto de dados.
Para mais informações, consulte o exemplo OCLIENTMFC Advanced Concepts .
Observações
A implementação por defeito é não fazer nada e devolver DROPEFFECT_NONE.
Substitua esta função para preparar futuras chamadas à OnDragOver função membro. Quaisquer dados necessários do objeto de dados devem ser recuperados neste momento para uso posterior na OnDragOver função membro. A vista deve também ser atualizada neste momento para dar feedback visual ao utilizador. Para mais informações, consulte o artigo OLE arrastar e largar: Implementar um drop target.
CView::OnDragLeave
Chamado pela estrutura durante uma operação de arrasto quando o rato é movido para fora da área válida de drop dessa janela.
virtual void OnDragLeave();
Observações
Substitua esta função se a visualização atual precisar de limpar quaisquer ações tomadas durante OnDragEnter ou OnDragOver chamadas, como remover qualquer feedback visual do utilizador enquanto o objeto foi arrastado e largado.
CView::OnDragOver
Chamado pela estrutura durante uma operação de arrasto quando o rato é movido sobre a janela de drop target.
virtual DROPEFFECT OnDragOver(
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parâmetros
pDataObject
Aponta para o COleDataObject ser arrastado sobre o alvo de queda.
dwKeyState
Contém o estado das teclas modificadoras. Isto é uma combinação de qualquer número dos seguintes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON, e MK_RBUTTON.
point
A posição atual do rato em relação à área do cliente de visualização.
Valor de retorno
Um valor do DROPEFFECT tipo enumerado, que indica o tipo de queda que ocorreria se o utilizador largasse o objeto nesta posição. O tipo de queda depende frequentemente do estado atual da tonalidade, indicado por dwKeyState. Um mapeamento padrão dos estados-chave para DROPEFFECT valores é:
DROPEFFECT_NONEO objeto de dados não pode ser descartado nesta janela.DROPEFFECT_LINKforMK_CONTROL|MK_SHIFTCria uma ligação entre o objeto e o seu servidor.DROPEFFECT_COPYparaMK_CONTROLCria uma cópia do objeto descartado.DROPEFFECT_MOVEforMK_ALTCria uma cópia do objeto descartado e elimina o objeto original. Este é tipicamente o efeito de drop por defeito, quando a vista pode aceitar o objeto de dados.
Para mais informações, consulte o exemplo OCLIENTMFC Advanced Concepts .
Observações
A implementação padrão é não fazer nada e devolver DROPEFFECT_NONE.
Anule esta função para fornecer feedback visual ao utilizador durante a operação de arrasto. Como esta função é chamada continuamente, qualquer código nela contido deve ser otimizado o máximo possível. Para mais informações, consulte o artigo OLE arrastar e largar: Implementar um drop target.
CView::OnDragScroll
Chamado pela estrutura antes de chamar OnDragEnter ou OnDragOver para determinar se o ponto está na região de deslocamento.
virtual DROPEFFECT OnDragScroll(
DWORD dwKeyState,
CPoint point);
Parâmetros
dwKeyState
Contém o estado das teclas modificadoras. Isto é uma combinação de qualquer número dos seguintes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON, e MK_RBUTTON.
point
Contém a localização do cursor, em pixels, em relação ao ecrã.
Valor de retorno
Um valor do DROPEFFECT tipo enumerado, que indica o tipo de queda que ocorreria se o utilizador largasse o objeto nesta posição. O tipo de queda geralmente depende do estado atual da chave indicado por dwKeyState. Um mapeamento padrão dos estados-chave para DROPEFFECT valores é:
DROPEFFECT_NONEO objeto de dados não pode ser descartado nesta janela.DROPEFFECT_LINKforMK_CONTROL|MK_SHIFTCria uma ligação entre o objeto e o seu servidor.DROPEFFECT_COPYparaMK_CONTROLCria uma cópia do objeto descartado.DROPEFFECT_MOVEforMK_ALTCria uma cópia do objeto descartado e elimina o objeto original.DROPEFFECT_SCROLLIndica que uma operação de arrastar está prestes a ocorrer ou está a ocorrer na vista alvo.
Para mais informações, consulte o exemplo OCLIENTMFC Advanced Concepts .
Observações
Anule esta função quando quiser fornecer um comportamento especial para este evento. A implementação padrão desloca automaticamente as janelas quando o cursor é arrastado para a região de scroll padrão dentro da borda de cada janela. Para mais informações, consulte o artigo OLE arrastar e largar: Implementar um drop target.
CView::OnDraw
Chamado pelo framework para renderizar uma imagem do documento.
virtual void OnDraw(CDC* pDC) = 0;
Parâmetros
pDC
Aponta para o contexto do dispositivo a ser usado para renderizar uma imagem do documento.
Observações
O framework chama esta função para realizar exibição de ecrã, impressão e pré-visualização de impressão, e passa um contexto diferente do dispositivo em cada caso. Não existe uma implementação padrão.
Deve sobrescrever esta função para mostrar a sua visão do documento. Pode fazer chamadas de interface gráfica de dispositivo (GDI) usando o CDC objeto apontado pelo pDC parâmetro. Pode selecionar recursos GDI, como canetas ou fontes, no contexto do dispositivo antes de desenhar e depois desselecioná-los. Muitas vezes, o seu código de desenho pode ser independente do dispositivo; ou seja, não requer informação sobre que tipo de dispositivo está a exibir a imagem.
Para otimizar o desenho, chame a RectVisible função membro do contexto do dispositivo para saber se um dado retângulo será desenhado. Se precisar de distinguir entre exibição normal do ecrã e impressão, chame a IsPrinting função membro do contexto do dispositivo.
CView::OnDrop
Chamado pelo framework quando o utilizador liberta um objeto de dados sobre um drop target válido.
virtual BOOL OnDrop(
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
Parâmetros
pDataObject
Aponta para o COleDataObject que é deixado cair no alvo de queda.
dropEffect
O efeito de queda que o utilizador solicitou.
DROPEFFECT_COPYCria uma cópia do objeto de dados que está a ser descartado.DROPEFFECT_MOVEMove o objeto de dados para a localização atual do rato.DROPEFFECT_LINKCria uma ligação entre um objeto de dados e o seu servidor.
point
A posição atual do rato em relação à área do cliente de visualização.
Valor de retorno
Diferente de zero se a entrega fosse bem-sucedida; caso contrário, 0.
Observações
A implementação padrão não faz nada e devolve FALSE.
Substitua esta função para implementar o efeito de uma queda OLE na área cliente da vista. O objeto de dados pode ser examinado através pDataObject dos formatos de dados do Quadro de Transferência e dos dados descartados no ponto especificado.
Observação
O framework não chama esta função se houver um override para OnDropEx nesta classe de visão.
CView::OnDropEx
Chamado pelo framework quando o utilizador liberta um objeto de dados sobre um drop target válido.
virtual DROPEFFECT OnDropEx(
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
Parâmetros
pDataObject
Aponta para o COleDataObject que é deixado cair no alvo de queda.
dropDefault
O efeito que o utilizador escolheu para a operação de drop padrão com base no estado atual da chave. Pode ser DROPEFFECT_NONE. Os efeitos de queda são discutidos na secção de Observações.
dropList
Uma lista dos efeitos de drop que a fonte de drop suporta. Os valores do efeito drop podem ser combinados usando a operação bit a bit OR ( |). Os efeitos de queda são discutidos na secção de Observações.
point
A posição atual do rato em relação à área do cliente de visualização.
Valor de retorno
O efeito de queda que resultou da tentativa de queda no local especificado por point. Este deve ser um dos valores indicados por dropEffectList. Os efeitos de queda são discutidos na secção de Observações.
Observações
A implementação padrão é não fazer nada e devolver um valor fictício ( -1 ) para indicar que o framework deve chamar o OnDrop handler.
Substitua esta função para implementar o efeito de arrastar e largar com o botão direito do rato. O arrastar e largar do botão direito do rato normalmente mostra um menu de escolhas quando o botão direito é libertado.
O seu override deve OnDropEx consultar o botão do rato certo. Pode chamar GetKeyState ou armazenar o estado do botão do rato direito a partir do seu OnDragEnter handler.
Se o botão direito do rato estiver pressionado, o seu override deve mostrar um menu pop-up que oferece suporte para efeitos de drop pela fonte de drop.
Examine
dropListpara determinar os efeitos da gota suportados pela origem da gota. Ative apenas estas ações no menu pop-up.Use
SetMenuDefaultItempara definir a ação padrão com base emdropDefault.Por fim, execute a ação indicada pela seleção do utilizador no menu pop-up.
Se o botão direito do rato não estiver pressionado, o seu override deve processar isto como um pedido de queda padrão. Use o efeito de queda especificado em
dropDefault. Alternativamente, o seu override pode devolver o valor fictício (-1) para indicar queOnDropirá tratar desta operação de queda.
Use pDataObject para analisar o COleDataObject formato de dados da Área de Transferência e os dados descartados no ponto especificado.
Os efeitos de queda descrevem a ação associada a uma operação de queda. Veja a seguinte lista de efeitos de queda:
DROPEFFECT_NONEUma queda não seria permitida.DROPEFFECT_COPYSeria realizada uma operação de cópia.DROPEFFECT_MOVESeria realizada uma operação de mudança.DROPEFFECT_LINKSeria estabelecida uma ligação entre os dados abandonados e os dados originais.DROPEFFECT_SCROLLIndica que uma operação de arrastar de rolagem está prestes a ocorrer ou está a ocorrer no alvo.
Para mais informações sobre como definir o comando de menu predefinido, consulte SetMenuDefaultItem o SDK do Windows e CMenu::GetSafeHmenu este volume.
CView::OnEndPrinting
Chamado pelo framework após um documento ter sido impresso ou pré-visualizado.
virtual void OnEndPrinting(
CDC* pDC,
CPrintInfo* pInfo);
Parâmetros
pDC
Aponta para o contexto do dispositivo da impressora.
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual.
Observações
A implementação padrão desta função não faz nada. Sobreescreva esta função para libertar quaisquer recursos GDI que tenha alocado na OnBeginPrinting função membro.
CView::OnEndPrintPreview
Chamado pelo framework quando o utilizador sai do modo de pré-visualização de impressão.
virtual void OnEndPrintPreview(
CDC* pDC,
CPrintInfo* pInfo,
POINT point,
CPreviewView* pView);
Parâmetros
pDC
Aponta para o contexto do dispositivo da impressora.
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual.
point
Especifica o ponto na página que foi exibido pela última vez em modo de pré-visualização.
pView
Aponta para o objeto de visualização usado para pré-visualização.
Observações
A implementação padrão desta função chama a OnEndPrinting função membro e restaura a janela do quadro principal ao estado em que estava antes do início da pré-visualização de impressão. Sobrescrita esta função para realizar um processamento especial quando o modo de pré-visualização for terminado. Por exemplo, se quiser manter a posição do utilizador no documento ao mudar do modo de pré-visualização para o modo normal de visualização, pode deslocar-se até à posição descrita pelo point parâmetro e pelo m_nCurPage membro da CPrintInfo estrutura para onde o pInfo parâmetro aponta.
Chama sempre a versão OnEndPrintPreview da classe base do teu override, normalmente no final da função.
CView::OnInitialUpdate
Chamado pela estrutura após a visualização estar inicialmente anexada ao documento, mas antes da visualização ser inicialmente apresentada.
virtual void OnInitialUpdate();
Observações
A implementação padrão desta função chama a OnUpdate função membro sem qualquer informação de hint (ou seja, usando os valores padrão de 0 para o lHint parâmetro e NULL para o pHint parâmetro). Substitua esta função para realizar qualquer inicialização única que exija informação sobre o documento. Por exemplo, se a sua aplicação tiver documentos de tamanho fixo, pode usar esta função para inicializar os limites de scroll de uma vista com base no tamanho do documento. Se a sua aplicação suportar documentos de tamanho variável, use OnUpdate para atualizar os limites de scroll sempre que o documento mudar.
CView::OnPrepareDC
Chamada pela estrutura antes de a OnDraw função membro ser chamada para exibição no ecrã e antes da OnPrint função membro ser chamada para cada página durante a impressão ou pré-visualização de impressão.
virtual void OnPrepareDC(
CDC* pDC,
CPrintInfo* pInfo = NULL);
Parâmetros
pDC
Aponta para o contexto do dispositivo a ser usado para renderizar uma imagem do documento.
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual se OnPrepareDC estiver a ser chamado para impressão ou pré-visualização de impressão; o m_nCurPage membro especifica a página que está prestes a ser impressa. Este parâmetro é NULL se OnPrepareDC estiver a ser chamado para exibição do ecrã.
Observações
A implementação padrão desta função não faz nada se a função for chamada para exibição do ecrã. No entanto, esta função é sobreposta em classes derivadas, como CScrollView, para ajustar atributos do contexto do dispositivo; consequentemente, deve sempre chamar a implementação da classe base no início do seu override.
Se a função for chamada para impressão, a implementação padrão examina a informação da página armazenada no pInfo parâmetro. Se o comprimento do documento não tiver sido especificado, OnPrepareDC assume que o documento tem uma página e interrompe o ciclo de impressão após uma página ter sido impressa. A função para o loop de impressão ao definir o m_bContinuePrinting elemento da estrutura para FALSE.
Substituição OnPrepareDC por qualquer uma das seguintes razões:
Para ajustar atributos do contexto do dispositivo conforme necessário para a página especificada. Por exemplo, se precisar de definir o modo de mapeamento ou outras características do contexto do dispositivo, faça-o nesta função.
Para realizar a paginação em tempo de impressão. Normalmente, especifica-se o comprimento do documento quando a impressão começa, usando a
OnPreparePrintingfunção membro. No entanto, se não souber antecipadamente o comprimento do documento (por exemplo, ao imprimir um número indeterminado de registos de uma base de dados), façaOnPrepareDCoverpost para testar o final do documento enquanto está a ser impresso. Quando não houver mais do documento a imprimir, defina om_bContinuePrintingelemento daCPrintInfoestrutura paraFALSE.Enviar códigos de escape para a impressora página a página. Para enviar códigos de escape de
OnPrepareDC, chame aEscapefunção membro dopDCparâmetro.
Chama a versão da classe base de OnPrepareDC no início do teu override.
Example
void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
// If we are printing, set the mapmode and the window
// extent properly, then set viewport extent. Use the
// SetViewportOrg member function in the CDC class to
// move the viewport origin to the center of the view.
if (pDC->IsPrinting()) // Is the DC a printer DC.
{
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ISOTROPIC);
CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);
}
}
CView::OnPreparePrinting
Chamado pela estrutura antes de um documento ser impresso ou pré-visualizado.
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
Parâmetros
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual.
Valor de retorno
Não-zero para começar a imprimir; 0 se o trabalho de impressão tiver sido cancelado.
Observações
A implementação padrão não faz nada.
Deve sobrescrever esta função para permitir a impressão e a pré-visualização de impressão. Chama a DoPreparePrinting função membro, passa-lhe o pInfo parâmetro e depois devolve o seu valor de retorno; DoPreparePrinting apresenta a caixa de diálogo Imprimir e cria um contexto de dispositivo de impressora. Se quiser inicializar a caixa de diálogo Imprimir com valores diferentes dos predefinidos, atribua valores aos membros de pInfo. Por exemplo, se souber o comprimento do documento, passe o valor para a função membro SetMaxPage de pInfo antes de chamar DoPreparePrinting. Este valor é exibido na caixa Para: na parte Intervalo da caixa de diálogo Imprimir.
DoPreparePrinting não mostra a caixa de diálogo Imprimir para um trabalho de pré-visualização. Se quiseres contornar a caixa de diálogo Imprimir para um trabalho de impressão, verifica se o m_bPreview membro de pInfo está FALSE e depois define-o para TRUE antes de passar para DoPreparePrinting; repor para FALSE depois.
Se precisar de realizar inicializações que exijam acesso ao CDC objeto que representa o contexto do dispositivo de impressora (por exemplo, se precisar de saber o tamanho da página antes de especificar o comprimento do documento), sobrescrita a OnBeginPrinting função membro.
Se quiser definir o valor dos m_nNumPreviewPagesm_strPageDesc membros ou do pInfo parâmetro, faça-o depois de chamar DoPreparePrinting. A DoPreparePrinting função membro define m_nNumPreviewPages para o valor encontrado no . INI e define m_strPageDesc para o seu valor predefinido.
Example
Override OnPreparePrinting e chama DoPreparePrinting a partir do override para que a framework mostre uma caixa de diálogo de Imprimir e crie um DC de impressora para ti.
BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
return CEditView::DoPreparePrinting(pInfo);
}
Se souber quantas páginas o documento contém, defina o número máximo de páginas antes OnPreparePrinting de chamar DoPreparePrinting. A estrutura irá mostrar o número máximo de páginas na caixa "para" da caixa de diálogo Imprimir.
BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
//The document has 2 pages.
pInfo->SetMaxPage(2);
return CView::DoPreparePrinting(pInfo);
}
CView::OnPrint
Chamado pelo framework para imprimir ou pré-visualizar uma página do documento.
virtual void OnPrint(
CDC* pDC,
CPrintInfo* pInfo);
Parâmetros
pDC
Aponta para o contexto do dispositivo da impressora.
pInfo
Aponta para uma CPrintInfo estrutura que descreve o trabalho de impressão atual.
Observações
Para cada página impressa, o framework chama esta função imediatamente após chamar a OnPrepareDC função membro. A página a ser impressa é especificada pelo m_nCurPage elemento da CPrintInfo estrutura para a qual pInfo aponta. A implementação padrão chama a OnDraw função membro e passa-lhe o contexto do dispositivo de impressora.
Anule esta função por qualquer uma das seguintes razões:
Para permitir a impressão de documentos de várias páginas. Renderize apenas a parte do documento que corresponde à página que está a ser impressa. Se estiveres a usar
OnDrawpara fazer a renderização, podes ajustar a origem da viewport para que apenas a parte apropriada do documento seja impressa.Para fazer com que a imagem impressa pareça diferente da imagem do ecrã (isto é, se a sua candidatura não for WYSIWYG). Em vez de passar o contexto do dispositivo de impressora para
OnDraw, use o contexto do dispositivo para renderizar uma imagem usando atributos não mostrados no ecrã.Se precisares de recursos GDI para impressão que não usas para exibição de ecrã, seleciona-os no contexto do dispositivo antes de desenhares e desmarca-os depois. Estes recursos do GDI devem ser alocados em
OnBeginPrintinge libertados emOnEndPrinting.Para implementar cabeçalhos ou rodapés. Ainda podes usar
OnDrawpara fazer a renderização restringindo a área onde pode imprimir.
Note que o m_rectDraw membro do pInfo parâmetro descreve a área imprimível da página em unidades lógicas.
Não chame OnPrepareDC o seu sobrescrito de OnPrint; o framework chama OnPrepareDC automaticamente antes de chamar OnPrint.
Example
Segue-se um esqueleto para uma função sobreposta OnPrint :
void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
UNREFERENCED_PARAMETER(pInfo);
// Print headers and/or footers, if desired.
// Find portion of document corresponding to pInfo->m_nCurPage.
OnDraw(pDC);
}
Para outro exemplo, veja CRichEditView::PrintInsideRect.
CView::OnScroll
Chamado pelo framework para determinar se o scrolling é possível.
virtual BOOL OnScroll(
UINT nScrollCode,
UINT nPos,
BOOL bDoScroll = TRUE);
Parâmetros
nScrollCode
Um código de barra de deslocamento que indica o pedido de scroll do utilizador. Este parâmetro é composto por duas partes: um byte de ordem baixa, que determina o tipo de scrolling que ocorre horizontalmente, e um byte de ordem alta, que determina o tipo de scrolling que ocorre verticalmente:
SB_BOTTOMDesce até ao fim.SB_LINEDOWNDesliza uma linha para baixo.SB_LINEUPDesloca uma linha acima.SB_PAGEDOWNDesliza uma página para baixo.SB_PAGEUPFaz scroll uma página acima.SB_THUMBTRACKArrasta a caixa de scroll para a posição especificada. A posição atual é especificada emnPos.SB_TOPPergaminhos para o topo.
nPos
Contém a posição atual da caixa de deslocamento se o código de barras de deslocamento for SB_THUMBTRACK; caso contrário, não é utilizada. Dependendo do alcance inicial do pergaminho, nPos pode ser negativo e deve ser lançado para um int se necessário.
bDoScroll
Determina se deve realmente fazer a ação de scroll especificada. Se TRUE, então deve ocorrer scrolling; se FALSE, então scrolling não deve ocorrer.
Valor de retorno
Se bDoScroll for TRUE e a vista foi realmente deslocada, então retorna diferente de zero; caso contrário 0. Se bDoScroll for FALSE, então devolva o valor que teria devolvido se bDoScroll fosse TRUE, mesmo que não faça realmente o deslocamento.
Observações
Num dos casos, esta função é chamada pelo framework com bDoScroll definido para TRUE quando a vista recebe uma mensagem na barra de scroll. Neste caso, deves mesmo deslocar a vista. No outro caso, esta função é chamada com bDoScroll definido para FALSE quando um item OLE é inicialmente arrastado para a região de auto-scrolling de um drop target antes de o scroll realmente ocorrer. Neste caso, não deves realmente deslocar a vista.
CView::OnScrollBy
Chamada pelo framework quando o utilizador visualiza uma área para além da vista atual do documento, seja arrastando um item OLE contra as bordas atuais da vista ou manipulando as barras de scroll verticais ou horizontais.
virtual BOOL OnScrollBy(
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Parâmetros
sizeScroll
Número de píxeis deslocados horizontal e verticalmente.
bDoScroll
Determina se ocorre scrolling da vista. Se TRUE, então ocorre scrolling; se FALSE, então scrolling não ocorre.
Valor de retorno
Diferente de zero se a vista pudesse ser deslocada; caso contrário, 0.
Observações
Nas classes derivadas, este método verifica se a visualização é deslocável na direção solicitada pelo utilizador e depois atualiza a nova região, se necessário. Esta função é automaticamente chamada por CWnd::OnHScroll e CWnd::OnVScroll para executar o pedido de scroll real.
A implementação padrão deste método não altera a vista, mas se não for chamada, a vista não será deslocada numa CScrollViewclasse derivada de .
Se a largura ou altura do documento exceder 32767 píxeis, deslocar para além de 32767 falhará porque OnScrollBy é chamado com um argumento inválido sizeScroll .
CView::OnUpdate
Chamado pelo framework após o documento da visualização ter sido modificado; Esta função é chamada por CDocument::UpdateAllViews e permite que a vista atualize o seu ecrã para refletir essas modificações.
virtual void OnUpdate(
CView* pSender,
LPARAM lHint,
CObject* pHint);
Parâmetros
pSender
Aponta para a vista que modificou o documento, ou NULL se todas as vistas devem ser atualizadas.
lHint
Contém informações sobre as modificações.
pHint
Aponta para um objeto que armazena informação sobre as modificações.
Observações
Também é chamada pela implementação padrão de OnInitialUpdate. A implementação padrão invalida toda a área do cliente, marcando-a para pintura quando a próxima WM_PAINT mensagem é recebida. Substitua esta função se quiser atualizar apenas as regiões que correspondem às partes modificadas do documento. Para isso, deve passar informações sobre as modificações usando os parâmetros da pista.
Para usar lHint, definam valores especiais de dica, normalmente uma máscara de bits ou um tipo enumerado, e o documento passe por um destes valores. Para usar pHint, derive uma classe hint a partir de CObject e faça com que o documento passe um ponteiro para um objeto hint; ao sobrepor OnUpdate, use a CObject::IsKindOf função membro para determinar o tipo de execução do objeto hint.
Normalmente, não deve fazer qualquer desenho diretamente a partir de OnUpdate. Em vez disso, determine-se o retângulo que descreve, em coordenadas do dispositivo, a área que necessita de atualização; passar este retângulo para CWnd::InvalidateRect. Isto faz com que a pintura aconteça na próxima vez que uma WM_PAINT mensagem é recebida.
Se lHint for 0 e pHint for NULL, o documento enviou uma notificação genérica de atualização. Se uma visualização receber uma notificação genérica de atualização, ou se não conseguir decodificar as dicas, deve invalidar toda a sua área de cliente.
Consulte também
Exemplo MFC MDIDOCVW
CWnd Classe
Gráfico de Hierarquia
CWnd Classe
CFrameWnd Classe
CSplitterWnd Classe
CDC Classe
CDocTemplate Classe
CDocument Classe