Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve o trabalho mínimo necessário para implementar a cópia e a colagem da Área de Transferência no aplicativo OLE. É recomendável que você leia os tópicos OLE (Objetos de Dados e Fontes de Dados) antes de continuar.
Antes de implementar a cópia ou a colagem, primeiro você deve fornecer funções para lidar com as opções Copiar, Recortar e Colar no menu Editar.
Copiando ou cortando dados
Para copiar dados para a Área de Transferência
Determine se os dados a serem copiados são dados nativos ou se são um item inserido ou vinculado.
Se os dados estiverem inseridos ou vinculados, obtenha um ponteiro para o objeto
COleClientItem
que foi selecionado.Se os dados forem nativos e o aplicativo for um servidor, crie um novo objeto derivado da
COleServerItem
contenção dos dados selecionados. Caso contrário, crie umCOleDataSource
objeto para os dados.
Chame a função membro
CopyToClipboard
do item selecionado.Se o usuário escolheu uma operação de Recortar em vez de uma operação de Copiar, exclua os dados selecionados do seu aplicativo.
Para ver um exemplo dessa sequência, consulte as funções OnEditCut
e OnEditCopy
nos programas de exemplo MFC OLE OCLIENT e HIERSVR. Observe que esses exemplos mantêm um ponteiro para os dados selecionados no momento, portanto, a etapa 1 já está concluída.
Colando dados
Colar dados é mais complicado do que copiá-los porque você precisa escolher o formato a ser usado para colar os dados em seu aplicativo.
Para colar dados da Área de Transferência
Na classe de exibição, implemente
OnEditPaste
para manipular os usuários que escolhem a opção Colar no menu Editar.Na função
OnEditPaste
, crie um objetoCOleDataObject
e chame sua função membroAttachClipboard
para vincular esse objeto aos dados na Área de Transferência.Chame
COleDataObject::IsDataAvailable
para verificar se um formato específico está disponível.Como alternativa, você pode usar
COleDataObject::BeginEnumFormats
para procurar outros formatos até encontrar um mais adequado para seu aplicativo.Execute a colagem do formato.
Para obter um exemplo de como isso funciona, consulte a implementação das OnEditPaste
funções membro nas classes de visualização definidas nos programas de exemplo do OLE do MFC OCLIENT e HIERSVR.
Dica
O principal benefício de separar a operação de colagem em sua função é que o mesmo código de colagem pode ser usado quando dados são soltos em seu aplicativo durante uma operação de arrastar e soltar. Assim como em OCLIENT e HIERSVR, sua OnDrop
função também pode chamar DoPasteItem
, reutilizando o código escrito para implementar operações de colagem.
Para lidar com a opção Colar Especial no menu Editar, consulte o tópico Caixas de Diálogo no OLE.
O que você quer saber mais sobre
Consulte também
Área de transferência: usar o mecanismo de área de transferência do OLE