Partilhar via


CDC Classe

Define uma classe de objetos de contexto de dispositivo.

Syntax

class CDC : public CObject

Members

Public Constructors

Name Description
CDC::CDC Constrói um objeto CDC.

Public Methods

Name Description
CDC::AbortDoc Encerra o trabalho de impressão atual, apagando tudo o que o aplicativo gravou no dispositivo desde a última chamada da StartDoc função membro.
CDC::AbortPath Fecha e descarta todos os caminhos no contexto do dispositivo.
CDC::AddMetaFileComment Copia o comentário de um buffer para um metarquivo de formato aprimorado especificado.
CDC::AlphaBlend Exibe bitmaps com pixels transparentes ou semitransparentes.
CDC::AngleArc Desenha um segmento de linha e um arco e move a posição atual para o ponto final do arco.
CDC::Arc Desenha um arco elíptico.
CDC::ArcTo Desenha um arco elíptico. Esta função é semelhante a Arc, exceto que a posição atual é atualizada.
CDC::Attach Anexa um contexto de dispositivo Windows a este CDC objeto.
CDC::BeginPath Abre um colchete de caminho no contexto do dispositivo.
CDC::BitBlt Copia um bitmap de um contexto de dispositivo especificado.
CDC::Chord Desenha um acorde (uma figura fechada delimitada pela intersecção de uma elipse e um segmento de linha).
CDC::CloseFigure Fecha uma figura aberta em um caminho.
CDC::CreateCompatibleDC Cria um contexto de dispositivo de memória que é compatível com outro contexto de dispositivo. Você pode usá-lo para preparar imagens na memória.
CDC::CreateDC Cria um contexto de dispositivo para um dispositivo específico.
CDC::CreateIC Cria um contexto de informações para um dispositivo específico. Isso fornece uma maneira rápida de obter informações sobre o dispositivo sem criar um contexto de dispositivo.
CDC::DeleteDC Exclui o contexto do dispositivo Windows associado a este CDC objeto.
CDC::DeleteTempMap Chamado pelo manipulador de tempo ocioso CWinApp para excluir qualquer objeto temporário CDC criado pelo FromHandle. Também desanexa o contexto do dispositivo.
CDC::Detach Desanexa o contexto do dispositivo Windows deste CDC objeto.
CDC::DPtoHIMETRIC Converte unidades de dispositivos em HIMETRIC unidades.
CDC::DPtoLP Converte unidades de dispositivo em unidades lógicas.
CDC::Draw3dRect Desenha um retângulo tridimensional.
CDC::DrawDragRect Apaga e redesenha um retângulo à medida que é arrastado.
CDC::DrawEdge Desenha as bordas de um retângulo.
CDC::DrawEscape Acede a capacidades de desenho de um ecrã de vídeo que não estão diretamente disponíveis através da interface gráfica do dispositivo (GDI).
CDC::DrawFocusRect Desenha um retângulo no estilo usado para indicar o foco.
CDC::DrawFrameControl Desenhe um controle de quadro.
CDC::DrawIcon Desenha um ícone.
CDC::DrawState Exibe uma imagem e aplica um efeito visual para indicar um estado.
CDC::DrawText Desenha texto formatado no retângulo especificado.
CDC::DrawTextEx Desenha texto formatado no retângulo especificado usando outros formatos.
CDC::Ellipse Desenha uma elipse.
CDC::EndDoc Termina um trabalho de impressão iniciado pela StartDoc função de membro.
CDC::EndPage Informa o driver de dispositivo que uma página está terminando.
CDC::EndPath Fecha um colchete de caminho e seleciona o caminho definido pelo colchete no contexto do dispositivo.
CDC::EnumObjects Enumera as canetas e pincéis disponíveis em um contexto de dispositivo.
CDC::Escape Permite que os aplicativos acessem recursos que não estão diretamente disponíveis a partir de um dispositivo específico por meio do GDI. Também permite o acesso às funções de escape do Windows. As chamadas de fuga feitas por um aplicativo são traduzidas e enviadas para o driver do dispositivo.
CDC::ExcludeClipRect Cria uma nova região de recorte que consiste na região de recorte existente menos o retângulo especificado.
CDC::ExcludeUpdateRgn Impede o desenho em áreas inválidas de uma janela excluindo uma região atualizada na janela de uma região de recorte.
CDC::ExtFloodFill Preenche uma área com o pincel atual. Fornece mais flexibilidade do que a CDC::FloodFill função de membro.
CDC::ExtTextOut Grava uma cadeia de caracteres dentro de uma região retangular usando a fonte selecionada no momento.
CDC::FillPath Fecha todas as figuras abertas no caminho atual e preenche o interior do caminho usando o pincel atual e o modo de preenchimento de polígono.
CDC::FillRect Preenche um determinado retângulo usando um pincel específico.
CDC::FillRgn Preenche uma região específica com o pincel especificado.
CDC::FillSolidRect Preenche um retângulo com uma cor sólida.
CDC::FlattenPath Transforma todas as curvas no caminho selecionado no contexto do dispositivo atual e transforma cada curva em uma sequência de linhas.
CDC::FloodFill Preenche uma área com o pincel atual.
CDC::FrameRect Desenha uma borda em torno de um retângulo.
CDC::FrameRgn Desenha uma borda em torno de uma região específica usando um pincel.
CDC::FromHandle Retorna um ponteiro para um CDC objeto quando dado um identificador para um contexto de dispositivo. Se um CDC objeto não estiver anexado à alça, um objeto temporário CDC será criado e anexado.
CDC::GetArcDirection Retorna a direção do arco atual para o contexto do dispositivo.
CDC::GetAspectRatioFilter Recupera a configuração para o filtro de proporção de aspeto atual.
CDC::GetBkColor Recupera a cor do plano de fundo atual.
CDC::GetBkMode Recupera o modo de plano de fundo.
CDC::GetBoundsRect Retorna o retângulo delimitador acumulado atual para o contexto de dispositivo especificado.
CDC::GetBrushOrg Recupera a origem do pincel atual.
CDC::GetCharABCWidths Recupera as larguras, em unidades lógicas, de caracteres consecutivos em um determinado intervalo da fonte atual.
CDC::GetCharABCWidthsI Recupera as larguras, em unidades lógicas, de índices de glifos consecutivos em um intervalo especificado da fonte TrueType atual.
CDC::GetCharacterPlacement Recupera vários tipos de informações em uma cadeia de caracteres.
CDC::GetCharWidth Recupera as larguras fracionárias de caracteres consecutivos em um determinado intervalo da fonte atual.
CDC::GetCharWidthI Recupera as larguras, em coordenadas lógicas, de índices de glifos consecutivos em um intervalo especificado da fonte atual.
CDC::GetClipBox Recupera as dimensões do retângulo delimitador mais apertado em torno do limite de recorte atual.
CDC::GetColorAdjustment Recupera os valores de ajuste de cor para o contexto do dispositivo.
CDC::GetCurrentBitmap Retorna um ponteiro para o objeto selecionado CBitmap no momento.
CDC::GetCurrentBrush Retorna um ponteiro para o objeto selecionado CBrush no momento.
CDC::GetCurrentFont Retorna um ponteiro para o objeto selecionado CFont no momento.
CDC::GetCurrentPalette Retorna um ponteiro para o objeto selecionado CPalette no momento.
CDC::GetCurrentPen Retorna um ponteiro para o objeto selecionado CPen no momento.
CDC::GetCurrentPosition Recupera a posição atual da caneta (em coordenadas lógicas).
CDC::GetDCBrushColor Recupera a cor do pincel atual.
CDC::GetDCPenColor Recupera a cor atual da caneta.
CDC::GetDeviceCaps Recupera um tipo especificado de informações específicas do dispositivo sobre os recursos de um determinado dispositivo de exibição.
CDC::GetFontData Recupera informações de métrica de fonte de um arquivo de fonte escalável. As informações a serem recuperadas são identificadas especificando um deslocamento no arquivo de fonte e o comprimento das informações a serem retornadas.
CDC::GetFontLanguageInfo Retorna informações sobre a fonte atualmente selecionada para o contexto de exibição especificado.
CDC::GetGlyphOutline Recupera a curva de contorno ou bitmap de um caractere de contorno na fonte atual.
CDC::GetGraphicsMode Recupera o modo gráfico atual para o contexto de dispositivo especificado.
CDC::GetHalftoneBrush Recupera um pincel de meio-tom.
CDC::GetKerningPairs Recupera os pares de kerning de caracteres para a fonte que está atualmente selecionada no contexto do dispositivo especificado.
CDC::GetLayout Recupera o layout de um contexto de dispositivo (DC). O layout pode ser da esquerda para a direita (padrão) ou da direita para a esquerda (espelhado).
CDC::GetMapMode Recupera o modo de mapeamento atual.
CDC::GetMiterLimit Retorna o limite de mitra para o contexto do dispositivo.
CDC::GetNearestColor Recupera a cor lógica mais próxima de uma cor lógica especificada que determinado dispositivo pode representar.
CDC::GetOutlineTextMetrics Recupera informações de métrica de fonte para fontes TrueType.
CDC::GetOutputCharWidth Recupera as larguras de caracteres individuais em um grupo consecutivo de caracteres da fonte atual usando o contexto do dispositivo de saída.
CDC::GetOutputTabbedTextExtent Calcula a largura e a altura de uma cadeia de caracteres no contexto do dispositivo de saída.
CDC::GetOutputTextExtent Calcula a largura e a altura de uma linha de texto no contexto do dispositivo de saída usando a fonte atual para determinar as dimensões.
CDC::GetOutputTextMetrics Recupera as métricas da fonte atual do contexto do dispositivo de saída.
CDC::GetPath Recupera as coordenadas que definem os pontos finais das linhas e os pontos de controle das curvas encontradas no caminho selecionado no contexto do dispositivo.
CDC::GetPixel Recupera o valor de cor RGB do pixel no ponto especificado.
CDC::GetPolyFillMode Recupera o modo de preenchimento de polígonos atual.
CDC::GetROP2 Recupera o modo de desenho atual.
CDC::GetSafeHdc Retorna CDC::m_hDC, o contexto do dispositivo de saída.
CDC::GetStretchBltMode Recupera o modo de alongamento de bitmap atual.
CDC::GetTabbedTextExtent Calcula a largura e a altura de uma cadeia de caracteres no contexto do dispositivo de atributo.
CDC::GetTextAlign Recupera os sinalizadores de alinhamento de texto.
CDC::GetTextCharacterExtra Recupera a configuração atual para a quantidade de espaçamento entre caracteres.
CDC::GetTextColor Recupera a cor do texto atual.
CDC::GetTextExtent Calcula a largura e a altura de uma linha de texto no contexto do dispositivo de atributo usando a fonte atual para determinar as dimensões.
CDC::GetTextExtentExPointI Recupera o número de caracteres em uma cadeia de caracteres especificada que caberá dentro de um espaço especificado e preenche uma matriz com a extensão do texto para cada um desses caracteres.
CDC::GetTextExtentPointI Recupera a largura e a altura da matriz especificada de índices de glifos.
CDC::GetTextFace Copia o nome do tipo de letra da fonte atual em um buffer como uma cadeia de caracteres terminada em nulo.
CDC::GetTextMetrics Recupera as métricas da fonte atual do contexto do dispositivo de atributo.
CDC::GetViewportExt Recupera as extensões x e y do visor.
CDC::GetViewportOrg Recupera as coordenadas x e y da origem do visor.
CDC::GetWindow Retorna a janela associada ao contexto do dispositivo de exibição.
CDC::GetWindowExt Recupera as extensões x e y da janela associada.
CDC::GetWindowOrg Recupera as coordenadas x e y da origem da janela associada.
CDC::GetWorldTransform Recupera a transformação atual do espaço do mundo para o espaço da página.
CDC::GradientFill Preenche estruturas de retângulo e triângulo com uma cor gradual.
CDC::GrayString Desenha texto esmaecido (cinza) no local determinado.
CDC::HIMETRICtoDP Converte unidades HIMÉTRICAS em unidades de dispositivo.
CDC::HIMETRICtoLP Converte unidades HIMÉTRICAS em unidades lógicas.
CDC::IntersectClipRect Cria uma nova região de recorte formando a interseção da região atual e um retângulo.
CDC::InvertRect Inverte o conteúdo de um retângulo.
CDC::InvertRgn Inverte as cores em uma região.
CDC::IsPrinting Determina se o contexto do dispositivo está sendo usado para impressão.
CDC::LineTo Desenha uma linha da posição atual até, mas não incluindo, um ponto.
CDC::LPtoDP Converte unidades lógicas em unidades de dispositivo.
CDC::LPtoHIMETRIC Converte unidades lógicas em unidades HIMÉTRICAS.
CDC::MaskBlt Combina os dados de cor para os bitmaps de origem e destino usando a máscara e a operação raster fornecidas.
CDC::ModifyWorldTransform Altera a transformação do mundo para um contexto de dispositivo usando o modo especificado.
CDC::MoveTo Move a posição atual.
CDC::OffsetClipRgn Move a região de recorte de determinado dispositivo.
CDC::OffsetViewportOrg Modifica a origem do visor em relação às coordenadas da origem do visor atual.
CDC::OffsetWindowOrg Modifica a origem da janela em relação às coordenadas da origem da janela atual.
CDC::PaintRgn Preenche uma região com o pincel selecionado.
CDC::PatBlt Cria um padrão de bits.
CDC::Pie Desenha uma cunha em forma de torta.
CDC::PlayMetaFile Reproduz o conteúdo do metarquivo especificado no dispositivo determinado. A versão melhorada do PlayMetaFile apresenta a imagem armazenada no metaficheiro de formato melhorado fornecido. O metaficheiro pode ser reproduzido qualquer número de vezes.
CDC::PlgBlt Executa uma transferência de bloco de bits dos bits de dados de cor do retângulo especificado no contexto do dispositivo de origem para o paralelogramo especificado no contexto do dispositivo determinado.
CDC::PolyBezier Desenha uma ou mais estrias de Bzier. A posição atual não é usada ou atualizada.
CDC::PolyBezierTo Desenha uma ou mais estrias de Bzier e move a posição atual para o ponto final da última spline de Bzier.
CDC::PolyDraw Desenha um conjunto de segmentos de linha e splines de Bzier. Esta função atualiza a posição atual.
CDC::Polygon Desenha um polígono que consiste em dois ou mais pontos (vértices) conectados por linhas.
CDC::Polyline Desenha um conjunto de segmentos de linha conectando os pontos especificados.
CDC::PolylineTo Desenha uma ou mais linhas retas e move a posição atual para o ponto final da última linha.
CDC::PolyPolygon Cria dois ou mais polígonos que são preenchidos usando o modo de preenchimento de polígonos atual. Os polígonos podem estar disjuntos ou sobrepor-se.
CDC::PolyPolyline Desenha várias séries de segmentos de linha conectados. A posição atual não é usada ou atualizada por esta função.
CDC::PtVisible Especifica se o ponto determinado está dentro da região de recorte.
CDC::RealizePalette Mapeia entradas da paleta na paleta lógica atual para a paleta do sistema.
CDC::Rectangle Desenha um retângulo usando a caneta atual e preenche-o usando o pincel atual.
CDC::RectVisible Determina se alguma parte do retângulo dado está dentro da região de corte.
CDC::ReleaseAttribDC Releases m_hAttribDC, o contexto do dispositivo de atributo.
CDC::ReleaseOutputDC Releases m_hDC, o contexto do dispositivo de saída.
CDC::ResetDC Atualiza o contexto do m_hAttribDC dispositivo.
CDC::RestoreDC Restaura o contexto do dispositivo para um estado anterior salvo com SaveDC.
CDC::RoundRect Desenha um retângulo com cantos arredondados usando a caneta atual e preenchido usando o pincel atual.
CDC::SaveDC Salva o estado atual do contexto do dispositivo.
CDC::ScaleViewportExt Modifica a extensão do visor em relação aos valores atuais.
CDC::ScaleWindowExt Modifica as extensões da janela em relação aos valores atuais.
CDC::ScrollDC Rola um retângulo de bits horizontal e verticalmente.
CDC::SelectClipPath Seleciona o caminho atual como uma região de recorte para o contexto do dispositivo, combinando a nova região com qualquer região de recorte existente usando o modo especificado.
CDC::SelectClipRgn Combina a região determinada com a região de recorte atual usando o modo especificado.
CDC::SelectObject Seleciona um objeto de desenho GDI, como uma caneta.
CDC::SelectPalette Seleciona a paleta lógica.
CDC::SelectStockObject Seleciona uma das canetas, pincéis ou fontes predefinidas fornecidas pelo Windows.
CDC::SetAbortProc Define uma função de retorno de chamada fornecida pelo programador que o Windows chama se um trabalho de impressão tiver de ser anulado.
CDC::SetArcDirection Define a direção do desenho a ser usada para as funções de arco e retângulo.
CDC::SetAttribDC Define m_hAttribDC, o contexto do dispositivo de atributo.
CDC::SetBkColor Define a cor do plano de fundo atual.
CDC::SetBkMode Define o modo de plano de fundo.
CDC::SetBoundsRect Controla o acúmulo de informações de retângulo delimitador para o contexto de dispositivo especificado.
CDC::SetBrushOrg Especifica a origem do próximo pincel selecionado em um contexto de dispositivo.
CDC::SetColorAdjustment Define os valores de ajuste de cor para o contexto do dispositivo usando os valores especificados.
CDC::SetDCBrushColor Define a cor do pincel atual.
CDC::SetDCPenColor Define a cor atual da caneta.
CDC::SetGraphicsMode Define o modo gráfico atual para o contexto de dispositivo especificado.
CDC::SetLayout Altera o layout de um contexto de dispositivo (DC).
CDC::SetMapMode Define o modo de mapeamento atual.
CDC::SetMapperFlags Altera o algoritmo que o mapeador de fontes usa quando mapeia fontes lógicas para fontes físicas.
CDC::SetMiterLimit Define o limite para o comprimento das junções de mitra para o contexto do dispositivo.
CDC::SetOutputDC Define m_hDC, o contexto do dispositivo de saída.
CDC::SetPixel Define o pixel no ponto especificado para a aproximação mais próxima da cor especificada.
CDC::SetPixelV Define o pixel nas coordenadas especificadas para a aproximação mais próxima da cor especificada. SetPixelV é mais rápido do que SetPixel porque não precisa retornar o valor de cor do ponto pintado.
CDC::SetPolyFillMode Define o modo de preenchimento de polígonos.
CDC::SetROP2 Define o modo de desenho atual.
CDC::SetStretchBltMode Define o modo de alongamento de bitmap.
CDC::SetTextAlign Define os sinalizadores de alinhamento de texto.
CDC::SetTextCharacterExtra Define a quantidade de espaçamento entre caracteres.
CDC::SetTextColor Define a cor do texto.
CDC::SetTextJustification Adiciona espaço aos caracteres de quebra em uma cadeia de caracteres.
CDC::SetViewportExt Define as extensões x e y do visor.
CDC::SetViewportOrg Define a origem do visor.
CDC::SetWindowExt Define as extensões x e y da janela associada.
CDC::SetWindowOrg Define a origem da janela do contexto do dispositivo.
CDC::SetWorldTransform Define o espaço do mundo atual para a transformação do espaço da página.
CDC::StartDoc Informa o driver de dispositivo que um novo trabalho de impressão está sendo iniciado.
CDC::StartPage Informa o driver de dispositivo que uma nova página está sendo iniciada.
CDC::StretchBlt Move um bitmap de um retângulo de origem e dispositivo para um retângulo de destino, esticando ou compactando o bitmap, se necessário, para ajustar as dimensões do retângulo de destino.
CDC::StrokeAndFillPath Fecha todas as figuras abertas em um caminho, atinge o contorno do caminho usando a caneta atual e preenche seu interior usando o pincel atual.
CDC::StrokePath Renderiza o caminho especificado usando a caneta atual.
CDC::TabbedTextOut Grava uma cadeia de caracteres em um local especificado, expandindo as guias para os valores especificados em uma matriz de posições de parada de tabulação.
CDC::TextOut Grava uma cadeia de caracteres em um local especificado usando a fonte selecionada no momento.
CDC::TransparentBlt Transfere um bloco de bits de dados de cor do contexto do dispositivo de origem especificado para um contexto de dispositivo de destino, tornando uma cor especificada transparente na transferência.
CDC::UpdateColors Atualiza a área do cliente do contexto do dispositivo combinando as cores atuais na área do cliente com a paleta do sistema pixel a pixel.
CDC::WidenPath Redefine o caminho atual como a área que seria pintada se o caminho fosse traçado usando a caneta atualmente selecionada no contexto do dispositivo.

Public Operators

Name Description
CDC::operator HDC Recupera o identificador do contexto do dispositivo.

Membros de Dados Públicos

Name Description
CDC::m_hAttribDC O contexto attribute-device usado por este CDC objeto.
CDC::m_hDC O contexto do dispositivo de saída usado por este CDC objeto.

Remarks

O CDC objeto fornece funções de membro para trabalhar com um contexto de dispositivo, como um monitor ou impressora, e membros para trabalhar com um contexto de exibição associado à área do cliente de uma janela.

Faça todo o desenho através das funções de membro de um CDC objeto. A classe fornece funções de membro para operações de contexto de dispositivo, trabalhando com ferramentas de desenho, seleção de objetos de interface de dispositivo gráfico (GDI) segura para tipos e trabalhando com cores e paletas. Ele também fornece funções de membro para obter e definir atributos de desenho, mapeamento, trabalhar com o visor, trabalhar com a extensão da janela, converter coordenadas, trabalhar com regiões, recortar, desenhar linhas e desenhar formas simples, elipses e polígonos. As funções de membro também são fornecidas para desenhar texto, trabalhar com fontes, usar escapes de impressora, rolar e reproduzir metaarquivos.

Para usar um CDC objeto, construa-o e, em seguida, chame suas funções de membro que paralelizam funções do Windows que usam contextos de dispositivo.

Note

No Windows 95/98, todas as coordenadas de tela são limitadas a 16 bits. Portanto, uma int função passada para um CDC membro deve estar no intervalo -32768 a 32767.

Para usos específicos, a Microsoft Foundation Class Library fornece várias classes derivadas de CDC . CPaintDC encapsula chamadas para BeginPaint e EndPaint. CClientDC Gerencia um contexto de exibição associado à área do cliente de uma janela. CWindowDC Gerencia um contexto de exibição associado a uma janela inteira, incluindo seu quadro e controles. CMetaFileDC associa um contexto de dispositivo a um metarquivo.

CDC fornece duas funções GetLayout de membro e SetLayout, para reverter o layout de um contexto de dispositivo, que não herda seu layout de uma janela. Essa orientação da direita para a esquerda é necessária para aplicativos escritos para culturas, como árabe ou hebraico, onde o layout de caracteres não é o padrão europeu.

CDC contém dois contextos de dispositivo, m_hDC e m_hAttribDC, que, na criação de um CDC objeto, referem-se ao mesmo dispositivo. CDC direciona todas as chamadas GDI de saída para e a m_hDC maioria das chamadas GDI atribuem ao m_hAttribDC. (Um exemplo de uma chamada de atributo é GetTextColor, enquanto SetTextColor é uma chamada de saída.)

Por exemplo, a estrutura usa esses dois contextos de dispositivo para implementar um CMetaFileDC objeto que enviará saída para um metarquivo enquanto lê atributos de um dispositivo físico. A visualização de impressão é implementada na estrutura de forma semelhante. Você também pode usar os dois contextos de dispositivo de maneira semelhante no código específico do aplicativo.

Há momentos em que você pode precisar de informações métricas de texto dos contextos e m_hAttribDC do m_hDC dispositivo. Os seguintes pares de funções fornecem essa capacidade:

Uses m_hAttribDC Uses m_hDC
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

Para obter mais informações sobre CDCo , consulte Contextos de dispositivo.

Inheritance Hierarchy

CObject

CDC

Requirements

Header:afxwin.h

CDC::AbortDoc

Encerra o trabalho de impressão atual e apaga tudo o que o aplicativo gravou no dispositivo desde a última chamada para a StartDoc função de membro.

int AbortDoc();

Return Value

Um valor maior ou igual a 0 se bem-sucedido ou um valor negativo se tiver ocorrido um erro. A lista a seguir mostra valores de erro comuns e seus significados:

  • SP_ERROR Erro geral.

  • SP_OUTOFDISK Não há espaço em disco suficiente atualmente disponível para spooling, e não haverá mais espaço disponível.

  • SP_OUTOFMEMORY Não há memória suficiente disponível para spooling.

  • SP_USERABORT O utilizador encerrou o trabalho através do Gestor de Impressão.

Remarks

Esta função de membro substitui o escape da ABORTDOC impressora.

AbortDoc deve ser usado para encerrar o seguinte:

  • Operações de impressão que não especificam uma função abortar usando SetAbortProco .

  • Operações de impressão que ainda não atingiram a primeira NEWFRAME chamada ou NEXTBAND escapam.

Se um aplicativo encontrar um erro de impressão ou uma operação de impressão cancelada, ele não deve tentar encerrar a operação usando as EndDoc funções ou AbortDoc membro da classe CDC. GDI encerra automaticamente a operação antes de retornar o valor de erro.

Se o aplicativo exibir uma caixa de diálogo para permitir que o usuário cancele a operação de impressão, ele deve chamar AbortDoc antes de destruir a caixa de diálogo.

Se o Gestor de Impressão tiver sido utilizado para iniciar o trabalho de impressão, a chamada AbortDoc apaga todo o trabalho de spool — a impressora não recebe nada. Se o Gestor de Impressão não tiver sido utilizado para iniciar o trabalho de impressão, os dados poderão ter sido enviados para a impressora antes AbortDoc de serem chamados. Nesse caso, o driver da impressora teria redefinido a impressora (quando possível) e fechado o trabalho de impressão.

Example

Veja o exemplo para CDC::StartDoc.

CDC::AbortPath

Fecha e descarta todos os caminhos no contexto do dispositivo.

BOOL AbortPath();

Return Value

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

Remarks

Se houver um colchete de caminho aberto no contexto do dispositivo, o colchete de caminho será fechado e o caminho será descartado. Se houver um caminho fechado no contexto do dispositivo, o caminho será descartado.

CDC::AddMetaFileComment

Copia o comentário de um buffer para um metarquivo de formato aprimorado especificado.

BOOL AddMetaFileComment(
    UINT nDataSize,
    const BYTE* pCommentData);

Parameters

nDataSize
Especifica o comprimento do buffer de comentários, em bytes.

pCommentData
Aponta para o buffer que contém o comentário.

Return Value

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

Remarks

Um comentário pode incluir qualquer informação privada — por exemplo, a fonte da imagem e a data em que foi criada. Um comentário deve começar com uma assinatura de aplicativo, seguida pelos dados. Os comentários não devem conter dados específicos da posição. Os dados específicos da posição especificam o local de um registro e não devem ser incluídos porque um metarquivo pode ser incorporado em outro metaarquivo. Esta função só pode ser usada com metaficheiros melhorados.

CDC::AlphaBlend

Chame essa função de membro para exibir bitmaps com pixels transparentes ou semitransparentes.

BOOL AlphaBlend(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    BLENDFUNCTION blend);

Parameters

xDest
Especifica a coordenada x, em unidades lógicas, do canto superior esquerdo do retângulo de destino.

yDest
Especifica a coordenada y, em unidades lógicas, do canto superior esquerdo do retângulo de destino.

nDestWidth
Especifica a largura, em unidades lógicas, do retângulo de destino.

nDestHeight
Especifica a altura, em unidades lógicas, do retângulo de destino.

pSrcDC
Um ponteiro para o contexto do dispositivo de origem.

xSrc
Especifica a coordenada x, em unidades lógicas, do canto superior esquerdo do retângulo de origem.

ySrc
Especifica a coordenada y, em unidades lógicas, do canto superior esquerdo do retângulo de origem.

nSrcWidth
Especifica a largura, em unidades lógicas, do retângulo de origem.

nSrcHeight
Especifica a altura, em unidades lógicas, do retângulo de origem.

blend
Especifica uma BLENDFUNCTION estrutura.

Return Value

TRUE se for bem-sucedida; caso contrário, FALSE.

Remarks

Consulte AlphaBlend no SDK do Windows para obter mais informações.

CDC::AngleArc

Desenha um segmento de linha e um arco.

BOOL AngleArc(
    int x,
    int y,
    int nRadius,
    float fStartAngle,
    float fSweepAngle);

Parameters

x
Especifica a coordenada x lógica do centro do círculo.

y
Especifica a coordenada y lógica do centro do círculo.

nRadius
Especifica o raio do círculo em unidades lógicas. Este valor deve ser positivo.

fStartAngle
Especifica o ângulo inicial em graus em relação ao eixo x.

fSweepAngle
Especifica o ângulo de varredura em graus em relação ao ângulo inicial.

Return Value

Diferente de zero se for bem-sucedido; caso contrário, 0.

Remarks

O segmento de linha é desenhado desde a posição atual até o início do arco. O arco é desenhado ao longo do perímetro de um círculo com o raio e o centro determinados. O comprimento do arco é definido pelos ângulos de início e varredura dados.

AngleArc move a posição atual para o ponto final do arco. O arco desenhado por esta função pode parecer elíptico, dependendo da transformação atual e do modo de mapeamento. Antes de desenhar o arco, esta função desenha o segmento de linha da posição atual para o início do arco. O arco é desenhado através da construção de um círculo imaginário com o raio especificado em torno do ponto central especificado. O ponto de partida do arco é determinado medindo no sentido anti-horário a partir do eixo x do círculo pelo número de graus no ângulo inicial. O ponto final é similarmente localizado medindo no sentido anti-horário a partir do ponto inicial pelo número de graus no ângulo de varredura.

Se o ângulo de varredura for superior a 360 graus, o arco é varrido várias vezes. Esta função desenha linhas usando a caneta atual. O número não está preenchido.

CDC::Arc

Desenha um arco elíptico.

BOOL Arc(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Arc(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Especifica a coordenada x do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

y1
Especifica a coordenada y do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

x2
Especifica a coordenada x do canto inferior direito do retângulo delimitador (em unidades lógicas).

y2
Especifica a coordenada y do canto inferior direito do retângulo delimitador (em unidades lógicas).

x3
Especifica a coordenada x do ponto que define o ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

y3
Especifica a coordenada y do ponto que define o ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

x4
Especifica a coordenada x do ponto que define o ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

y4
Especifica a coordenada y do ponto que define o ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

lpRect
Especifica o retângulo delimitador (em unidades lógicas). Você pode passar um LPRECT ou um CRect objeto para esse parâmetro.

ptStart
Especifica as coordenadas x e y do ponto que define o ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

ptEnd
Especifica as coordenadas x e y do ponto que define o ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

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

Remarks

O arco desenhado usando a função é um segmento da elipse definido pelo retângulo delimitador especificado.

O ponto de partida real do arco é o ponto em que um raio extraído do centro do retângulo delimitador através do ponto de partida especificado cruza a elipse. O ponto final real do arco é o ponto no qual um raio extraído do centro do retângulo delimitador através do ponto final especificado cruza a elipse. O arco é desenhado no sentido anti-horário. Como um arco não é uma figura fechada, ele não é preenchido. Tanto a largura como a altura do retângulo devem ser superiores a 2 unidades e inferiores a 32.767 unidades.

Example

void CDCView::DrawArc(CDC *pDC)
{
   // Fill the client area with a thin circle. The circle's
   // interior is not filled. The circle's perimeter is
   // blue from 6 o'clock to 3 o'clock and red from 3
   // o'clock to 6 o'clock.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen *pOldPen;

   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen.

   pOldPen = pDC->SelectObject(&penBlue);

   pDC->Arc(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw from 6 o'clock to 3 o'clock, counterclockwise,
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start
   // and end points.
   pDC->Arc(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::ArcTo

Desenha um arco elíptico.

BOOL ArcTo(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL ArcTo(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Especifica a coordenada x do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

y1
Especifica a coordenada y do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

x2
Especifica a coordenada x do canto inferior direito do retângulo delimitador (em unidades lógicas).

y2
Especifica a coordenada y do canto inferior direito do retângulo delimitador (em unidades lógicas).

x3
Especifica a coordenada x do ponto que define o ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

y3
Especifica a coordenada y do ponto que define o ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

x4
Especifica a coordenada x do ponto que define o ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

y4
Especifica a coordenada y do ponto que define o ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

lpRect
Especifica o retângulo delimitador (em unidades lógicas). Você pode passar um ponteiro para uma estrutura de RECT dados ou um CRect objeto para esse parâmetro.

ptStart
Especifica as coordenadas x e y do ponto que define o ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco. Você pode passar uma POINT estrutura de dados ou um CPoint objeto para esse parâmetro.

ptEnd
Especifica as coordenadas x e y do ponto que define o ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco. Você pode passar uma POINT estrutura de dados ou um CPoint objeto para esse parâmetro.

Return Value

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

Remarks

Esta função é semelhante a CDC::Arc, exceto que a posição atual é atualizada. Os pontos ( x1, y1) e ( x2, y2) especificam o retângulo delimitador. Uma elipse formada pelo retângulo delimitador definido define a curva do arco. O arco se estende no sentido anti-horário (a direção padrão do arco) a partir do ponto onde intersecta a linha radial do centro do retângulo delimitador para ( x3, y3). O arco termina onde cruza a linha radial do centro do retângulo delimitador para ( x4, y4). Se o ponto inicial e o ponto final forem os mesmos, uma elipse completa é desenhada.

Uma linha é traçada da posição atual até o ponto inicial do arco. Se nenhum erro ocorrer, a posição atual é definida para o ponto final do arco. O arco é desenhado usando a caneta atual; não está cheio.

CDC::Attach

Use esta função de membro para anexar um hDC ao CDC objeto.

BOOL Attach(HDC hDC);

Parameters

hDC
Um contexto de dispositivo Windows.

Return Value

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

Remarks

O hDC é armazenado no m_hDC, o contexto do dispositivo de saída e no m_hAttribDC, o contexto do dispositivo de atributo.

CDC::BeginPath

Abre um colchete de caminho no contexto do dispositivo.

BOOL BeginPath();

Return Value

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

Remarks

Depois que um colchete de caminho é aberto, um aplicativo pode começar a chamar funções de desenho GDI para definir os pontos que se encontram no caminho. Um aplicativo pode fechar um colchete de caminho aberto chamando a EndPath função de membro. Quando um aplicativo chama BeginPath, todos os caminhos anteriores são descartados.

Consulte BeginPath no SDK do Windows para obter uma lista das funções de desenho que definem pontos em um caminho.

Example

// This implementation uses GDI paths to draw the outline of
// some text in a TrueType font. The path is used to record the way
// the TrueType font would be drawn. Then, the function uses the data
// returned from CDC::GetPath() to draw the font--without filling it.
void CDCView::DrawPath(CDC *pDC)
{
   // Describe a 24-point truetype font of normal weight
   LOGFONT lf;
   memset(&lf, 0, sizeof(lf));
   lf.lfHeight = -MulDiv(24, pDC->GetDeviceCaps(LOGPIXELSY), 72);
   lf.lfWeight = FW_NORMAL;
   lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

   // create and select it
   CFont newFont;
   if (!newFont.CreateFontIndirect(&lf))
      return;
   CFont *pOldFont = pDC->SelectObject(&newFont);

   // use a path to record how the text was drawn
   pDC->BeginPath();
   pDC->TextOut(10, 10, _T("Outline this!"));
   pDC->EndPath();

   // Find out how many points are in the path. Note that
   // for long strings or complex fonts, this number might be
   // gigantic!
   int nNumPts = pDC->GetPath(NULL, NULL, 0);
   if (nNumPts == 0)
      return;

   // Allocate memory to hold points and stroke types from
   // the path.
   LPPOINT lpPoints = NULL;
   LPBYTE lpTypes = NULL;
   try
   {
      lpPoints = new POINT[nNumPts];
      lpTypes = new BYTE[nNumPts];
   }
   catch (CException *pe)
   {
      delete[] lpPoints;
      lpPoints = NULL;
      delete[] lpTypes;
      lpTypes = NULL;
      pe->Delete();
   }
   if (lpPoints == NULL || lpTypes == NULL)
      return;

   // Now that we have the memory, really get the path data.
   nNumPts = pDC->GetPath(lpPoints, lpTypes, nNumPts);

   // If it worked, draw the lines. Windows 98 doesn't support
   // the PolyDraw API, so we use our own member function to do
   // similar work. If you're targeting only later versions of
   // Windows, you can use the PolyDraw() API and avoid the
   // COutlineView::PolyDraw() member function.

   if (nNumPts != -1)
      pDC->PolyDraw(lpPoints, lpTypes, nNumPts);

   // Release the memory we used
   delete[] lpPoints;
   delete[] lpTypes;

   // Put back the old font
   pDC->SelectObject(pOldFont);

   return;
}

CDC::BitBlt

Copia um bitmap do contexto do dispositivo de origem para esse contexto de dispositivo atual.

BOOL BitBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    DWORD dwRop);

Parameters

x
Especifica a coordenada x lógica do canto superior esquerdo do retângulo de destino.

y
Especifica a coordenada y lógica do canto superior esquerdo do retângulo de destino.

nWidth
Especifica a largura (em unidades lógicas) do retângulo de destino e do bitmap de origem.

nHeight
Especifica a altura (em unidades lógicas) do retângulo de destino e do bitmap de origem.

pSrcDC
Ponteiro para um CDC objeto que identifica o contexto do dispositivo do qual o bitmap será copiado. Deve ser NULL se dwRop especifica uma operação raster que não inclui uma fonte.

xSrc
Especifica a coordenada x lógica do canto superior esquerdo do bitmap de origem.

ySrc
Especifica a coordenada y lógica do canto superior esquerdo do bitmap de origem.

dwRop
Especifica a operação de raster a ser executada. Os códigos de operação raster definem como o GDI combina cores em operações de saída que envolvem um pincel atual, um possível bitmap de origem e um bitmap de destino. Consulte BitBlt no SDK do Windows para obter uma lista dos códigos de operação do raster e dwRop suas descrições

Para obter uma lista completa de códigos de operação de raster, consulte Sobre códigos de operação raster no SDK do Windows.

Return Value

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

Remarks

O aplicativo pode alinhar as janelas ou áreas de cliente em limites de bytes para garantir que as BitBlt operações ocorram em retângulos alinhados a bytes. (Defina os CS_BYTEALIGNWINDOW sinalizadores ou CS_BYTEALIGNCLIENT ao registrar as classes de janela.)

BitBlt As operações em retângulos alinhados a bytes são consideravelmente mais rápidas do que BitBlt as operações em retângulos que não estão alinhados com bytes. Se você quiser especificar estilos de classe, como alinhamento de bytes para seu próprio contexto de dispositivo, você terá que registrar uma classe de janela em vez de confiar nas classes do Microsoft Foundation para fazer isso por você. Use a função AfxRegisterWndClassglobal .

GDI transforma nWidth e nHeight, uma vez usando o contexto do dispositivo de destino e uma vez usando o contexto do dispositivo de origem. Se as extensões resultantes não corresponderem, o GDI usará a função Windows StretchBlt para compactar ou esticar o bitmap de origem conforme necessário.

Se os bitmaps de destino, origem e padrão não tiverem o mesmo formato de cor, a função converte BitBlt os bitmaps de origem e padrão para corresponder ao destino. As cores de primeiro plano e plano de fundo do bitmap de destino são usadas na conversão.

Quando a função converte BitBlt um bitmap monocromático em cor, ela define bits brancos (1) para a cor de plano de fundo e bits pretos (0) para a cor de primeiro plano. As cores de primeiro plano e plano de fundo do contexto do dispositivo de destino são usadas. Para converter cor em monocromático, BitBlt define pixels que correspondem à cor do plano de fundo como branco e define todos os outros pixels como preto. BitBlt Usa as cores de primeiro plano e plano de fundo do contexto do dispositivo de cores para converter de cor para monocromático.

Nem todos os contextos de dispositivos suportam BitBlt. Para verificar se um determinado contexto de dispositivo suporta BitBlt, use a GetDeviceCaps função de membro e especifique o índice RASTERCAPS.

Example

Veja o exemplo para CDC::CreateCompatibleDC.

CDC::CDC

Constrói um objeto CDC.

CDC();

CDC::Chord

Desenha um acorde (uma figura fechada delimitada pela intersecção de uma elipse e um segmento de linha).

BOOL Chord(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Chord(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Especifica a coordenada x do canto superior esquerdo do retângulo delimitador do acorde (em unidades lógicas).

y1
Especifica a coordenada y do canto superior esquerdo do retângulo delimitador do acorde (em unidades lógicas).

x2
Especifica a coordenada x do canto inferior direito do retângulo delimitador do acorde (em unidades lógicas).

y2
Especifica a coordenada y do canto inferior direito do retângulo delimitador do acorde (em unidades lógicas).

x3
Especifica a coordenada x do ponto que define o ponto inicial do acorde (em unidades lógicas).

y3
Especifica a coordenada y do ponto que define o ponto inicial do acorde (em unidades lógicas).

x4
Especifica a coordenada x do ponto que define o ponto final do acorde (em unidades lógicas).

y4
Especifica a coordenada y do ponto que define o ponto final do acorde (em unidades lógicas).

lpRect
Especifica o retângulo delimitador (em unidades lógicas). Você pode passar um LPRECT ou um CRect objeto para esse parâmetro.

ptStart
Especifica as coordenadas x e y do ponto que define o ponto inicial do acorde (em unidades lógicas). Este ponto não precisa estar exatamente no acorde. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

ptEnd
Especifica as coordenadas x e y do ponto que define o ponto final do acorde (em unidades lógicas). Este ponto não precisa estar exatamente no acorde. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

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

Remarks

Os parâmetros ( x1, y1) e ( x2, y2) especificam os cantos superior esquerdo e inferior-direito, respectivamente, de um retângulo que delimita a elipse que faz parte do acorde. Os parâmetros ( x3, y3) e ( x4, y4) especificam os pontos finais de uma linha que cruza a elipse. O acorde é desenhado usando a caneta selecionada e preenchido usando o pincel selecionado.

A figura desenhada Chord pela função estende-se até, mas não inclui as coordenadas direita e inferior. Isto significa que a altura da figura é y2 - y1 e a largura da figura é .x2 - x1

Example

void CDCView::DrawChord(CDC *pDC)
{
   // Fill the client area with a circle. The circle is
   // blue and filled with blue, but has a chord cut out
   // of it from 3 o'clock to 6 o'clock. That chord is
   // red and filled with a red diagonal hatch.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.
   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Chord(rectClient,
              CPoint(rectClient.right, rectClient.CenterPoint().y),
              CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter chord from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen
   // with the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Keep the same parameters, but reverse start and
   // end points.
   pDC->Chord(rectClient,
              CPoint(rectClient.CenterPoint().x, rectClient.right),
              CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::CloseFigure

Fecha uma figura aberta em um caminho.

BOOL CloseFigure();

Return Value

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

Remarks

A função fecha a figura desenhando uma linha da posição atual até o primeiro ponto da figura (geralmente, o ponto especificado pela chamada mais recente para a MoveTo função membro) e conecta as linhas usando o estilo de junção de linha. Se uma figura for fechada usando a LineTo função de membro em vez de , as tampas finais CloseFigureserão usadas para criar o canto em vez de uma junção. CloseFigure só deve ser chamado se houver um colchete de caminho aberto no contexto do dispositivo.

Uma figura em um caminho está aberta, a menos que seja explicitamente fechada usando essa função. (Uma figura pode ser aberta mesmo que o ponto atual e o ponto de partida da figura sejam os mesmos.) Qualquer linha ou curva adicionada ao caminho depois CloseFigure inicia uma nova figura.

CDC::CreateCompatibleDC

Cria um contexto de dispositivo de memória que é compatível com o dispositivo especificado pelo pDC.

BOOL CreateCompatibleDC(CDC* pDC);

Parameters

pDC
Um ponteiro para um contexto de dispositivo. Se pDC for NULL, a função cria um contexto de dispositivo de memória que é compatível com a exibição do sistema.

Return Value

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

Remarks

Um contexto de dispositivo de memória é um bloco de memória que representa uma superfície de exibição. Ele pode ser usado para preparar imagens na memória antes de copiá-las para a superfície real do dispositivo compatível.

Quando um contexto de dispositivo de memória é criado, o GDI seleciona automaticamente um bitmap de estoque monocromático 1 por 1 para ele. As funções de saída GDI podem ser usadas com um contexto de dispositivo de memória somente se um bitmap tiver sido criado e selecionado nesse contexto.

Esta função só pode ser usada para criar contextos de dispositivos compatíveis para dispositivos que suportam operações rasterizadas. Consulte a CDC::BitBlt função de membro para obter informações sobre transferências de blocos de bits entre contextos de dispositivos. Para determinar se um contexto de dispositivo suporta operações raster, consulte a RC_BITBLT capacidade de raster na função CDC::GetDeviceCapsde membro .

Example

// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC *pDC)
{
   // load IDB_BITMAP1 from our resources
   CBitmap bmp;
   if (bmp.LoadBitmap(IDB_BITMAP1))
   {
      // Get the size of the bitmap
      BITMAP bmpInfo;
      bmp.GetBitmap(&bmpInfo);

      // Create an in-memory DC compatible with the
      // display DC we're using to paint
      CDC dcMemory;
      dcMemory.CreateCompatibleDC(pDC);

      // Select the bitmap into the in-memory DC
      CBitmap *pOldBitmap = dcMemory.SelectObject(&bmp);

      // Find a centerpoint for the bitmap in the client area
      CRect rect;
      GetClientRect(&rect);
      int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
      int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;

      // Copy the bits from the in-memory DC into the on-
      // screen DC to actually do the painting. Use the centerpoint
      // we computed for the target offset.
      pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
                  0, 0, SRCCOPY);

      dcMemory.SelectObject(pOldBitmap);
   }
   else
   {
      TRACE0("ERROR: Where's IDB_BITMAP1?\n");
   }
}

CDC::CreateDC

Cria um contexto de dispositivo para o dispositivo especificado.

BOOL CreateDC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parameters

lpszDriverName
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome do arquivo (sem extensão) do driver de dispositivo (por exemplo, "EPSON"). Você também pode passar um CString objeto para esse parâmetro.

lpszDeviceName
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome do dispositivo específico a ser suportado (por exemplo, "EPSON FX-80"). O lpszDeviceName parâmetro é usado se o módulo suporta mais de um dispositivo. Você também pode passar um CString objeto para esse parâmetro.

lpszOutput
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome do arquivo ou dispositivo para a mídia de saída física (arquivo ou porta de saída). Você também pode passar um CString objeto para esse parâmetro.

lpInitData
Aponta para uma DEVMODE estrutura que contém dados de inicialização específicos do dispositivo para o driver de dispositivo. A função Windows DocumentProperties recupera essa estrutura preenchida para um determinado dispositivo. O lpInitData parâmetro deve ser NULL se o driver de dispositivo deve usar a inicialização padrão (se houver) especificada pelo usuário através do Painel de Controle.

Return Value

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

Remarks

O PRINT.H arquivo de cabeçalho é necessário se a DEVMODE estrutura for usada.

Os nomes dos dispositivos seguem estas convenções: recomenda-se uma :) de dois pontos finais (, mas opcional. O Windows retira os dois pontos de terminação para que um nome de dispositivo terminado com dois pontos seja mapeado para a mesma porta que o mesmo nome sem dois pontos. Os nomes do driver e da porta não devem conter espaços à esquerda ou à direita. As funções de saída GDI não podem ser usadas com contextos de informação.

CDC::CreateIC

Cria um contexto de informações para o dispositivo especificado.

BOOL CreateIC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parameters

lpszDriverName
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome do arquivo (sem extensão) do driver de dispositivo (por exemplo, "EPSON"). Você pode passar um CString objeto para esse parâmetro.

lpszDeviceName
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome do dispositivo específico a ser suportado (por exemplo, "EPSON FX-80"). O lpszDeviceName parâmetro é usado se o módulo suporta mais de um dispositivo. Você pode passar um CString objeto para esse parâmetro.

lpszOutput
Aponta para uma cadeia de caracteres terminada em nulo que especifica o nome do arquivo ou dispositivo para a mídia de saída física (arquivo ou porta). Você pode passar um CString objeto para esse parâmetro.

lpInitData
Aponta para dados de inicialização específicos do dispositivo para o driver de dispositivo. O lpInitData parâmetro deve ser NULL se o driver de dispositivo deve usar a inicialização padrão (se houver) especificada pelo usuário através do Painel de Controle. Consulte CreateDC o formato de dados para inicialização específica do dispositivo.

Return Value

Diferente de zero se for bem-sucedido; caso contrário, 0.

Remarks

O contexto de informações fornece uma maneira rápida de obter informações sobre o dispositivo sem criar um contexto de dispositivo.

Os nomes dos dispositivos seguem estas convenções: recomenda-se uma :) de dois pontos finais (, mas opcional. O Windows retira os dois pontos de terminação para que um nome de dispositivo terminado com dois pontos seja mapeado para a mesma porta que o mesmo nome sem dois pontos. Os nomes do driver e da porta não devem conter espaços à esquerda ou à direita. As funções de saída GDI não podem ser usadas com contextos de informação.

CDC::DeleteDC

Em geral, não chame essa função; o destruidor fará isso por você.

BOOL DeleteDC();

Return Value

Diferente de zero se a função for concluída com êxito; caso contrário, 0.

Remarks

A DeleteDC função de membro exclui os contextos de dispositivo Windows associados m_hDC no objeto atual CDC . Se esse CDC objeto for o último contexto de dispositivo ativo para um determinado dispositivo, todos os recursos de armazenamento e sistema usados pelo dispositivo serão liberados.

Um aplicativo não deve chamar DeleteDC se os objetos tiverem sido selecionados no contexto do dispositivo. Os objetos devem primeiro ser selecionados fora do contexto do dispositivo antes de serem excluídos.

Um aplicativo não deve excluir um contexto de dispositivo cujo identificador foi obtido chamando CWnd::GetDC. Em vez disso, ele deve chamar CWnd::ReleaseDC para liberar o contexto do dispositivo. As CClientDC classes e CWindowDC são fornecidas para encapsular essa funcionalidade.

A DeleteDC função é geralmente usada para excluir contextos de dispositivo criados com CreateDC, CreateICou CreateCompatibleDC.

Example

Veja o exemplo para CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Chamado automaticamente pelo manipulador de CWinApp tempo ocioso, DeleteTempMap exclui todos os objetos temporários CDC criados pela FromHandle, mas não destrói as alçashDC de contexto do dispositivo temporariamente associadas aos CDC objetos.

static void PASCAL DeleteTempMap();

CDC::Detach

Chame essa função para desanexar m_hDC (o contexto do dispositivo de saída) do CDC objeto e defina ambos m_hDC e m_hAttribDC para NULL.

HDC Detach();

Return Value

Um contexto de dispositivo Windows.

CDC::DPtoHIMETRIC

Utilize esta função quando atribuir HIMETRIC tamanhos a OLE, convertendo píxeis em HIMETRIC.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parameters

lpSize
Aponta para uma estrutura ouCSize objeto SIZE.

Remarks

Se o modo de mapeamento do objeto de contexto do dispositivo for MM_LOENGLISH, MM_HIENGLISH, MM_LOMETRIC, ou MM_HIMETRIC, a conversão será baseada no número de pixels na polegada física. Se o modo de mapeamento for um dos outros modos não restritos (por exemplo, MM_TEXT), a conversão será baseada no número de pixels na polegada lógica.

CDC::DPtoLP

Converte unidades de dispositivo em unidades lógicas.

void DPtoLP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void DPtoLP(LPRECT lpRect) const;
void DPtoLP(LPSIZE lpSize) const;

Parameters

lpPoints
Aponta para uma matriz de POINT estruturas ou CPoint objetos.

nCount
O número de pontos na matriz.

lpRect
Aponta para uma RECT estrutura ou CRect objeto. Este parâmetro é usado para o caso simples de converter um retângulo de pontos de dispositivo para pontos lógicos.

lpSize
Aponta para uma SIZE estrutura ou CSize objeto.

Remarks

A função mapeia as coordenadas de cada ponto, ou dimensão de um tamanho, do sistema de coordenadas do dispositivo para o sistema de coordenadas lógicas do GDI. A conversão depende do modo de mapeamento atual e das configurações das origens e extensões para a janela e o visor do dispositivo.

CDC::Draw3dRect

Chame essa função de membro para desenhar um retângulo tridimensional.

void Draw3dRect(
    LPCRECT lpRect,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

void Draw3dRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

Parameters

lpRect
Especifica o retângulo delimitador (em unidades lógicas). Você pode passar um ponteiro para uma RECT estrutura ou um CRect objeto para esse parâmetro.

clrTopLeft
Especifica a cor dos lados superior e esquerdo do retângulo tridimensional.

clrBottomRight
Especifica a cor dos lados inferior e direito do retângulo tridimensional.

x
Especifica a coordenada x lógica do canto superior esquerdo do retângulo tridimensional.

y
Especifica a coordenada y lógica do canto superior esquerdo do retângulo tridimensional.

cx
Especifica a largura do retângulo tridimensional.

cy
Especifica a altura do retângulo tridimensional.

Remarks

O retângulo será desenhado com os lados superior e esquerdo na cor especificada por clrTopLeft e os lados inferior e direito na cor especificada por clrBottomRight.

Example

void CDCView::Draw3dRect(CDC *pDC)
{
   // get the client area
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels on all sides
   rect.DeflateRect(20, 20);

   // draw a rectangle with red top and left sides, and
   // green right and bottom sides.
   pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));

   // This call to the four-integer override would draw
   // the same rectangle with a little less convenience:

   // pDC->Draw3dRect(rect.left, rect.top, rect.Width(), rect.Height(),
   //    RGB(255, 0, 0), RGB(0, 255, 0));
}

CDC::DrawDragRect

Chame essa função de membro repetidamente para redesenhar um retângulo de arrasto.

void DrawDragRect(
    LPCRECT lpRect,
    SIZE size,
    LPCRECT lpRectLast,
    SIZE sizeLast,
    CBrush* pBrush = NULL,
    CBrush* pBrushLast = NULL);

Parameters

lpRect
Aponta para uma RECT estrutura ou um CRect objeto que especifica as coordenadas lógicas de um retângulo — neste caso, a posição final do retângulo que está sendo redesenhado.

size
Especifica o deslocamento do canto superior esquerdo da borda externa para o canto superior esquerdo da borda interna (ou seja, a espessura da borda) de um retângulo.

lpRectLast
Aponta para uma RECT estrutura ou um CRect objeto que especifica as coordenadas lógicas da posição de um retângulo — neste caso, a posição original do retângulo que está sendo redesenhado.

sizeLast
Especifica o deslocamento do canto superior esquerdo da borda externa para o canto superior esquerdo da borda interna (ou seja, a espessura da borda) do retângulo original que está sendo redesenhado.

pBrush
Ponteiro para um objeto de pincel. Defina para NULL usar o pincel de meio-tom padrão.

pBrushLast
Ponteiro para o último objeto de pincel usado. Defina para NULL usar o pincel de meio-tom padrão.

Remarks

Chame-o em um loop enquanto você mostra a posição do mouse, a fim de dar feedback visual. Quando você chama DrawDragRect, o retângulo anterior é apagado e um novo é desenhado. Por exemplo, à medida que o usuário arrasta um retângulo pela tela, DrawDragRect apaga o retângulo original e redesenha um novo em sua nova posição. Por padrão, DrawDragRect desenha o retângulo usando um pincel de meio-tom para eliminar a cintilação e criar a aparência de um retângulo em movimento suave.

Na primeira vez que você chamar DrawDragRect, o lpRectLast parâmetro deve ser NULL.

CDC::DrawEdge

Chame essa função de membro para desenhar as bordas de um retângulo do tipo e estilo especificados.

BOOL DrawEdge(
    LPRECT lpRect,
    UINT nEdge,
    UINT nFlags);

Parameters

lpRect
Um ponteiro para uma RECT estrutura que contém as coordenadas lógicas do retângulo.

nEdge
Especifica o tipo de borda interna e externa a ser desenhada. Este parâmetro deve ser uma combinação de um sinalizador de fronteira interna e um sinalizador de fronteira externa. Consulte DrawEdge no SDK do Windows para obter uma tabela dos tipos do parâmetro.

nFlags
Os sinalizadores que especificam o tipo de borda a ser desenhada. Consulte DrawEdge no SDK do Windows para obter uma tabela dos valores do parâmetro. Para linhas diagonais, os BF_RECT sinalizadores especificam o ponto final do vetor delimitado pelo parâmetro retângulo.

Return Value

Diferente de zero se for bem-sucedido; caso contrário, 0.

CDC::DrawEscape

Acede a capacidades de desenho de um ecrã de vídeo que não estão diretamente disponíveis através da interface gráfica do dispositivo (GDI).

int DrawEscape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData);

Parameters

nEscape
Especifica a função de escape a ser executada.

nInputSize
Especifica o número de bytes de dados apontados lpszInputData pelo parâmetro.

lpszInputData
Aponta para a estrutura de entrada necessária para o escape especificado.

Return Value

Especifica o resultado da função. Maior que zero se bem-sucedido, exceto para o QUERYESCSUPPORT escape de sorteio, que verifica apenas a implementação, ou zero se o escape não for implementado, ou menor que zero se ocorrer um erro.

Remarks

Quando um aplicativo chama DrawEscape, os dados identificados por nInputSize e lpszInputData são passados diretamente para o driver de vídeo especificado.

CDC::DrawFocusRect

Desenha um retângulo no estilo usado para indicar que o retângulo tem o foco.

void DrawFocusRect(LPCRECT lpRect);

Parameters

lpRect
Aponta para uma RECT estrutura ou um CRect objeto que especifica as coordenadas lógicas do retângulo a ser desenhado.

Remarks

Uma vez que esta é uma função Boolean XOR (^), chamar esta função uma segunda vez com o mesmo retângulo remove o retângulo do ecrã. O retângulo desenhado por esta função não pode ser rolado. Para rolar uma área que contém um retângulo desenhado por essa função, primeiro chame DrawFocusRect para remover o retângulo da tela, depois role a área e, em seguida, chame DrawFocusRect novamente para desenhar o retângulo na nova posição.

Caution

DrawFocusRect funciona apenas no MM_TEXT modo. Em outros modos, essa função não desenha o retângulo de foco corretamente, mas não retorna valores de erro.

CDC::DrawFrameControl

Chame essa função de membro para desenhar um controle de quadro do tipo e estilo especificados.

BOOL DrawFrameControl(
    LPRECT lpRect,
    UINT nType,
    UINT nState);

Parameters

lpRect
Um ponteiro para uma RECT estrutura que contém as coordenadas lógicas do retângulo.

nType
Especifica o tipo de controle de quadro a ser desenhado. Consulte o uType parâmetro no DrawFrameControl SDK do Windows para obter uma lista dos valores possíveis desse parâmetro.

nState
Especifica o estado inicial do controle de quadro. Pode ser um ou mais dos valores descritos para o uState parâmetro no DrawFrameControl SDK do Windows. Use o nState valor DFCS_ADJUSTRECT para ajustar o retângulo delimitador para excluir a borda circundante do botão de pressão.

Return Value

Diferente de zero se for bem-sucedido; caso contrário, 0.

Remarks

Em vários casos, nState depende do nType parâmetro. A lista a seguir mostra a relação entre os quatro nType valores e nState:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Botão de três estados

    • DFCS_BUTTONCHECK Caixa de verificação

    • DFCS_BUTTONPUSH Botão de pressão

    • DFCS_BUTTONRADIO Botão de opção

    • DFCS_BUTTONRADIOIMAGE Imagem para botão de opção (imagem não quadrada precisa)

    • DFCS_BUTTONRADIOMASK Máscara para botão de opção (máscara não quadrada precisa)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Botão Fechar

    • DFCS_CAPTIONHELP Botão Ajuda

    • DFCS_CAPTIONMAX Botão Maximizar

    • DFCS_CAPTIONMIN Botão Minimizar

    • DFCS_CAPTIONRESTORE Botão Restaurar

  • DFC_MENU

    • DFCS_MENUARROW Seta do submenu

    • DFCS_MENUBULLET Bala

    • DFCS_MENUCHECK Marca de verificação

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Barra de rolagem da caixa de combinação

    • DFCS_SCROLLDOWN Seta para baixo da barra de rolagem

    • DFCS_SCROLLLEFT Seta para a esquerda da barra de rolagem

    • DFCS_SCROLLRIGHT Seta para a direita da barra de rolagem

    • DFCS_SCROLLSIZEGRIP Pega de tamanho no canto inferior direito da janela

    • DFCS_SCROLLUP Seta para cima da barra de rolagem

Example

Este código desenha a garra de tamanho no canto inferior direito da janela. É apropriado para o OnPaint manipulador de uma caixa de diálogo, que não tem estilos e normalmente não contém outros controles (como uma barra de status) que podem lhe dar uma garra de tamanho.

void CDCView::DrawFC(CDC *pDC)
{
   CRect rc;
   GetClientRect(&rc);

   rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
   rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);

   pDC->DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
}

CDC::DrawIcon

Desenha um ícone no dispositivo representado pelo objeto atual CDC .

BOOL DrawIcon(
    int x,
    int y,
    HICON hIcon);

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parameters

x
Especifica a coordenada x lógica do canto superior esquerdo do ícone.

y
Especifica a coordenada y lógica do canto superior esquerdo do ícone.

hIcon
Identifica a alça do ícone a ser desenhado.

point
Especifica as coordenadas lógicas x e y do canto superior esquerdo do ícone. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

Diferente de zero se a função for concluída com êxito; caso contrário, 0.

Remarks

A função coloca o canto superior esquerdo do ícone no local especificado por x e y. O local está sujeito ao modo de mapeamento atual do contexto do dispositivo.

O recurso de ícone deve ter sido carregado anteriormente usando as funções CWinApp::LoadIcon, CWinApp::LoadStandardIconou CWinApp::LoadOEMIcon. O MM_TEXT modo de mapeamento deve ser selecionado antes de usar essa função.

Example

Veja o exemplo para CWnd::IsIconic.

CDC::DrawState

Chame essa função de membro para exibir uma imagem e aplicar um efeito visual para indicar um estado, como um estado desabilitado ou padrão.

Note

Para todos os nFlag estados, exceto DSS_NORMAL, a imagem é convertida em monocromática antes que o efeito visual seja aplicado.

BOOL DrawState(
    CPoint pt,
    CSize size,
    HBITMAP hBitmap,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    CBitmap* pBitmap,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    CBrush* pBrush = NULL);

Parameters

pt
Especifica o local da imagem.

size
Especifica o tamanho da imagem.

hBitmap
Um identificador para um bitmap.

nFlags
Sinalizadores que especificam o tipo e o estado da imagem. Consulte DrawState no SDK do Windows os possíveis tipos e estados do nFlags .

hBrush
Uma alça para um pincel.

pBitmap
Um ponteiro para um CBitmap objeto.

pBrush
Um ponteiro para um CBrush objeto.

hIcon
Um identificador para um ícone.

lpszText
Um ponteiro para o texto.

bPrefixText
Texto que pode conter um acelerador mnemônico. O lData parâmetro especifica o endereço da cadeia de caracteres e o nTextLen parâmetro especifica o comprimento. Se nTextLen for 0, a cadeia de caracteres é assumida como terminada em nulo.

nTextLen
Comprimento da cadeia de caracteres de texto apontada por lpszText. Se nTextLen for 0, a cadeia de caracteres é assumida como terminada em nulo.

lpDrawProc
Um ponteiro para uma função de retorno de chamada usada para renderizar uma imagem. Este parâmetro é necessário se o tipo de imagem for nFlagsDST_COMPLEX. É opcional e pode ser NULL se o tipo de imagem for DST_TEXT. Para todos os outros tipos de imagem, esse parâmetro é ignorado. Para obter mais informações sobre a função de retorno de chamada, consulte a DrawStateProc função no SDK do Windows.

lData
Especifica informações sobre a imagem. O significado deste parâmetro depende do tipo de imagem.

Return Value

Diferente de zero se for bem-sucedido; caso contrário, 0.

CDC::DrawText

Chame essa função de membro para formatar texto no retângulo fornecido. Para especificar mais opções de formatação, use CDC::DrawTextEx.

virtual int DrawText(
    LPCTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat);

int DrawText(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat);

Parameters

lpszString
Aponta para a cadeia de caracteres a ser desenhada. Se nCount for -1, a cadeia de caracteres deve ser terminada em nulo.

nCount
Especifica o número de caracteres na cadeia de caracteres. Se nCount for -1, então lpszString é assumido como um ponteiro longo para uma cadeia de caracteres terminada em nulo e DrawText calcula a contagem de caracteres automaticamente.

lpRect
Aponta para uma RECT estrutura ou CRect objeto que contém o retângulo (em coordenadas lógicas) no qual o texto deve ser formatado.

str
Um CString objeto que contém os caracteres especificados a serem desenhados.

nFormat
Especifica o método de formatação do texto. Pode ser qualquer combinação dos valores descritos para o uFormat parâmetro no DrawText SDK do Windows. (combinar usando o operador bit a bit OR):

Note

Algumas uFormat combinações de sinalizadores podem fazer com que a cadeia de caracteres passada seja modificada. Usar DT_MODIFYSTRING com um ou pode fazer com que DT_END_ELLIPSISDT_PATH_ELLIPSIS a cadeia de caracteres seja modificada, causando uma asserção na CString substituição. Os valores DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, e DT_NOPREFIX não podem ser usados com o DT_TABSTOP valor.

Return Value

A altura do texto se a função for bem-sucedida.

Remarks

Ele formata o texto expandindo as guias em espaços apropriados, alinhando o texto à esquerda, à direita ou ao centro do retângulo dado e dividindo o texto em linhas que se encaixam dentro do retângulo dado. O tipo de formatação é especificado por nFormat.

Essa função de membro usa a fonte selecionada do contexto do dispositivo, a cor do texto e a cor do plano de fundo para desenhar o texto. A menos que o DT_NOCLIP formato seja usado, DrawText recorta o texto para que o texto não apareça fora do retângulo fornecido. Presume-se que toda a formatação tenha várias linhas, a menos que o DT_SINGLELINE formato seja fornecido.

Se a fonte selecionada for muito grande para o retângulo especificado, a DrawText função de membro não tentará substituir uma fonte menor.

Se o DT_CALCRECT sinalizador for especificado, o retângulo especificado por lpRect será atualizado para refletir a largura e a altura necessárias para desenhar o texto.

Se o sinalizador de alinhamento de TA_UPDATECP texto tiver sido definido (consulte CDC::SetTextAlign), DrawText exibirá o texto começando na posição atual, em vez de à esquerda do retângulo fornecido. DrawText não quebrará o texto quando o TA_UPDATECP sinalizador tiver sido definido (ou seja, o DT_WORDBREAK sinalizador não terá efeito).

A cor do texto pode ser definida por CDC::SetTextColor.

CDC::DrawTextEx

Formata o texto no retângulo dado.

virtual int DrawTextEx(
    LPTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

int DrawTextEx(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

Parameters

lpszString
Aponta para a cadeia de caracteres a ser desenhada. Se nCount for -1, a cadeia de caracteres deve ser terminada nula.

nCount
Especifica o número de caracteres na cadeia de caracteres. Se nCount for -1, então lpszString é assumido como um ponteiro longo para uma cadeia de caracteres terminada em nulo e DrawText calcula a contagem de caracteres automaticamente.

lpRect
Aponta para uma RECT estrutura ou CRect objeto que contém o retângulo (em coordenadas lógicas) no qual o texto deve ser formatado.

str
Um CString objeto que contém os caracteres especificados a serem desenhados.

nFormat
Especifica o método de formatação do texto. Pode ser qualquer combinação dos valores descritos para o uFormat parâmetro no DrawText SDK do Windows. (Combine usando o operador bit a bit OR ):

Note

Algumas uFormat combinações de sinalizadores podem fazer com que a cadeia de caracteres passada seja modificada. Usar DT_MODIFYSTRING com um ou pode fazer com que DT_END_ELLIPSISDT_PATH_ELLIPSIS a cadeia de caracteres seja modificada, causando uma asserção na CString substituição. Os valores DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, e DT_NOPREFIX não podem ser usados com o DT_TABSTOP valor.

lpDTParams
Ponteiro para uma DRAWTEXTPARAMS estrutura que especifica mais opções de formatação. Este parâmetro pode ser NULL.

Remarks

Ele formata o texto expandindo as guias em espaços apropriados, alinhando o texto à esquerda, à direita ou ao centro do retângulo dado e dividindo o texto em linhas que se encaixam dentro do retângulo dado. O tipo de formatação é especificado por nFormat e lpDTParams. Para obter mais informações, consulte CDC::DrawText e DrawTextEx no SDK do Windows.

A cor do texto pode ser definida por CDC::SetTextColor.

CDC::Ellipse

Desenha uma elipse.

BOOL Ellipse(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Ellipse(LPCRECT lpRect);

Parameters

x1
Especifica a coordenada x lógica do canto superior esquerdo do retângulo delimitador da elipse.

y1
Especifica a coordenada y lógica do canto superior esquerdo do retângulo delimitador da elipse.

x2
Especifica a coordenada x lógica do canto inferior direito do retângulo delimitador da elipse.

y2
Especifica a coordenada y lógica do canto inferior direito do retângulo delimitador da elipse.

lpRect
Especifica o retângulo delimitador da elipse. Você também pode passar um CRect objeto para esse parâmetro.

Return Value

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

Remarks

O centro da elipse é o centro do retângulo delimitador especificado por , , , e , ou y2lpRect. x2y1x1 A elipse é desenhada com a caneta atual, e seu interior é preenchido com o pincel atual.

A figura desenhada por esta função estende-se até, mas não inclui, as coordenadas direita e inferior. Isto significa que a altura da figura é y2 - y1 e a largura da figura é .x2 - x1

Se a largura ou a altura do retângulo delimitador for 0, nenhuma elipse será desenhada.

CDC::EndDoc

Termina um trabalho de impressão iniciado por uma chamada para a StartDoc função de membro.

int EndDoc();

Return Value

Maior ou igual a 0 se a função for bem-sucedida, ou um valor negativo se ocorrer um erro.

Remarks

Esta função de membro substitui o escape da ENDDOC impressora e deve ser chamada imediatamente após a conclusão de um trabalho de impressão bem-sucedido.

Se um aplicativo encontrar um erro de impressão ou uma operação de impressão cancelada, ele não deve tentar encerrar a operação usando um ou EndDocAbortDoc. GDI encerra automaticamente a operação antes de retornar o valor de erro.

Esta função não deve ser usada dentro de metaficheiros.

Example

Veja o exemplo para CDC::StartDoc.

CDC::EndPage

Informa o dispositivo que o aplicativo terminou de escrever em uma página.

int EndPage();

Return Value

Maior ou igual a 0 se a função for bem-sucedida, ou um valor negativo se ocorrer um erro.

Remarks

Esta função de membro é normalmente usada para direcionar o driver de dispositivo para avançar para uma nova página.

Esta função de membro substitui o escape da NEWFRAME impressora. Ao contrário NEWFRAMEdo , esta função é sempre chamada após a impressão de uma página.

Example

Veja o exemplo para CDC::StartDoc.

CDC::EndPath

Fecha um colchete de caminho e seleciona o caminho definido pelo colchete no contexto do dispositivo.

BOOL EndPath();

Return Value

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

Example

Veja o exemplo para CDC::BeginPath.

CDC::EnumObjects

Enumera as canetas e pincéis disponíveis em um contexto de dispositivo.

int EnumObjects(
    int nObjectType,
    int (CALLBACK* lpfn)(
    LPVOID,
    LPARAM),
    LPARAM lpData);

Parameters

nObjectType
Especifica o tipo de objeto. Pode ter os valores OBJ_BRUSH ou OBJ_PEN.

lpfn
É o endereço da instância de procedimento da função de retorno de chamada fornecida pelo aplicativo. Consulte a secção "Observações" abaixo.

lpData
Aponta para os dados fornecidos pelo aplicativo. Os dados são passados para a função de retorno de chamada juntamente com as informações do objeto.

Return Value

Especifica o último valor retornado pela função de retorno de chamada. O seu significado é definido pelo utilizador.

Remarks

Para cada objeto de um determinado tipo, a função de retorno de chamada que você passa é chamada com as informações desse objeto. O sistema chama a função de retorno de chamada até que não haja mais objetos ou a função de retorno de chamada retorne 0.

Novos recursos do Microsoft Visual C++ permitem que você use uma função comum como a função passada para EnumObjects. O endereço passado para EnumObjects é um ponteiro para uma função exportada com EXPORT e com a convenção de chamada Pascal. Em aplicativos de modo de proteção, você não precisa criar essa função com a função do Windows MakeProcInstance ou liberar a função após o uso com a FreeProcInstance função do Windows.

Também não é necessário exportar o nome da função em uma EXPORTS instrução no arquivo de definição de módulo do aplicativo. Em vez disso, você pode usar o modificador de EXPORT função, como em

int CALLBACK EXPORT AFunção (LPSTR, LPSTR);

para fazer com que o compilador emita o registro de exportação adequado para exportação por nome sem aliasing. Isso funciona para a maioria das necessidades. Para alguns casos especiais, como exportar uma função por ordinal ou aliasing a exportação, você ainda precisa usar uma EXPORTS instrução em um arquivo de definição de módulo.

Para compilar programas do Microsoft Foundation, você normalmente usará as /GA opções e /GEs compilador. A /Gw opção de compilador não é usada com as classes do Microsoft Foundation. (Se você usar a função MakeProcInstancedo Windows, precisará converter explicitamente o ponteiro da função retornada FARPROC para o tipo necessário nesta API.) As interfaces de registro de retorno de chamada agora são seguras para digitação (você deve passar um ponteiro de função que aponte para o tipo certo de função para o retorno de chamada específico).

Além disso, todas as funções de retorno de chamada devem intercetar exceções do Microsoft Foundation antes de retornar ao Windows, uma vez que as exceções não podem ser lançadas entre os limites de retorno de chamada. Para obter mais informações sobre exceções, consulte o artigo Exceções.

Example

// print some info about a pen we're ready to enumerate
BOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */)
{
   LOGPEN *pPen = (LOGPEN *)lpLogObject;

   switch (pPen->lopnStyle)
   {
   case PS_SOLID:
      TRACE0("PS_SOLID:      ");
      break;
   case PS_DASH:
      TRACE0("PS_DASH:       ");
      break;
   case PS_DOT:
      TRACE0("PS_DOT:        ");
      break;
   case PS_DASHDOT:
      TRACE0("PS_DASHDOT:    ");
      break;
   case PS_DASHDOTDOT:
      TRACE0("PS_DASHDOTDOT: ");
      break;
   case PS_NULL:
      TRACE0("PS_NULL:       ");
      break;
   case PS_INSIDEFRAME:
      TRACE0("PS_INSIDEFRAME:");
      break;
   default:
      TRACE0("unk style:");
   }

   TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);
   return TRUE;
}

// get the default printer and enumerate the pens it has
void CDCView::OnEnumPens()
{
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();
   HDC hdc = dlg.GetPrinterDC();

   if (hdc != NULL)
   {
      CDC dc;
      dc.Attach(hdc);
      VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));
   }
}

CDC::Escape

Esta função de membro é praticamente obsoleta para programação Win32.

virtual int Escape(
    int nEscape,
    int nCount,
    LPCSTR lpszInData,
    LPVOID lpOutData);

int Escape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData,
    int nOutputSize,
    LPSTR lpszOutputData);

Parameters

nEscape
Especifica a função de escape a ser executada.

Para obter uma lista completa das funções de escape, consulte Escape o SDK do Windows.

nCount
Especifica o número de bytes de dados apontados por lpszInData.

lpszInData
Aponta para a estrutura de dados de entrada necessária para esse escape.

lpOutData
Aponta para a estrutura que deve receber a saída desse escape. O lpOutData parâmetro é NULL se nenhum dado for retornado.

nInputSize
Especifica o número de bytes de dados apontados lpszInputData pelo parâmetro.

lpszInputData
Aponta para a estrutura de entrada necessária para o escape especificado.

nOutputSize
Especifica o número de bytes de dados apontados lpszOutputData pelo parâmetro.

lpszOutputData
Aponta para a estrutura que recebe a saída dessa fuga. Este parâmetro deve ser NULL se nenhum dado for retornado.

Return Value

Um valor positivo é retornado se a função for bem-sucedida, exceto para o QUERYESCSUPPORT escape, que apenas verifica a implementação. Zero é retornado se a fuga não for implementada. Um valor negativo é retornado se ocorrer um erro. A seguir estão os valores de erro comuns:

  • SP_ERROR Erro geral.

  • SP_OUTOFDISK Não há espaço em disco suficiente atualmente disponível para spooling, e não haverá mais espaço disponível.

  • SP_OUTOFMEMORY Não há memória suficiente disponível para spooling.

  • SP_USERABORT O utilizador terminou o trabalho através do Gestor de Impressão.

Remarks

Dos escapes de impressora originais, apenas QUERYESCSUPPORT é suportado para aplicações Win32. Todos os outros escapes de impressora são obsoletos e são suportados apenas para compatibilidade com aplicativos de 16 bits.

Para programação Win32, CDC agora fornece seis funções de membro que substituem seus escapes de impressora correspondentes:

Além disso, CDC::GetDeviceCaps suporta índices Win32 que substituem outros escapes de impressora. Consulte GetDeviceCaps no SDK do Windows para obter mais informações.

Esta função de membro permite que os aplicativos acessem recursos de um determinado dispositivo que não estão diretamente disponíveis através do GDI.

Use a primeira versão se seu aplicativo usar valores de escape predefinidos. Use a segunda versão se seu aplicativo definir valores de escape privados. Consulte ExtEscape no SDK do Windows para obter mais informações sobre a segunda versão.

CDC::ExcludeClipRect

Cria uma nova região de recorte que consiste na região de recorte existente menos o retângulo especificado.

int ExcludeClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int ExcludeClipRect(LPCRECT lpRect);

Parameters

x1
Especifica a coordenada x lógica do canto superior esquerdo do retângulo.

y1
Especifica a coordenada y lógica do canto superior esquerdo do retângulo.

x2
Especifica a coordenada x lógica do canto inferior direito do retângulo.

y2
Especifica a coordenada y lógica do canto inferior direito do retângulo.

lpRect
Especifica o retângulo. Também pode ser um CRect objeto.

Return Value

Especifica o tipo da nova região de recorte. Pode ser qualquer um dos seguintes valores:

  • COMPLEXREGION A região tem fronteiras sobrepostas.

  • ERROR Nenhuma região foi criada.

  • NULLREGION A região está vazia.

  • SIMPLEREGION A região não tem fronteiras sobrepostas.

Remarks

A largura do retângulo, especificada pelo valor absoluto de x2 - x1, não deve exceder 32,767 unidades. Este limite também se aplica à altura do retângulo.

CDC::ExcludeUpdateRgn

Impede o desenho em áreas inválidas de uma janela excluindo uma região atualizada na janela da região de recorte associada ao CDC objeto.

int ExcludeUpdateRgn(CWnd* pWnd);

Parameters

pWnd
Aponta para o objeto window cuja janela está sendo atualizada.

Return Value

O tipo de região excluída. Pode ser qualquer um dos seguintes valores:

  • COMPLEXREGION A região tem fronteiras sobrepostas.

  • ERROR Nenhuma região foi criada.

  • NULLREGION A região está vazia.

  • SIMPLEREGION A região não tem fronteiras sobrepostas.

CDC::ExtFloodFill

Preenche uma área da superfície de exibição com o pincel atual.

BOOL ExtFloodFill(
    int x,
    int y,
    COLORREF crColor,
    UINT nFillType);

Parameters

x
Especifica a coordenada x lógica do ponto onde o preenchimento começa.

y
Especifica a coordenada y lógica do ponto onde o preenchimento começa.

crColor
Especifica a cor do limite ou da área a ser preenchida. A interpretação de crColor depende do valor de nFillType.

nFillType
Especifica o tipo de preenchimento de inundação a ser executado. Deve ser um dos seguintes valores:

  • FLOODFILLBORDER A área de preenchimento é limitada pela cor especificada por crColor. Este estilo é idêntico ao preenchimento realizado pela FloodFill.

  • FLOODFILLSURFACE A área de preenchimento é definida pela cor especificada por crColor. O preenchimento continua para fora em todas as direções, desde que a cor seja encontrada. Este estilo é útil para preencher áreas com limites multicoloridos.

Return Value

Diferente de zero se a função for bem-sucedida; caso contrário, 0 se o preenchimento não puder ser concluído, se o ponto dado tiver a cor limite especificada por crColor (se FLOODFILLBORDER foi solicitado), se o ponto dado não tiver a cor especificada por crColor (se FLOODFILLSURFACE foi solicitado) ou se o ponto estiver fora da região de recorte.

Remarks

Esta função de membro oferece mais flexibilidade do que FloodFill porque você pode especificar um tipo de preenchimento em nFillType.

Se nFillType estiver definido como FLOODFILLBORDER, presume-se que a área é completamente delimitada pela cor especificada por crColor. A função começa no ponto especificado por x e y preenche todas as direções para o limite de cores.

Se nFillType estiver definida como FLOODFILLSURFACE, a função começa no ponto especificado por x e y continua em todas as direções, preenchendo todas as áreas adjacentes que contêm a cor especificada por crColor.

Apenas contextos de dispositivo de memória e dispositivos que suportam a ExtFloodFilltecnologia de exibição de raster. Para obter mais informações, consulte a GetDeviceCaps função membro.

CDC::ExtTextOut

Chame essa função de membro para escrever uma cadeia de caracteres dentro de uma região retangular usando a fonte selecionada no momento.

virtual BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    LPCTSTR lpszString,
    UINT nCount,
    LPINT lpDxWidths);

BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    const CString& str,
    LPINT lpDxWidths);

Parameters

x
Especifica a coordenada x lógica da célula de caractere para o primeiro caractere na cadeia de caracteres especificada.

y
Especifica a coordenada y lógica da parte superior da célula de caracteres para o primeiro caractere na cadeia de caracteres especificada.

nOptions
Especifica o tipo de retângulo. Este parâmetro pode ser um, ambos ou nenhum dos seguintes valores:

  • ETO_CLIPPED Especifica que o texto é cortado para o retângulo.

  • ETO_OPAQUE Especifica que a cor de plano de fundo atual preenche o retângulo. (Você pode definir e consultar a cor de plano de fundo atual com as SetBkColor funções e GetBkColor membro.)

lpRect
Aponta para uma RECT estrutura que determina as dimensões do retângulo. Este parâmetro pode ser NULL. Você também pode passar um CRect objeto para esse parâmetro.

lpszString
Aponta para a cadeia de caracteres especificada a ser desenhada. Você também pode passar um CString objeto para esse parâmetro.

nCount
Especifica o número de caracteres na cadeia de caracteres.

lpDxWidths
Aponta para uma matriz de valores que indicam a distância entre as origens das células de caracteres adjacentes. Por exemplo, lpDxWidths[ i] as unidades lógicas separarão as origens da célula i de caractere e da célula i de caractere + 1. Se lpDxWidths for NULL, ExtTextOut usa o espaçamento padrão entre caracteres.

str
Um CString objeto que contém os caracteres especificados a serem desenhados.

Return Value

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

Remarks

A região retangular pode ser opaca (preenchida com a cor de fundo atual) e pode ser uma região de recorte.

Se nOptions for 0 e lpRect for NULL, a função grava texto no contexto do dispositivo sem usar uma região retangular. Por padrão, a posição atual não é usada ou atualizada pela função. Se um aplicativo precisar atualizar a posição atual quando chamar ExtTextOut, o aplicativo poderá chamar a CDC função SetTextAlign de membro com nFlags definido como TA_UPDATECP. Quando esse sinalizador é definido, o Windows ignora e y em chamadas subsequentes x para ExtTextOut e usa a posição atual. Quando um aplicativo usa TA_UPDATECP para atualizar a posição atual, ExtTextOut define a posição atual para o final da linha de texto anterior ou para a posição especificada pelo último elemento da matriz apontada por lpDxWidths, o que for maior.

CDC::FillPath

Fecha todas as figuras abertas no caminho atual e preenche o interior do caminho usando o pincel atual e o modo de preenchimento de polígono.

BOOL FillPath();

Return Value

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

Remarks

Depois que seu interior é preenchido, o caminho é descartado do contexto do dispositivo.

CDC::FillRect

Chame essa função de membro para preencher um determinado retângulo usando o pincel especificado.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameters

lpRect
Aponta para uma RECT estrutura que contém as coordenadas lógicas do retângulo a ser preenchido. Você também pode passar um CRect objeto para esse parâmetro.

pBrush
Identifica o pincel usado para preencher o retângulo.

Remarks

A função preenche o retângulo completo, incluindo as bordas esquerda e superior, mas não preenche as bordas direita e inferior.

O pincel precisa ser criado usando as CBrush funções CreateHatchBrushde membro , CreatePatternBrushe , ou CreateSolidBrushrecuperado GetStockObject pela função do Windows.

Ao preencher o retângulo especificado, FillRect não inclui os lados direito e inferior do retângulo. O GDI preenche um retângulo até, mas não inclui, a coluna direita e a linha inferior, independentemente do modo de mapeamento atual. FillRect Compara os topvalores do , bottom, lefte right membros do retângulo especificado. Se bottom for menor ou igual a top, ou se right for menor ou igual a left, o retângulo não será desenhado.

FillRect é semelhante a CDC::FillSolidRect, no entanto, leva um pincel e, portanto, FillRect pode ser usado para preencher um retângulo com uma cor sólida, uma cor dithered, pincéis chocados, ou um padrão. FillSolidRect usa apenas cores sólidas (indicadas por um COLORREF parâmetro). FillRect geralmente é mais lento do que FillSolidRect.

CDC::FillRgn

Preenche a região especificada por pRgn com o pincel especificado por pBrush.

BOOL FillRgn(
    CRgn* pRgn,
    CBrush* pBrush);

Parameters

pRgn
Um ponteiro para a região a ser preenchida. As coordenadas para a região dada são especificadas em unidades lógicas.

pBrush
Identifica o pincel a ser usado para preencher a região.

Return Value

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

Remarks

O pincel deve ser criado usando as funções CreateHatchBrushde membro , CreatePatternBrush, CreateSolidBrushou ser recuperado CBrush por GetStockObject.

Example

Veja o exemplo para CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Chame essa função de membro para preencher o retângulo fornecido com a cor sólida especificada.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

void FillSolidRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clr);

Parameters

lpRect
Especifica o retângulo delimitador (em unidades lógicas). Você pode passar um ponteiro para uma estrutura de RECT dados ou um CRect objeto para esse parâmetro.

clr Especifica a cor a ser usada para preencher o retângulo.

x
Especifica a coordenada x lógica do canto superior esquerdo do retângulo.

y
Especifica a coordenada y lógica do canto superior esquerdo do retângulo de destino.

cx
Especifica a largura do retângulo.

cy
Especifica a altura do retângulo.

Remarks

FillSolidRecté muito semelhante a CDC::FillRect, no entanto, usa apenas cores sólidas (indicadas COLORREF pelo parâmetro), enquanto FillRect leva um pincel e, portanto, FillSolidRect pode ser usado para preencher um retângulo com uma cor sólida, uma cor dithered, pincéis chocados, ou um padrão. FillSolidRect geralmente é mais rápido do que FillRect.

Note

Quando você chama FillSolidRect, a cor do plano de fundo, que foi definida anteriormente usando SetBkColor, é definida como a cor indicada por clr.

CDC::FlattenPath

Transforma todas as curvas no caminho selecionado no contexto do dispositivo atual e transforma cada curva em uma sequência de linhas.

BOOL FlattenPath();

Return Value

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

CDC::FloodFill

Preenche uma área da superfície de exibição com o pincel atual.

BOOL FloodFill(
    int x,
    int y,
    COLORREF crColor);

Parameters

x
Especifica a coordenada x lógica do ponto onde o preenchimento começa.

y
Especifica a coordenada y lógica do ponto onde o preenchimento começa.

crColor
Especifica a cor do limite.

Return Value

Diferente de zero se a função for bem-sucedida; caso contrário, 0 será retornado se o preenchimento não puder ser concluído, o ponto dado tiver a cor limite especificada por crColor, ou o ponto estiver fora da região de recorte.

Remarks

Presume-se que a área é delimitada conforme especificado por crColor. A FloodFill função começa no ponto especificado por x e y continua em todas as direções até o limite de cores.

Apenas contextos de dispositivo de memória e dispositivos que suportam a tecnologia de exibição de raster suportam a FloodFill função de membro. Para obter informações sobre RC_BITBLT capacidade, consulte a GetDeviceCaps função membro.

A ExtFloodFill função fornece capacidade semelhante, mas maior flexibilidade.

CDC::FrameRect

Desenha uma borda ao redor do retângulo especificado por lpRect.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameters

lpRect
Aponta para uma RECT estrutura ou CRect objeto que contém as coordenadas lógicas dos cantos superior esquerdo e inferior direito do retângulo. Você também pode passar um CRect objeto para esse parâmetro.

pBrush
Identifica o pincel a ser usado para enquadrar o retângulo.

Remarks

A função usa o pincel dado para desenhar a borda. A largura e altura da borda é sempre 1 unidade lógica.

Se a coordenada do bottom retângulo for menor ou igual a top, ou se right for menor ou igual a left, o retângulo não será desenhado.

A borda desenhada por FrameRect está na mesma posição que uma borda desenhada Rectangle pela função membro usando as mesmas coordenadas (se Rectangle usa uma caneta que tem 1 unidade lógica de largura). O interior do retângulo não é preenchido por FrameRect.

CDC::FrameRgn

Desenha uma borda ao redor da região especificada pRgn usando o pincel especificado por pBrush.

BOOL FrameRgn(
    CRgn* pRgn,
    CBrush* pBrush,
    int nWidth,
    int nHeight);

Parameters

pRgn
Aponta para o CRgn objeto que identifica a região a ser encerrada em uma borda. As coordenadas para a região dada são especificadas em unidades lógicas.

pBrush
Aponta para o CBrush objeto que identifica o pincel a ser usado para desenhar a borda.

nWidth
Especifica a largura da borda em traçados de pincel verticais em unidades de dispositivo.

nHeight
Especifica a altura da borda em pinceladas horizontais em unidades de dispositivo.

Return Value

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

Example

Veja o exemplo para CRgn::CombineRgn.

CDC::FromHandle

Retorna um ponteiro para um CDC objeto quando dado um identificador para um contexto de dispositivo.

static CDC* PASCAL FromHandle(HDC hDC);

Parameters

hDC
Contém um identificador para um contexto de dispositivo Windows.

Return Value

O ponteiro pode ser temporário e não deve ser armazenado além do uso imediato.

Remarks

Se um CDC objeto não estiver anexado à alça, um objeto temporário CDC será criado e anexado.

Example

Veja o exemplo para CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Retorna a direção do arco atual para o contexto do dispositivo.

int GetArcDirection() const;

Return Value

Especifica a direção do arco atual, se bem-sucedida. A seguir estão os valores de retorno válidos:

  • AD_COUNTERCLOCKWISE Arcos e retângulos desenhados no sentido anti-horário.

  • AD_CLOCKWISE Arcs e retângulos desenhados no sentido horário.

Se ocorrer um erro, o valor de retorno será zero.

Remarks

As funções de arco e retângulo usam a direção do arco.

CDC::GetAspectRatioFilter

Recupera a configuração para o filtro de proporção de aspeto atual.

CSize GetAspectRatioFilter() const;

Return Value

Um CSize objeto que representa a proporção usada pelo filtro de proporção atual.

Remarks

A proporção é a proporção formada pela largura e altura do pixel de um dispositivo. As informações sobre a proporção de um dispositivo são usadas na criação, seleção e exibição de fontes. O Windows fornece um filtro especial, o filtro de proporção de aspeto, para selecionar fontes projetadas para uma proporção específica de todas as fontes disponíveis. O filtro usa a proporção especificada pela SetMapperFlags função de membro.

CDC::GetBkColor

Retorna a cor do plano de fundo atual.

COLORREF GetBkColor() const;

Return Value

Um valor de cor RGB.

Remarks

Se o modo de plano de fundo for OPAQUE, o sistema usará a cor do plano de fundo para preencher as lacunas nas linhas estilizadas, as lacunas entre as linhas hachuradas nos pincéis e o plano de fundo nas células de caracteres. O sistema também usa a cor de fundo ao converter bitmaps entre cores e contextos de dispositivos monocromáticos.

CDC::GetBkMode

Retorna o modo de plano de fundo.

int GetBkMode() const;

Return Value

O modo de plano de fundo atual, que pode ser OPAQUE ou TRANSPARENT.

Remarks

O modo de plano de fundo define se o sistema remove as cores de plano de fundo existentes na superfície de desenho antes de desenhar texto, pincéis com hachura ou qualquer estilo de caneta que não seja uma linha sólida.

CDC::GetBoundsRect

Retorna o retângulo delimitador acumulado atual para o contexto de dispositivo especificado.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parameters

lpRectBounds
Aponta para um buffer que receberá o retângulo delimitador atual. O retângulo é retornado em coordenadas lógicas.

flags
Especifica se o retângulo delimitador deve ser limpo após ser retornado. Este parâmetro deve ser zero ou definido com o seguinte valor:

  • DCB_RESET Força o retângulo delimitador a ser limpo depois de retornado.

Return Value

Especifica o estado atual do retângulo delimitador se a função for bem-sucedida. Pode ser uma combinação dos seguintes valores:

  • DCB_ACCUMULATE Está a ocorrer acumulação de retângulos delimitadores.

  • DCB_RESET O retângulo delimitador está vazio.

  • DCB_SET O retângulo delimitador não está vazio.

  • DCB_ENABLE A acumulação delimitadora está ativada.

  • DCB_DISABLE A acumulação limitante está desativada.

CDC::GetBrushOrg

Recupera a origem (em unidades de dispositivo) do pincel atualmente selecionado para o contexto do dispositivo.

CPoint GetBrushOrg() const;

Return Value

A origem atual do pincel (em unidades de dispositivo) como um CPoint objeto.

Remarks

A origem inicial da escova é em (0,0) da área do cliente. O valor de retorno especifica esse ponto em unidades de dispositivo em relação à origem da janela da área de trabalho.

CDC::GetCharacterPlacement

Recupera vários tipos de informações em uma cadeia de caracteres.

DWORD GetCharacterPlacement(
    LPCTSTR lpString,
    int nCount,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

DWORD GetCharacterPlacement(
    CString& str,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

Parameters

lpString
Um ponteiro para a cadeia de caracteres a ser processada.

nCount
Especifica o comprimento da cadeia de caracteres. Para a versão ANSI, é uma BYTE contagem e para a função Unicode é uma WORD contagem. Para obter mais informações, consulte GetCharacterPlacement.

nMaxExtent
Especifica a extensão máxima (em unidades lógicas) para a qual a cadeia de caracteres é processada. Caracteres que, se processados, excederiam essa extensão são ignorados. Os cálculos para qualquer ordenação necessária ou matrizes de glifos aplicam-se apenas aos caracteres incluídos. Este parâmetro é usado somente se o GCP_MAXEXTENT valor for especificado no dwFlags parâmetro. À medida que a função processa a cadeia de entrada, cada caractere e sua extensão são adicionados à saída, extensão e outras matrizes somente se a extensão total ainda não tiver excedido o máximo. Uma vez atingido o limite, o processamento será interrompido.

lpResults
Ponteiro para uma GCP_Results estrutura que recebe os resultados da função.

dwFlags
Especifica como processar a cadeia de caracteres nas matrizes necessárias. Esse parâmetro pode ser um ou mais dos valores listados na dwFlags seção do GetCharacterPlacement tópico.

str
Um ponteiro para um CString objeto a ser processado.

Return Value

Se a função for bem-sucedida, o valor de retorno será a largura e a altura da cadeia de caracteres em unidades lógicas.

Se a função falhar, o valor de retorno será zero.

Remarks

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

CDC::GetCharABCWidths

Recupera as larguras de caracteres consecutivos em um intervalo especificado da fonte TrueType atual.

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABC lpabc) const;

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABCFLOAT lpABCF) const;

Parameters

nFirstChar
Especifica o primeiro caractere no intervalo de caracteres da fonte atual para a qual as larguras de caracteres são retornadas.

nLastChar
Especifica o último caractere no intervalo de caracteres da fonte atual para a qual as larguras de caracteres são retornadas.

lpabc
Aponta para uma matriz de estruturas que recebem as larguras de ABC caracteres quando a função retorna. Essa matriz deve conter pelo menos tantas ABC estruturas quantas forem os caracteres especificados pelos nFirstChar parâmetros e nLastChar .

lpABCF
Aponta para um buffer fornecido pelo aplicativo com uma matriz de estruturas para receber as larguras de ABCFLOAT caracteres quando a função retorna. As larguras retornadas por esta função estão no formato de ponto flutuante IEEE.

Return Value

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

Remarks

As larguras são retornadas em unidades lógicas. Esta função só é bem-sucedida com fontes TrueType.

O rasterizador TrueType fornece espaçamento de caracteres "ABC" após a seleção de um tamanho de ponto específico. Espaçamento "A" é a distância que é adicionada à posição atual antes de colocar o glifo. O espaçamento "B" é a largura da parte preta do glifo. O espaçamento "C" é adicionado à posição atual para contabilizar o espaço em branco à direita do glifo. A largura total avançada é dada por A + B + C.

Quando a GetCharABCWidths função membro recupera larguras negativas "A" ou "C" para um caractere, esse caractere inclui saliências ou saliências.

Para converter as larguras ABC em unidades de design de fontes, um aplicativo deve criar uma fonte cuja altura (conforme especificado no lfHeight membro da LOGFONT estrutura) é igual ao valor armazenado no ntmSizeEM membro da NEWTEXTMETRIC estrutura. (O valor do membro pode ser recuperado chamando a EnumFontFamilies função do ntmSizeEM Windows.)

As larguras ABC do caractere padrão são usadas para caracteres que estão fora do intervalo da fonte selecionada no momento.

Para recuperar as larguras de caracteres em fontes não-TrueType, os aplicativos devem usar a GetCharWidth função Windows.

CDC::GetCharABCWidthsI

Recupera as larguras, em unidades lógicas, de índices de glifos consecutivos em um intervalo especificado da fonte TrueType atual.

BOOL GetCharABCWidthsI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPABC lpabc) const;

Parameters

giFirst
Especifica o primeiro índice de glifo no grupo de índices de glifos consecutivos da fonte atual. Este parâmetro só é usado se o pgi parâmetro for NULL.

cgi
Especifica o número de índices de glifos.

pgi
Um ponteiro para uma matriz que contém índices de glifos. Se o valor for NULL, o giFirst parâmetro será usado. O cgi parâmetro especifica o número de índices de glifos nessa matriz.

lpabc
Ponteiro para uma matriz de estruturas que recebem as larguras dos ABC caracteres. Esta matriz deve conter pelo menos tantas ABC estruturas quantas os índices de glifos cgi especificados pelo parâmetro.

Return Value

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

Remarks

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

CDC::GetCharWidth

Recupera as larguras de caracteres individuais em um grupo consecutivo de caracteres da fonte atual, usando m_hAttribDC, o contexto do dispositivo de entrada.

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    float* lpFloatBuffer) const;

Parameters

nFirstChar
Especifica o primeiro caractere em um grupo consecutivo de caracteres na fonte atual.

nLastChar
Especifica o último caractere em um grupo consecutivo de caracteres na fonte atual.

lpBuffer
Aponta para um buffer que receberá os valores de largura para um grupo consecutivo de caracteres na fonte atual.

lpFloatBuffer
Aponta para um buffer para receber as larguras dos caracteres. As larguras retornadas estão no formato de ponto flutuante IEEE de 32 bits. (As larguras são medidas ao longo da linha de base dos caracteres.)

Return Value

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

Remarks

Por exemplo, se nFirstChar identificar a letra 'a' e nLastChar identificar a letra 'z', a função recuperará as larguras de todos os caracteres minúsculos.

A função armazena os valores no buffer apontados por lpBuffer. Esse buffer deve ser grande o suficiente para conter todas as larguras. Ou seja, deve haver pelo menos 26 entradas no exemplo dado.

Se um caractere no grupo consecutivo de caracteres não existir em uma fonte específica, será atribuído o valor width do caractere padrão.

CDC::GetCharWidthI

Recupera as larguras, em coordenadas lógicas, de índices de glifos consecutivos em um intervalo especificado da fonte atual.

BOOL GetCharWidthI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPINT lpBuffer) const;

Parameters

giFirst
Especifica o primeiro índice de glifo no grupo de índices de glifos consecutivos da fonte atual. Este parâmetro só é usado se o pgi parâmetro for NULL.

cgi
Especifica o número de índices de glifos.

pgi
Um ponteiro para uma matriz que contém índices de glifos. Se o valor for NULL, o giFirst parâmetro será usado. O cgi parâmetro especifica o número de índices de glifos nessa matriz.

lpBuffer
Um ponteiro para um buffer que recebe as larguras.

Return Value

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

Remarks

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

CDC::GetClipBox

Recupera as dimensões do retângulo delimitador mais apertado em torno do limite de recorte atual.

virtual int GetClipBox(LPRECT lpRect) const;

Parameters

lpRect
Aponta para a RECT estrutura ou CRect objeto que deve receber as dimensões do retângulo.

Return Value

O tipo da região de recorte. Pode ser qualquer um dos seguintes valores:

  • COMPLEXREGION A região de recorte tem bordas sobrepostas.

  • ERROR O contexto do dispositivo não é válido.

  • NULLREGION A região de recorte está vazia.

  • SIMPLEREGION A região de recorte não tem bordas sobrepostas.

Remarks

As dimensões são copiadas para o buffer apontado por lpRect.

CDC::GetColorAdjustment

Recupera os valores de ajuste de cor para o contexto do dispositivo.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parameters

lpColorAdjust
Aponta para uma estrutura de COLORADJUSTMENT dados para receber os valores de ajuste de cor.

Return Value

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

CDC::GetCurrentBitmap

Retorna um ponteiro para o objeto selecionado CBitmap no momento.

CBitmap* GetCurrentBitmap() const;

Return Value

Ponteiro para um CBitmap objeto, se bem-sucedido;NULL

Remarks

Esta função de membro pode retornar objetos temporários.

CDC::GetCurrentBrush

Retorna um ponteiro para o objeto selecionado CBrush no momento.

CBrush* GetCurrentBrush() const;

Return Value

Ponteiro para um CBrush objeto, se bem-sucedido;NULL

Remarks

Esta função de membro pode retornar objetos temporários.

CDC::GetCurrentFont

Retorna um ponteiro para o objeto selecionado CFont no momento.

CFont* GetCurrentFont() const;

Return Value

Ponteiro para um CFont objeto, se bem-sucedido;NULL

Remarks

Esta função de membro pode retornar objetos temporários.

CDC::GetCurrentPalette

Retorna um ponteiro para o objeto selecionado CPalette no momento.

CPalette* GetCurrentPalette() const;

Return Value

Ponteiro para um CPalette objeto, se bem-sucedido;NULL

Remarks

Esta função de membro pode retornar objetos temporários.

CDC::GetCurrentPen

Retorna um ponteiro para o objeto selecionado CPen no momento.

CPen* GetCurrentPen() const;

Return Value

Ponteiro para um CPen objeto, se bem-sucedido;NULL

Remarks

Esta função de membro pode retornar objetos temporários.

CDC::GetCurrentPosition

Recupera a posição atual (em coordenadas lógicas).

CPoint GetCurrentPosition() const;

Return Value

A posição atual como um CPoint objeto.

Remarks

A posição atual pode ser definida com a MoveTo função de membro.

CDC::GetDCBrushColor

Recupera a cor do pincel atual.

COLORREF GetDCBrushColor() const;

Return Value

Se a função for bem-sucedida, o valor de retorno será o COLORREF valor da cor do pincel atual.

Se a função falhar, o valor de retorno é CLR_INVALID.

Remarks

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

CDC::GetDCPenColor

Recupera a cor atual da caneta.

COLORREF GetDCPenColor() const;

Return Value

Se a função for bem-sucedida, o valor de retorno será o COLORREF valor da cor da caneta atual.

Se a função falhar, o valor de retorno é CLR_INVALID.

Remarks

Esta função de membro utiliza a função GetDCPenColorWin32 , conforme descrito no SDK do Windows.

CDC::GetDeviceCaps

Recupera uma ampla gama de informações específicas do dispositivo sobre o dispositivo de exibição.

int GetDeviceCaps(int nIndex) const;

Parameters

nIndex
Especifica o tipo de informação a ser retornada. Consulte GetDeviceCaps no SDK do Windows para obter uma lista de valores.

Return Value

O valor da capacidade solicitada se a função for bem-sucedida.

Example

Veja o exemplo para CPrintDialog::GetDefaults.

CDC::GetFontData

Recupera informações de métrica de fonte de um arquivo de fonte escalável.

DWORD GetFontData(
    DWORD dwTable,
    DWORD dwOffset,
    LPVOID lpData,
    DWORD cbData) const;

Parameters

dwTable
Especifica o nome da tabela métrica a ser retornada. Esse parâmetro pode ser uma das tabelas métricas documentadas na especificação TrueType Font Files publicada pela Microsoft Corporation. Se esse parâmetro for 0, as informações serão recuperadas a partir do início do arquivo de fonte.

dwOffset
Especifica o deslocamento do início da tabela no qual começar a recuperar informações. Se esse parâmetro for 0, as informações serão recuperadas a partir do início da tabela especificada pelo dwTable parâmetro. Se esse valor for maior ou igual ao tamanho da tabela, GetFontData retornará 0.

lpData
Aponta para um buffer que receberá as informações da fonte. Se esse valor for NULL, a função retornará o tamanho do buffer necessário para os dados de fonte especificados no dwTable parâmetro.

cbData
Especifica o comprimento, em bytes, das informações a serem recuperadas. Se esse parâmetro for 0, GetFontData retornará o tamanho dos dados especificados no dwTable parâmetro.

Return Value

Especifica o número de bytes retornados no buffer apontado por lpData se a função for bem-sucedida; caso contrário, -1.

Remarks

As informações a serem recuperadas são identificadas especificando um deslocamento no arquivo de fonte e o comprimento das informações a serem retornadas.

Às vezes, um aplicativo pode usar a GetFontData função de membro para salvar uma fonte TrueType com um documento. Para fazer isso, o aplicativo determina se a fonte pode ser incorporada e, em seguida, recupera o arquivo de fonte inteiro, especificando 0 para os dwTableparâmetros , dwOffsete cbData .

Os aplicativos podem determinar se uma fonte pode ser incorporada verificando o otmfsTypeOUTLINETEXTMETRIC membro da estrutura. Se o bit 1 do otmfsType estiver definido, a incorporação não será permitida para a fonte. Se o bit 1 estiver limpo, a fonte pode ser incorporada. Se o bit 2 estiver definido, a incorporação será somente leitura.

Se um aplicativo tentar usar essa função para recuperar informações para uma fonte não-TrueType, a GetFontData função de membro retornará -1.

CDC::GetFontLanguageInfo

Retorna informações sobre a fonte atualmente selecionada para o contexto de exibição especificado.

DWORD GetFontLanguageInfo() const;

Return Value

O valor de retorno identifica as características da fonte selecionada no momento. Para obter uma lista completa dos valores possíveis, consulte GetFontLanguageInfo.

Remarks

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

CDC::GetGlyphOutline

Recupera a curva de contorno ou bitmap de um caractere de contorno na fonte atual.

DWORD GetGlyphOutline(
    UINT nChar,
    UINT nFormat,
    LPGLYPHMETRICS lpgm,
    DWORD cbBuffer,
    LPVOID lpBuffer,
    const MAT2* lpmat2) const;

Parameters

nChar
Especifica o caractere para o qual as informações devem ser retornadas.

nFormat
Especifica o formato no qual a função deve retornar informações. Pode ser um dos seguintes valores ou 0:

Value Meaning
GGO_BITMAP Retorna o bitmap de glifo. Quando a função retorna, o buffer apontado por lpBuffer contém um bitmap de 1 bit por pixel cujas linhas começam em limites de palavras duplas.
GGO_NATIVE Retorna os pontos de dados da curva no formato nativo do rasterizador, usando unidades de dispositivo. Quando esse valor é especificado, qualquer transformação especificada em lpmat2 é ignorada.

Quando o valor de é 0, a função preenche uma GLYPHMETRICS estrutura, mas não retorna dados de contorno de nFormat glifo.

lpgm
Aponta para uma GLYPHMETRICS estrutura que descreve o posicionamento do glifo na célula de caracteres.

cbBuffer
Especifica o tamanho do buffer no qual a função copia informações sobre o caractere de estrutura de tópicos. Se esse valor for 0 e o nFormat parâmetro for o GGO_BITMAPGGO_NATIVE ou valores, a função retornará o tamanho necessário do buffer.

lpBuffer
Aponta para um buffer no qual a função copia informações sobre o caractere de estrutura de tópicos. Se nFormat especificar o GGO_NATIVE valor, as informações serão copiadas na forma de TTPOLYGONHEADER e TTPOLYCURVE estruturas. Se esse valor for NULL e nFormat for o GGO_BITMAPGGO_NATIVE ou valor, a função retornará o tamanho necessário do buffer.

lpmat2
Aponta para uma MAT2 estrutura que contém uma matriz de transformação para o personagem. Este parâmetro não pode ser NULL, mesmo quando o GGO_NATIVE valor é especificado para nFormat.

Return Value

O tamanho, em bytes, do buffer necessário para as informações recuperadas se cbBuffer é 0 ou lpBuffer é NULL. Caso contrário, é um valor positivo se a função for bem-sucedida ou -1 se houver um erro.

Remarks

Um aplicativo pode girar caracteres recuperados no formato bitmap especificando uma matriz de transformação 2 por 2 na estrutura apontada por lpmat2.

Um contorno de glifo é retornado como uma série de contornos. Cada contorno é definido por uma TTPOLYGONHEADER estrutura seguida de tantas TTPOLYCURVE estruturas quantas forem necessárias para descrevê-lo. Todos os pontos são retornados como POINTFX estruturas e representam posições absolutas, não movimentos relativos. O ponto de partida dado pelo pfxStart membro da estrutura é o ponto em que começa o esboço de TTPOLYGONHEADER um contorno. As TTPOLYCURVE estruturas que se seguem podem ser registros de polilinha ou registros de spline. Os registros polilíneos são uma série de pontos; As linhas desenhadas entre os pontos descrevem o contorno do personagem. Os registros Spline representam as curvas quadráticas usadas por TrueType (ou seja, b-splines quadráticas).

CDC::GetGraphicsMode

Recupera o modo gráfico atual para o contexto de dispositivo especificado.

int GetGraphicsMode() const;

Return Value

Retorna o modo gráfico atual em caso de êxito. Para obter uma lista dos valores que esse método pode retornar, consulte GetGraphicsMode.

Retorna 0 em caso de falha.

Para obter informações de erro estendidas, ligue para GetLastError.

Remarks

Este método encapsula a função GetGraphicsModeGDI do Windows .

CDC::GetHalftoneBrush

Chame essa função de membro para recuperar um pincel de meio-tom.

static CBrush* PASCAL GetHalftoneBrush();

Return Value

Um ponteiro para um CBrush objeto, se bem-sucedido, caso contrário NULL.

Remarks

Um pincel de meio-tom mostra pixels que são alternadamente cores de primeiro plano e plano de fundo para criar um padrão dithered. O diagrama a seguir mostra um exemplo de um padrão dithered criado por um pincel de meio-tom:

Diagrama que mostra como um traço de caneta dithered é composto.

O diagrama mostra como a cor de fundo do preto e a cor do primeiro plano do amarelo são combinadas em um padrão alternando os pixels preto e amarelo entre si para criar um traço de caneta dithered.

CDC::GetKerningPairs

Recupera os pares de kerning de caracteres para a fonte que está atualmente selecionada no contexto do dispositivo especificado.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parameters

nPairs
Especifica o número de estruturas apontadas KERNINGPAIR por lpkrnpair. A função não copiará mais pares kerning do que os especificados pelo nPairs.

lpkrnpair
Aponta para uma matriz de estruturas que recebem os pares kerning KERNINGPAIR quando a função retorna. Essa matriz deve conter pelo menos tantas estruturas quanto especificado pelo nPairs. Se esse parâmetro for NULL, a função retornará o número total de pares de kerning para a fonte.

Return Value

Especifica o número de pares de kerning recuperados ou o número total de pares de kerning na fonte, se a função for bem-sucedida. Zero é retornado se a função falhar ou não houver pares kerning para a fonte.

CDC::GetLayout

Chame essa função de membro para determinar o layout do texto e dos gráficos para um contexto de dispositivo, como uma impressora ou um metarquivo.

DWORD GetLayout() const;

Return Value

Se for bem-sucedido, o layout será sinalizado para o contexto atual do dispositivo. Caso contrário, GDI_ERROR. Para obter informações de erro estendidas, chame GetLastError. Para obter uma lista dos sinalizadores de layout, consulte CDC::SetLayout.

Remarks

O layout padrão é da esquerda para a direita.

CDC::GetMapMode

Recupera o modo de mapeamento atual.

int GetMapMode() const;

Return Value

O modo de mapeamento.

Remarks

Para obter uma descrição dos modos de mapeamento, consulte a SetMapMode função membro.

Note

Se você ligar SetLayout para alterar o layout do DC para da direita para a esquerda, SetLayout alterará automaticamente o modo de mapeamento para MM_ISOTROPIC. Consequentemente, qualquer chamada subsequente para GetMapMode retornará MM_ISOTROPIC.

CDC::GetMiterLimit

Retorna o limite de mitra para o contexto do dispositivo.

float GetMiterLimit() const;

Return Value

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

Remarks

O limite de esquadria é usado ao desenhar linhas geométricas que têm junções de esquadria.

CDC::GetNearestColor

Retorna a cor sólida que melhor corresponde a uma cor lógica especificada.

COLORREF GetNearestColor(COLORREF crColor) const;

Parameters

crColor
Especifica a cor a ser correspondida.

Return Value

Um valor de cor RGB (vermelho, verde, azul) que define a cor sólida mais próxima do crColor valor que o dispositivo pode representar.

Remarks

O dispositivo dado deve ser capaz de representar esta cor.

CDC::GetOutlineTextMetrics

Recupera informações métricas para fontes TrueType.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parameters

lpotm
Aponta para uma matriz de OUTLINETEXTMETRIC estruturas. Se esse parâmetro for NULL, a função retornará o tamanho do buffer necessário para os dados métricos recuperados.

cbData
Especifica o tamanho, em bytes, do buffer para o qual as informações são retornadas.

lpotm
Aponta para uma OUTLINETEXTMETRIC estrutura. Se esse parâmetro for NULL, a função retornará o tamanho do buffer necessário para as informações métricas recuperadas.

Return Value

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

Remarks

A OUTLINETEXTMETRIC estrutura contém a maioria das informações de métrica de fonte fornecidas com o formato TrueType, incluindo uma TEXTMETRIC estrutura. Os últimos quatro membros da OUTLINETEXTMETRIC estrutura são ponteiros para strings. Os aplicativos devem alocar espaço para essas cadeias de caracteres, além do espaço necessário para os outros membros. Como não há limite imposto pelo sistema para o tamanho das cadeias de caracteres, o método mais simples para alocar memória é recuperar o tamanho necessário especificando NULL para lpotm na primeira chamada para a GetOutlineTextMetrics função.

CDC::GetOutputCharWidth

Usa o contexto m_hDCdo dispositivo de saída e recupera as larguras de caracteres individuais em um grupo consecutivo de caracteres da fonte atual.

BOOL GetOutputCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

Parameters

nFirstChar
Especifica o primeiro caractere em um grupo consecutivo de caracteres na fonte atual.

nLastChar
Especifica o último caractere em um grupo consecutivo de caracteres na fonte atual.

lpBuffer
Aponta para um buffer que receberá os valores de largura para um grupo consecutivo de caracteres na fonte atual.

Return Value

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

Remarks

Por exemplo, se nFirstChar identificar a letra 'a' e nLastChar identificar a letra 'z', a função recuperará as larguras de todos os caracteres minúsculos.

A função armazena os valores no buffer apontados por lpBuffer. Este buffer deve ser grande o suficiente para conter todas as larguras; ou seja, deve haver pelo menos 26 entradas no exemplo dado.

Se um caractere no grupo consecutivo de caracteres não existir em uma fonte específica, será atribuído o valor width do caractere padrão.

CDC::GetOutputTabbedTextExtent

Chame essa função de membro para calcular a largura e a altura de uma cadeia de caracteres usando m_hDC, o contexto do dispositivo de saída.

CSize GetOutputTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetOutputTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parameters

lpszString
Aponta para uma cadeia de caracteres a ser medida. Você também pode passar um CString objeto para esse parâmetro.

nCount
Especifica o comprimento da cadeia de caracteres apontada por lpszString.

nTabPositions
Especifica o número de posições de tabulação na matriz apontada por lpnTabStopPositions.

lpnTabStopPositions
Aponta para uma matriz de inteiros contendo as posições de tabulação em unidades lógicas. As paradas de tabulação devem ser ordenadas em ordem crescente; O menor valor x deve ser o primeiro item na matriz. Não são permitidos separadores traseiros.

str
Um CString objeto que contém os caracteres especificados a serem medidos.

Return Value

As dimensões da cadeia de caracteres (em unidades lógicas) em um CSize objeto.

Remarks

Se a cadeia de caracteres contiver um ou mais caracteres de tabulação, a largura da cadeia de caracteres será baseada nas paradas de tabulação especificadas por lpnTabStopPositions. A função usa a fonte atualmente selecionada para calcular as dimensões da cadeia de caracteres.

A região de recorte atual não compensa a largura e a altura retornadas GetOutputTabbedTextExtent pela função.

Como alguns dispositivos não colocam caracteres em matrizes de células regulares (ou seja, eles kern os caracteres), a soma das extensões dos caracteres em uma cadeia de caracteres pode não ser igual à extensão da cadeia de caracteres.

Se nTabPositions for 0 e lpnTabStopPositions for NULL, as guias serão expandidas para oito larguras médias de caracteres. Se nTabPositions for 1, as paradas de tabulação serão separadas pela distância especificada pelo primeiro valor na matriz para quais lpnTabStopPositions pontos. Se lpnTabStopPositions apontar para mais de um único valor, uma parada de tabulação será definida para cada valor na matriz, até o número especificado por nTabPositions.

CDC::GetOutputTextExtent

Chame essa função de membro para usar o contexto m_hDCdo dispositivo de saída e calcule a largura e a altura de uma linha de texto, usando a fonte atual.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parameters

lpszString
Aponta para uma cadeia de caracteres. Você também pode passar um CString objeto para esse parâmetro.

nCount
Especifica o comprimento da cadeia de caracteres apontada por lpszString.

str
Um CString objeto que contém os caracteres especificados a serem medidos.

Return Value

As dimensões da cadeia de caracteres (em unidades lógicas) retornadas em um CSize objeto.

Remarks

A região de recorte atual não afeta a largura e a altura retornadas pelo GetOutputTextExtent.

Como alguns dispositivos não colocam caracteres em matrizes de células regulares (ou seja, eles realizam kerning), a soma das extensões dos caracteres em uma cadeia de caracteres pode não ser igual à extensão da cadeia de caracteres.

CDC::GetOutputTextMetrics

Recupera as métricas da fonte atual usando m_hDC, o contexto do dispositivo de saída.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameters

lpMetrics
Aponta para a TEXTMETRIC estrutura que recebe as métricas.

Return Value

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

CDC::GetPath

Recupera as coordenadas que definem os pontos finais das linhas e os pontos de controle das curvas encontradas no caminho selecionado no contexto do dispositivo.

int GetPath(
    LPPOINT lpPoints,
    LPBYTE lpTypes,
    int nCount) const;

Parameters

lpPoints
Aponta para uma matriz de estruturas de dados ou CPoint objetos onde os pontos de extremidade de POINT linha e pontos de controle de curva são colocados.

lpTypes
Aponta para uma matriz de bytes onde os tipos de vértice são colocados. Os valores são um dos seguintes:

  • PT_MOVETO Especifica que o ponto correspondente inicia lpPoints uma figura separada.

  • PT_LINETO Especifica que o ponto anterior e o ponto correspondente em lpPoints são os pontos finais de uma linha.

  • PT_BEZIERTO Especifica que o ponto correspondente em lpPoints é um ponto de controle ou ponto final para uma curva de Bzier.

PT_BEZIERTO os tipos ocorrem sempre em conjuntos de três. O ponto no caminho imediatamente anterior a eles define o ponto de partida para a curva de Bzier. Os dois PT_BEZIERTO primeiros pontos são os pontos de controle, e o terceiro PT_BEZIERTO ponto é o ponto final (se codificado).

Um PT_LINETO ou PT_BEZIERTO tipo pode ser combinado com o seguinte sinalizador (usando o operador bit a bit OR) para indicar que o ponto correspondente é o último ponto de uma figura e que a figura deve ser fechada:

  • PT_CLOSEFIGURE Especifica que a figura é fechada automaticamente depois que a linha ou curva correspondente é desenhada. A figura é fechada desenhando uma linha do ponto final da linha ou curva até o ponto correspondente ao último PT_MOVETO.

nCount
Especifica o número total de estruturas de POINT dados que podem ser colocadas na lpPoints matriz. Esse valor deve ser o mesmo que o número de bytes que podem ser colocados na lpTypes matriz.

Return Value

Se o nCount parâmetro for diferente de zero, o número de pontos enumerados. Se nCount for 0, o número total de pontos no caminho (e GetPath não grava nada nos buffers). Se nCount for diferente de zero e for menor que o número de pontos no caminho, o valor de retorno será -1.

Remarks

O contexto do dispositivo deve conter um caminho fechado. Os pontos do caminho são retornados em coordenadas lógicas. Os pontos são armazenados no caminho em coordenadas do dispositivo, portanto GetPath , altera os pontos de coordenadas do dispositivo para coordenadas lógicas usando o inverso da transformação atual. A FlattenPath função de membro pode ser chamada antes GetPathde , para converter todas as curvas no caminho em segmentos de linha.

Example

Veja o exemplo para CDC::BeginPath.

CDC::GetPixel

Recupera o valor de cor RGB do pixel no ponto especificado por x e y.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parameters

x
Especifica a coordenada x lógica do ponto a ser examinado.

y
Especifica a coordenada y lógica do ponto a ser examinado.

point
Especifica as coordenadas lógicas x e y do ponto a ser examinado.

Return Value

Para qualquer versão da função, um valor de cor RGB para a cor do ponto determinado. É -1 se as coordenadas não especificarem um ponto na região de recorte.

Remarks

O ponto deve estar na região de recorte. Se o ponto não estiver na região de recorte, a função não terá efeito e retornará -1.

Nem todos os dispositivos suportam a GetPixel função. Para obter mais informações, consulte a RC_BITBLT capacidade de raster na GetDeviceCaps função de membro.

A GetPixel função de membro tem duas formas. O primeiro usa dois valores de coordenadas; o segundo toma uma POINT estrutura ou um CPoint objeto.

CDC::GetPolyFillMode

Recupera o modo de preenchimento de polígonos atual.

int GetPolyFillMode() const;

Return Value

O modo atual preenchido com polígono, ALTERNATE ou WINDING, se a função for bem-sucedida.

Remarks

Consulte a SetPolyFillMode função de membro para obter uma descrição dos modos de preenchimento de polígonos.

CDC::GetROP2

Recupera o modo de desenho atual.

int GetROP2() const;

Return Value

O modo de desenho. Para obter uma lista dos valores do modo de desenho, consulte a SetROP2 função membro.

Remarks

O modo de desenho especifica como as cores da caneta e o interior dos objetos preenchidos são combinados com a cor já na superfície de exibição.

CDC::GetSafeHdc

Chame essa função de membro para obter m_hDC, o contexto do dispositivo de saída.

HDC GetSafeHdc() const;

Return Value

Um identificador de contexto de dispositivo.

Remarks

Esta função de membro também funciona com ponteiros nulos.

CDC::GetStretchBltMode

Recupera o modo de alongamento de bitmap atual.

int GetStretchBltMode() const;

Return Value

O valor de retorno especifica o modo atual de alongamento de bitmap — STRETCH_ANDSCANS, STRETCH_DELETESCANS, ou STRETCH_ORSCANS — se a função for bem-sucedida.

Remarks

O modo de alongamento de bitmap define como as informações são removidas de bitmaps que são esticados StretchBlt ou compactados pela função de membro.

Os STRETCH_ANDSCANS modos e STRETCH_ORSCANS são normalmente usados para preservar pixels de primeiro plano em bitmaps monocromáticos. O STRETCH_DELETESCANS modo é normalmente usado para preservar a cor em bitmaps de cores.

CDC::GetTabbedTextExtent

Chame essa função de membro para calcular a largura e a altura de uma cadeia de caracteres usando m_hAttribDC, o contexto do dispositivo de atributo.

CSize GetTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parameters

lpszString
Aponta para uma cadeia de caracteres. Você também pode passar um CString objeto para esse parâmetro.

nCount
Especifica o comprimento da cadeia de caracteres apontada por lpszString.

nTabPositions
Especifica o número de posições de tabulação na matriz apontada por lpnTabStopPositions.

lpnTabStopPositions
Aponta para uma matriz de inteiros contendo as posições de tabulação em unidades lógicas. As paradas de tabulação devem ser ordenadas em ordem crescente; O menor valor x deve ser o primeiro item na matriz. Não são permitidos separadores traseiros.

str
Um CString objeto que contém os caracteres especificados a serem desenhados.

Return Value

As dimensões da cadeia de caracteres (em unidades lógicas) em um CSize objeto.

Remarks

Se a cadeia de caracteres contiver um ou mais caracteres de tabulação, a largura da cadeia de caracteres será baseada nas paradas de tabulação especificadas por lpnTabStopPositions. A função usa a fonte atualmente selecionada para calcular as dimensões da cadeia de caracteres.

A região de recorte atual não compensa a largura e a altura retornadas GetTabbedTextExtent pela função.

Como alguns dispositivos não colocam caracteres em matrizes de células regulares (ou seja, eles kern os caracteres), a soma das extensões dos caracteres em uma cadeia de caracteres pode não ser igual à extensão da cadeia de caracteres.

Se nTabPositions for 0 e lpnTabStopPositions for NULL, as guias serão expandidas para oito vezes a largura média dos caracteres. Se nTabPositions for 1, as paradas de tabulação serão separadas pela distância especificada pelo primeiro valor na matriz para quais lpnTabStopPositions pontos. Se lpnTabStopPositions apontar para mais de um único valor, uma parada de tabulação será definida para cada valor na matriz, até o número especificado por nTabPositions.

CDC::GetTextAlign

Recupera o status dos sinalizadores de alinhamento de texto para o contexto do dispositivo.

UINT GetTextAlign() const;

Return Value

O status dos sinalizadores de alinhamento de texto. O valor de retorno é um ou mais dos seguintes valores:

  • TA_BASELINE Especifica o alinhamento do eixo x e a linha de base da fonte escolhida dentro do retângulo delimitador.

  • TA_BOTTOM Especifica o alinhamento do eixo x e a parte inferior do retângulo delimitador.

  • TA_CENTER Especifica o alinhamento do eixo y e o centro do retângulo delimitador.

  • TA_LEFT Especifica o alinhamento do eixo y e o lado esquerdo do retângulo delimitador.

  • TA_NOUPDATECP Especifica que a posição atual não é atualizada.

  • TA_RIGHT Especifica o alinhamento do eixo y e o lado direito do retângulo delimitador.

  • TA_TOP Especifica o alinhamento do eixo x e a parte superior do retângulo delimitador.

  • TA_UPDATECP Especifica que a posição atual é atualizada.

Remarks

Os sinalizadores de alinhamento de texto determinam como as funções e ExtTextOut membro alinham TextOut uma cadeia de caracteres de texto em relação ao ponto inicial da cadeia de caracteres. Os sinalizadores de alinhamento de texto não são necessariamente sinalizadores de bit único e podem ser iguais a 0. Para testar se um sinalizador está definido, um aplicativo deve seguir estas etapas:

  1. Aplique o operador bit a bit OR (|) ao sinalizador e seus sinalizadores relacionados, agrupados da seguinte forma:

    • TA_LEFT, TA_CENTERe TA_RIGHT

    • TA_BASELINE, TA_BOTTOMe TA_TOP

    • TA_NOUPDATECP e TA_UPDATECP

  2. Aplique o operador C++ bit a bit E (&) ao resultado e ao valor de retorno de GetTextAlign.

  3. Teste para a igualdade deste resultado e da bandeira.

CDC::GetTextCharacterExtra

Recupera a configuração atual para a quantidade de espaçamento entre caracteres.

int GetTextCharacterExtra() const;

Return Value

A quantidade do espaçamento entre caracteres.

Remarks

O GDI adiciona esse espaçamento a cada caractere, incluindo caracteres de quebra, quando grava uma linha de texto no contexto do dispositivo.

O valor padrão para a quantidade de espaçamento entre caracteres é 0.

CDC::GetTextColor

Recupera a cor do texto atual.

COLORREF GetTextColor() const;

Return Value

A cor do texto atual como um valor de cor RGB.

Remarks

A cor do texto é a cor de primeiro plano dos caracteres desenhados usando as funções TextOutde membro de saída de texto GDI , ExtTextOute TabbedTextOut.

CDC::GetTextExtent

Chame essa função de membro para calcular a largura e a altura de uma linha de texto usando a fonte atual para determinar as dimensões.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parameters

lpszString
Aponta para uma cadeia de caracteres. Você também pode passar um CString objeto para esse parâmetro.

nCount
Especifica o número de caracteres na cadeia de caracteres.

str
Um CString objeto que contém os caracteres especificados.

Return Value

As dimensões da cadeia de caracteres (em unidades lógicas) em um CSize objeto.

Remarks

As informações são recuperadas de , o contexto do dispositivo de m_hAttribDCatributo.

Por padrão, GetTextExtent assume que o texto para o qual recupera a dimensão é definido ao longo de uma linha horizontal (ou seja, o escape é 0). Se você criar uma fonte especificando um escape diferente de zero, deverá converter o ângulo do texto explicitamente para obter as dimensões da cadeia de caracteres.

A região de recorte atual não afeta a largura e a altura retornadas pelo GetTextExtent.

Como alguns dispositivos não colocam caracteres em matrizes de células regulares (ou seja, eles realizam kerning), a soma das extensões dos caracteres em uma cadeia de caracteres pode não ser igual à extensão da cadeia de caracteres.

CDC::GetTextExtentExPointI

Recupera o número de caracteres em uma cadeia de caracteres especificada que caberá dentro de um espaço especificado e preenche uma matriz com a extensão do texto para cada um desses caracteres.

BOOL GetTextExtentExPointI(
    LPWORD pgiIn,
    int cgi,
    int nMaxExtent,
    LPINT lpnFit,
    LPINT alpDx,
    LPSIZE lpSize) const;

Parameters

pgiIn
Um ponteiro para uma matriz de índices de glifos para os quais as extensões devem ser recuperadas.

cgi
Especifica o número de glifos na matriz apontada por pgiIn.

nMaxExtent
Especifica a largura máxima permitida, em unidades lógicas, da cadeia de caracteres formatada.

lpnFit
Um ponteiro para um inteiro que recebe uma contagem do número máximo de caracteres que caberão no espaço especificado por nMaxExtent. Quando lpnFit é NULL, nMaxExtent é ignorado.

alpDx
Um ponteiro para uma matriz de inteiros que recebe extensões parciais de glifos. Cada elemento na matriz dá a distância, em unidades lógicas, entre o início da matriz de índices de glifos e um dos glifos que se encaixa no espaço especificado por nMaxExtent. Embora essa matriz deva ter pelo menos tantos elementos quanto os índices de glifos especificados por cgi, a função preenche a matriz com extensões apenas para tantos índices de glifos quantos forem especificados por lpnFit. Se lpnDx for NULL, a função não calcula larguras parciais de cadeia de caracteres.

lpSize
Ponteiro para uma SIZE estrutura que recebe as dimensões da matriz de índices de glifos, em unidades lógicas. Este valor não pode ser NULL.

Return Value

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

Remarks

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

CDC::GetTextExtentPointI

Recupera a largura e a altura da matriz especificada de índices de glifos.

BOOL GetTextExtentPointI(
    LPWORD pgiIn,
    int cgi,
    LPSIZE lpSize) const;

Parameters

pgiIn
Um ponteiro para uma matriz de índices de glifos para os quais as extensões devem ser recuperadas.

cgi
Especifica o número de glifos na matriz apontada por pgiIn.

lpSize
Ponteiro para uma SIZE estrutura que recebe as dimensões da matriz de índices de glifos, em unidades lógicas. Este valor não pode ser NULL.

Return Value

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

Remarks

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

CDC::GetTextFace

Chame essa função de membro para copiar o nome do tipo de letra da fonte atual em um buffer.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parameters

nCount
Especifica o tamanho do buffer (em bytes). Se o nome do tipo de letra for maior do que o número de bytes especificado por esse parâmetro, o nome será truncado.

lpszFacename
Aponta para o buffer do nome do tipo de letra.

rString
Uma referência a um objeto CString.

Return Value

O número de bytes copiados para o buffer, não incluindo o caractere nulo de encerramento. É 0 se ocorrer um erro.

Remarks

O nome do tipo de letra é copiado como uma cadeia de caracteres terminada em nulo.

CDC::GetTextMetrics

Recupera as métricas da fonte atual usando o contexto do dispositivo de atributo.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameters

lpMetrics
Aponta para a TEXTMETRIC estrutura que recebe as métricas.

Return Value

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

CDC::GetViewportExt

Recupera as extensões x e y do visor do contexto do dispositivo.

CSize GetViewportExt() const;

Return Value

As extensões x e y (em unidades de dispositivo) como um CSize objeto.

CDC::GetViewportOrg

Recupera as coordenadas x e y da origem do visor associado ao contexto do dispositivo.

CPoint GetViewportOrg() const;

Return Value

A origem do visor (em coordenadas do dispositivo) como um CPoint objeto.

CDC::GetWindow

Retorna a janela associada ao contexto do dispositivo de exibição.

CWnd* GetWindow() const;

Return Value

Ponteiro para um CWnd objeto se for bem-sucedido;NULL

Remarks

Esta é uma função avançada. Por exemplo, essa função de membro pode não retornar a janela de exibição ao imprimir ou na visualização de impressão. Ele sempre retorna a janela associada à saída. As funções de saída que usam o desenho DC dado nesta janela.

CDC::GetWindowExt

Recupera as extensões x e y da janela associada ao contexto do dispositivo.

CSize GetWindowExt() const;

Return Value

As extensões x e y (em unidades lógicas) como um CSize objeto.

CDC::GetWindowOrg

Recupera as coordenadas x e y da origem da janela associada ao contexto do dispositivo.

CPoint GetWindowOrg() const;

Return Value

A origem da janela (em coordenadas lógicas) como um CPoint objeto.

CDC::GetWorldTransform

Recupera a transformação atual do espaço do mundo para o espaço da página.

BOOL GetWorldTransform(XFORM& rXform) const;

Parameters

rXform
Referência a uma XFORM estrutura que recebe a transformação atual de espaço-mundo para espaço-página.

Return Value

Devolve um valor diferente de zero no êxito.

Retorna 0 em caso de falha.

Para obter informações de erro estendidas, ligue para GetLastError.

Remarks

Este método encapsula a função GetWorldTransformGDI do Windows .

CDC::GradientFill

Chame essa função de membro para preencher estruturas de retângulo e triângulo com cores que desbotam suavemente de um lado para o outro.

BOOL GradientFill(
    TRIVERTEX* pVertices,
    ULONG nVertices,
    void* pMesh,
    ULONG nMeshElements,
    DWORD dwMode);

Parameters

pVertices
Ponteiro para uma matriz de estruturas que definem cada uma um vértice de TRIVERTEX triângulo.

nVertices
O número de vértices.

pMesh
Matriz de GRADIENT_TRIANGLE estruturas no modo triângulo, ou uma matriz de GRADIENT_RECT estruturas no modo retângulo.

nMeshElements
O número de elementos (triângulos ou retângulos) em pMesh.

dwMode
Especifica o modo de preenchimento gradiente. Para obter uma lista de valores possíveis, consulte GradientFill no SDK do Windows.

Return Value

TRUE se for bem-sucedida; caso contrário, FALSE.

Remarks

Para obter mais informações, consulte GradientFill no SDK do Windows.

CDC::GrayString

Desenha texto esmaecido (cinza) no local determinado, gravando o texto em um bitmap de memória, escurecendo o bitmap e copiando o bitmap para a exibição.

virtual BOOL GrayString(
    CBrush* pBrush,
    BOOL (CALLBACK* lpfnOutput)(
    HDC,
    LPARAM,
    int),
    LPARAM lpData,
    int nCount,
    int x,
    int y,
    int nWidth,
    int nHeight);

Parameters

pBrush
Identifica o pincel a ser usado para escurecimento (acinzentamento).

lpfnOutput
Especifica o endereço da instância de procedimento da função de retorno de chamada fornecida pelo aplicativo que desenhará a cadeia de caracteres. Para obter mais informações, consulte a descrição da função de retorno de chamada do Windows.OutputFunc Se esse parâmetro for NULL, o sistema usa a função Windows TextOut para desenhar a cadeia de caracteres e lpData é assumido como um ponteiro longo para a cadeia de caracteres a ser saída.

lpData
Especifica um ponteiro distante para os dados a serem passados para a função de saída. Se lpfnOutput for NULL, lpData deve ser um ponteiro longo para a cadeia de caracteres a ser saída.

nCount
Especifica o número de caracteres a serem produzidos. Se esse parâmetro for 0, GrayString calcula o comprimento da cadeia de caracteres (supondo que lpData seja um ponteiro para a cadeia de caracteres). Se nCount for 1 e a função apontada por lpfnOutput retorna 0, a imagem será mostrada, mas não esmaecida.

x
Especifica a coordenada x lógica da posição inicial do retângulo que encerra a cadeia de caracteres.

y
Especifica a coordenada y lógica da posição inicial do retângulo que encerra a cadeia de caracteres.

nWidth
Especifica a largura (em unidades lógicas) do retângulo que encerra a cadeia de caracteres. Se nWidth for 0, GrayString calcula a largura da área, assumindo lpData que é um ponteiro para a cadeia de caracteres.

nHeight
Especifica a altura (em unidades lógicas) do retângulo que encerra a cadeia de caracteres. Se nHeight for 0, GrayString calcula a altura da área, assumindo lpData que é um ponteiro para a cadeia de caracteres.

Return Value

Diferente de zero se a cadeia de caracteres for desenhada, ou 0 se a TextOut função ou a função de saída fornecida pelo aplicativo retornar 0, ou se não houver memória suficiente para criar um bitmap de memória para escurecimento.

Remarks

A função escurece o texto independentemente do pincel e do plano de fundo selecionados. A GrayString função de membro usa a fonte selecionada no momento. O MM_TEXT modo de mapeamento deve ser selecionado antes de usar esta função.

Um aplicativo pode desenhar cadeias de caracteres esmaecidas (cinza) em dispositivos que suportam uma cor cinza sólida sem chamar a GrayString função de membro. A cor COLOR_GRAYTEXT do sistema é a cor do sistema cinza-sólido usada para desenhar texto desativado. O aplicativo pode chamar a GetSysColor função do Windows para recuperar o valor de cor de COLOR_GRAYTEXT. Se a cor for diferente de 0 (preto), o aplicativo pode chamar a SetTextColor função de membro para definir a cor do texto para o valor da cor e, em seguida, desenhar a cadeia de caracteres diretamente. Se a cor recuperada for preta, o aplicativo deve chamar GrayString para escurecer (cinza) o texto.

Se lpfnOutput for NULL, GDI usa a função Windows TextOut e é assumido como um ponteiro distante para o caractere lpData a ser saída. Se os caracteres a serem enviados não puderem ser manipulados pela TextOut função de membro (por exemplo, a cadeia de caracteres é armazenada como um bitmap), o aplicativo deve fornecer sua própria função de saída.

Todas as funções de retorno de chamada devem intercetar exceções do Microsoft Foundation antes de retornar ao Windows, já que as exceções não podem ser lançadas entre os limites de retorno de chamada. Para obter mais informações sobre exceções, consulte o artigo Exceções.

A função de retorno de chamada passada para GrayString deve usar a convenção de chamada e deve ser exportada __stdcall com __declspec.

Quando a estrutura está no modo de visualização, uma chamada para a GrayString função de membro é convertida em uma TextOut chamada e a função de retorno de chamada não é chamada.

CDC::HIMETRICtoDP

Use essa função ao converter HIMETRIC tamanhos de OLE em pixels.

void HIMETRICtoDP(LPSIZE lpSize) const;

Parameters

lpSize
Aponta para uma SIZE estrutura ou CSize objeto.

Remarks

Se o modo de mapeamento do objeto de contexto do dispositivo for MM_LOENGLISH, MM_HIENGLISHMM_LOMETRIC ou , a MM_HIMETRICconversão será baseada no número de pixels na polegada física. Se o modo de mapeamento for um dos outros modos não restritos (por exemplo, MM_TEXT), a conversão será baseada no número de pixels na polegada lógica.

CDC::HIMETRICtoLP

Chame essa função para converter HIMETRIC unidades em unidades lógicas.

void HIMETRICtoLP(LPSIZE lpSize) const;

Parameters

lpSize
Aponta para uma SIZE estrutura ou CSize objeto.

Remarks

Use esta função quando você obter HIMETRIC tamanhos de OLE e desejar convertê-los para o modo de mapeamento natural do seu aplicativo.

A conversão é realizada primeiro convertendo as HIMETRIC unidades em pixels e, em seguida, convertendo essas unidades em unidades lógicas usando as unidades de mapeamento atuais do contexto do dispositivo. Observe que as extensões da janela e do visor do dispositivo afetarão o resultado.

CDC::IntersectClipRect

Cria uma nova região de recorte formando a interseção da região atual e o retângulo especificado por x1, y1, x2e y2.

int IntersectClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int IntersectClipRect(LPCRECT lpRect);

Parameters

x1
Especifica a coordenada x lógica do canto superior esquerdo do retângulo.

y1
Especifica a coordenada y lógica do canto superior esquerdo do retângulo.

x2
Especifica a coordenada x lógica do canto inferior direito do retângulo.

y2
Especifica a coordenada y lógica do canto inferior direito do retângulo.

lpRect
Especifica o retângulo. Você pode passar um CRect objeto ou um ponteiro para uma RECT estrutura para esse parâmetro.

Return Value

O novo tipo de região de recorte. Pode ser qualquer um dos seguintes valores:

  • COMPLEXREGION Nova região de recorte tem bordas sobrepostas.

  • ERROR O contexto do dispositivo não é válido.

  • NULLREGION Nova região de recorte está vazia.

  • SIMPLEREGION A nova região de recorte não tem bordas sobrepostas.

Remarks

GDI clipa toda a saída subsequente para caber dentro do novo limite. A largura e a altura não devem exceder 32.767.

CDC::InvertRect

Inverte o conteúdo do retângulo dado.

void InvertRect(LPCRECT lpRect);

Parameters

lpRect
Aponta para um RECT que contém as coordenadas lógicas do retângulo a ser invertido. Você também pode passar um CRect objeto para esse parâmetro.

Remarks

A inversão é uma operação lógica NOT e inverte os bits de cada pixel. Em monitores monocromáticos, a função torna os pixels brancos pretos e os pixels pretos brancos. Em monitores coloridos, a inversão depende de como as cores são geradas para o display. Chamar InvertRect duas vezes com o mesmo retângulo restaura a exibição às cores anteriores.

Se o retângulo estiver vazio, nada é desenhado.

Example

void CDCView::DoInvertRect(CDC *pDC)
{
   // invert rect from 20,20 to 50,50
   CRect rect(20, 20, 50, 50);
   pDC->InvertRect(rect);

   // inverting again restores to normal
   ::Sleep(1000);
   pDC->InvertRect(rect);
}

CDC::InvertRgn

Inverte as cores na região especificada por pRgn.

BOOL InvertRgn(CRgn* pRgn);

Parameters

pRgn
Identifica a região a ser invertida. As coordenadas para a região são especificadas em unidades lógicas.

Return Value

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

Remarks

Em monitores monocromáticos, a função torna os pixels brancos pretos e os pixels pretos brancos. Em monitores coloridos, a inversão depende de como as cores são geradas para o display.

CDC::IsPrinting

Determina se o contexto do dispositivo está sendo usado para impressão.

BOOL IsPrinting() const;

Return Value

Diferente de zero se o CDC objeto for um DC de impressora; caso contrário, 0.

CDC::LineTo

Desenha uma linha da posição atual até, mas não incluindo, o ponto especificado por x e y (ou point).

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parameters

x
Especifica a coordenada x lógica do ponto de extremidade para a linha.

y
Especifica a coordenada y lógica do ponto de extremidade para a linha.

point
Especifica o ponto de extremidade para a linha. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

Diferente de zero se a linha for desenhada; caso contrário, 0.

Remarks

A linha é desenhada com a caneta selecionada. A posição atual é definida como x, y ou como point.

Example

Veja o exemplo para CRect::CenterPoint.

CDC::LPtoDP

Converte unidades lógicas em unidades de dispositivo.

void LPtoDP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void LPtoDP(LPRECT lpRect) const;
void LPtoDP(LPSIZE lpSize) const;

Parameters

lpPoints
Aponta para uma matriz de pontos. Cada ponto na matriz é uma POINT estrutura ou um CPoint objeto.

nCount
O número de pontos na matriz.

lpRect
Aponta para uma RECT estrutura ou um CRect objeto. Este parâmetro é usado para o caso comum de mapeamento de um retângulo de unidades lógicas para unidades de dispositivo.

lpSize
Aponta para uma SIZE estrutura ou um CSize objeto.

Remarks

A função mapeia as coordenadas de cada ponto, ou dimensões de um tamanho, do sistema de coordenadas lógicas do GDI para um sistema de coordenadas do dispositivo. A conversão depende do modo de mapeamento atual e das configurações das origens e extensões da janela e do visor do dispositivo.

As coordenadas x e y dos pontos são inteiros assinados de 2 bytes no intervalo de -32.768 a 32.767. Nos casos em que o modo de mapeamento resultaria em valores maiores do que esses limites, o sistema define os valores para -32.768 e 32.767, respectivamente.

CDC::LPtoHIMETRIC

Chame essa função para converter unidades lógicas em HIMETRIC unidades.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parameters

lpSize
Aponta para uma SIZE estrutura ou um CSize objeto.

Remarks

Use essa função quando você der HIMETRIC tamanhos para OLE, convertendo a partir do modo de mapeamento natural do seu aplicativo. As extensões da janela e do visor do dispositivo afetarão o resultado.

A conversão é realizada primeiro convertendo as unidades lógicas em pixels usando as unidades de mapeamento atuais do contexto do dispositivo e, em seguida, convertendo essas unidades em HIMETRIC unidades.

CDC::m_hAttribDC

O contexto do dispositivo de atributo para este CDC objeto.

HDC m_hAttribDC;

Remarks

Por padrão, esse contexto de dispositivo é igual a m_hDC. Em geral, CDC as chamadas GDI que solicitam informações do contexto do dispositivo são direcionadas para m_hAttribDC. Consulte a descrição da CDC classe para obter mais informações sobre o uso desses dois contextos de dispositivo.

CDC::m_hDC

O contexto do dispositivo de saída para este CDC objeto.

HDC m_hDC;

Remarks

Por padrão, m_hDC é igual a m_hAttribDC, o outro contexto de dispositivo encapsulado por CDC. Em geral, CDC as chamadas GDI que criam saída vão para o contexto do m_hDC dispositivo. Você pode inicializar m_hDC e m_hAttribDC apontar para diferentes dispositivos. Consulte a descrição da CDC classe para obter mais informações sobre o uso desses dois contextos de dispositivo.

CDC::MaskBlt

Combina os dados de cor para os bitmaps de origem e destino usando a máscara e a operação raster fornecidas.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

Parameters

x
Especifica a coordenada x lógica do canto superior esquerdo do retângulo de destino.

y
Especifica a coordenada y lógica do canto superior esquerdo do retângulo de destino.

nWidth
Especifica a largura, em unidades lógicas, do retângulo de destino e do bitmap de origem.

nHeight
Especifica a altura, em unidades lógicas, do retângulo de destino e do bitmap de origem.

pSrcDC
Identifica o contexto do dispositivo do qual o bitmap deve ser copiado. Deve ser zero se o dwRop parâmetro especificar uma operação raster que não inclua uma fonte.

xSrc
Especifica a coordenada x lógica do canto superior esquerdo do bitmap de origem.

ySrc
Especifica a coordenada y lógica do canto superior esquerdo do bitmap de origem.

maskBitmap
Identifica o bitmap de máscara monocromática combinado com o bitmap de cor no contexto do dispositivo de origem.

xMask
Especifica o deslocamento horizontal de pixel para o bitmap de máscara especificado pelo maskBitmap parâmetro.

yMask
Especifica o deslocamento vertical de pixel para o bitmap de máscara especificado pelo maskBitmap parâmetro.

dwRop
Especifica os códigos de operação raster ternária em primeiro plano e em segundo plano, que a função usa para controlar a combinação de dados de origem e destino. O código de operação raster em segundo plano é armazenado no byte alto da palavra alta desse valor; o código de operação raster em primeiro plano é armazenado no byte baixo da palavra alta deste valor; A palavra baixa desse valor é ignorada e deve ser zero. A macro MAKEROP4 cria essas combinações de códigos de operação raster em primeiro plano e em segundo plano. Consulte a seção Comentários para uma discussão de primeiro plano e antecedentes no contexto desta função. Consulte a BitBlt função de membro para obter uma lista de códigos de operação raster comuns.

Return Value

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

Remarks

Um valor de 1 na máscara especificada por maskBitmap indica que o código de operação raster de primeiro plano especificado por dwRop deve ser aplicado nesse local. Um valor de 0 na máscara indica que o código de operação raster em segundo plano especificado por dwRop deve ser aplicado nesse local. Se as operações de raster exigirem uma fonte, o retângulo da máscara deve cobrir o retângulo da fonte. Se isso não acontecer, a função falhará. Se as operações raster não exigirem uma origem, o retângulo da máscara deverá cobrir o retângulo de destino. Se isso não acontecer, a função falhará.

Se uma transformação de rotação ou cisalhamento estiver em vigor para o contexto do dispositivo de origem quando essa função for chamada, ocorrerá um erro. No entanto, são permitidos outros tipos de transformações.

Se os formatos de cor dos bitmaps de origem, padrão e destino diferirem, essa função converte o padrão ou o formato de origem, ou ambos, para corresponder ao formato de destino. Se o bitmap de máscara não for um bitmap monocromático, ocorrerá um erro. Quando um metarquivo avançado está sendo gravado, ocorre um erro (e a função retorna 0) se o contexto do dispositivo de origem identificar um contexto de dispositivo de metarquivo avançado. Nem todos os dispositivos suportam MaskBlt. Um aplicativo deve ligar GetDeviceCaps para determinar se um dispositivo suporta essa função. Se nenhum bitmap de máscara for fornecido, essa função se comportará exatamente como BitBlt, usando o código de operação raster em primeiro plano. Os deslocamentos de pixel no mapa de bitmap de máscara para o ponto (0,0) no bitmap do contexto do dispositivo de origem. Isso é útil para casos em que um bitmap de máscara contém um conjunto de máscaras; Um aplicativo pode facilmente aplicar qualquer um deles a uma tarefa de blitting de máscara ajustando os deslocamentos de pixel e os tamanhos de retângulo enviados para MaskBlt.

CDC::ModifyWorldTransform

Altera a transformação do mundo para um contexto de dispositivo usando o modo especificado.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

Parameters

rXform
Referência a uma XFORM estrutura usada para modificar a transformação do mundo para o contexto de determinado dispositivo.

iMode
Especifica como os dados de transformação modificam a transformação mundial atual. Para obter uma lista dos valores que esse parâmetro pode ter, consulte ModifyWorldTransform.

Return Value

Devolve um valor diferente de zero no êxito.

Retorna 0 em caso de falha.

Para obter informações de erro estendidas, ligue para GetLastError.

Remarks

Este método encapsula a função ModifyWorldTransformGDI do Windows .

CDC::MoveTo

Move a posição atual para o ponto especificado por x e y (ou por point).

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parameters

x
Especifica a coordenada x lógica da nova posição.

y
Especifica a coordenada y lógica da nova posição.

point
Especifica a nova posição. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

As coordenadas x e y da posição anterior como um CPoint objeto.

Example

Veja o exemplo para CRect::CenterPoint.

CDC::OffsetClipRgn

Move a região de recorte do contexto do dispositivo pelos deslocamentos especificados.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parameters

x
Especifica o número de unidades lógicas a serem movidas para a esquerda ou para a direita.

y
Especifica o número de unidades lógicas a serem movidas para cima ou para baixo.

size
Especifica o valor a ser compensado.

Return Value

O novo tipo de região. Pode ser qualquer um dos seguintes valores:

  • COMPLEXREGION A região de recorte tem bordas sobrepostas.

  • ERROR O contexto do dispositivo não é válido.

  • NULLREGION A região de recorte está vazia.

  • SIMPLEREGION A região de recorte não tem bordas sobrepostas.

Remarks

A função move as unidades de região x ao longo do eixo x e y as unidades ao longo do eixo y.

CDC::OffsetViewportOrg

Modifica as coordenadas da origem do visor em relação às coordenadas da origem do visor atual.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parameters

nWidth
Especifica o número de unidades de dispositivo a serem adicionadas à coordenada x da origem atual.

nHeight
Especifica o número de unidades de dispositivo a serem adicionadas à coordenada y da origem atual.

Return Value

A origem anterior do visor (em coordenadas do dispositivo) como um CPoint objeto.

CDC::OffsetWindowOrg

Modifica as coordenadas da origem da janela em relação às coordenadas da origem da janela atual.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parameters

nWidth
Especifica o número de unidades lógicas a serem adicionadas à coordenada x da origem atual.

nHeight
Especifica o número de unidades lógicas a serem adicionadas à coordenada y da origem atual.

Return Value

A origem da janela anterior (em coordenadas lógicas) como um CPoint objeto.

CDC::operator HDC

Use este operador para recuperar o identificador de contexto do dispositivo do CDC objeto.

operator HDC() const;

Return Value

Se bem-sucedido, o identificador do objeto de contexto do dispositivo; caso contrário, NULL.

Remarks

Você pode usar o identificador para chamar APIs do Windows diretamente.

CDC::PaintRgn

Preenche a região especificada pRgn usando o pincel atual.

BOOL PaintRgn(CRgn* pRgn);

Parameters

pRgn
Identifica a região a ser preenchida. As coordenadas para a região dada são especificadas em unidades lógicas.

Return Value

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

CDC::PatBlt

Cria um padrão de bits no dispositivo.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parameters

x
Especifica a coordenada x lógica do canto superior esquerdo do retângulo que deve receber o padrão.

y
Especifica a coordenada y lógica do canto superior esquerdo do retângulo que deve receber o padrão.

nWidth
Especifica a largura (em unidades lógicas) do retângulo que deve receber o padrão.

nHeight
Especifica a altura (em unidades lógicas) do retângulo que deve receber o padrão.

dwRop
Especifica o código de operação de raster. Os códigos de operação raster (ROPs) definem como o GDI combina cores em operações de saída que envolvem um pincel atual, um possível bitmap de origem e um bitmap de destino. Este parâmetro pode ser um dos seguintes valores:

  • PATCOPY Copia o padrão para o bitmap de destino.

  • PATINVERT Combina o bitmap de destino com o padrão usando o operador Boolean XOR (^).

  • DSTINVERT Inverte o bitmap de destino.

  • BLACKNESS Torna toda a saída preta.

  • WHITENESS Torna toda a saída branca.

Return Value

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

Remarks

O padrão é uma combinação do pincel selecionado e o padrão já existente no dispositivo. O código de operação raster-especificado por dwRop define como os padrões devem ser combinados. As operações raster listadas para esta função são um subconjunto limitado dos 256 códigos de operação ternários completos; Em particular, um código de operação de raster que se refere a uma fonte não pode ser usado.

Nem todos os contextos de dispositivo suportam a PatBlt função. Para determinar se um contexto de dispositivo suporta PatBlt, chame a GetDeviceCaps função de membro com o RASTERCAPS índice e verifique o valor de retorno para o RC_BITBLT sinalizador.

CDC::Pie

Desenha uma cunha em forma de torta desenhando um arco elíptico cujo centro e dois pontos finais são unidos por linhas.

BOOL Pie(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Pie(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Especifica a coordenada x do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

y1
Especifica a coordenada y do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

x2
Especifica a coordenada x do canto inferior direito do retângulo delimitador (em unidades lógicas).

y2
Especifica a coordenada y do canto inferior direito do retângulo delimitador (em unidades lógicas).

x3
Especifica a coordenada x do ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

y3
Especifica a coordenada y do ponto inicial do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

x4
Especifica a coordenada x do ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

y4
Especifica a coordenada y do ponto final do arco (em unidades lógicas). Este ponto não precisa estar exatamente no arco.

lpRect
Especifica o retângulo delimitador. Você pode passar um CRect objeto ou um ponteiro para uma RECT estrutura para esse parâmetro.

ptStart
Especifica o ponto inicial do arco. Este ponto não precisa estar exatamente no arco. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

ptEnd
Especifica o ponto de extremidade do arco. Este ponto não precisa estar exatamente no arco. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

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

Remarks

O centro do arco é o centro do retângulo delimitador especificado por x1, y1, x2, e y2 (ou por lpRect). Os pontos inicial e final do arco são especificados por x3, y3, x4, e y4 (ou por ptStart e ptEnd).

O arco é desenhado com a caneta selecionada, movendo-se no sentido anti-horário. Mais duas linhas são desenhadas de cada ponto final para o centro do arco. A área em forma de torta é preenchida com o pincel atual. Se x3 for x4 igual e igual y4, o resultado é uma elipse y3 com uma única linha do centro da elipse até o ponto (x3, y3) ou (x4, y4).

A figura desenhada por esta função estende-se até, mas não inclui as coordenadas direita e inferior. Isto significa que a altura da figura é y2 - y1 e a largura da figura é .x2 - x1 Tanto a largura como a altura do retângulo delimitador devem ser superiores a 2 unidades e inferiores a 32.767 unidades.

Example

void CDCView::DrawPie(CDC *pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::PlayMetaFile

Reproduz o conteúdo do metarquivo especificado no contexto do dispositivo.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parameters

hMF
Identifica o metarquivo a ser reproduzido.

hEnhMetaFile
Identifica o metarquivo avançado.

lpBounds
Aponta para uma RECT estrutura ou um CRect objeto que contém as coordenadas do retângulo delimitador usado para exibir a imagem. As coordenadas são especificadas em unidades lógicas.

Return Value

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

Remarks

O metaficheiro pode ser reproduzido qualquer número de vezes.

A segunda versão do PlayMetaFile exibe a imagem armazenada no metaarquivo de formato aprimorado fornecido. Quando um aplicativo chama a segunda versão do , o Windows usa o quadro de PlayMetaFileimagem no cabeçalho do metarquivo aprimorado para mapear a imagem no retângulo apontado pelo parâmetro lpBounds . (Esta imagem pode ser cortada ou girada definindo a transformação do mundo no dispositivo de saída antes de chamar PlayMetaFile.) Pontos ao longo das bordas do retângulo são incluídos na imagem. Uma imagem de metarquivo aprimorado pode ser cortada definindo a região de recorte no dispositivo de saída antes de reproduzir o metarquivo aprimorado.

Se um metarquivo avançado contiver uma paleta opcional, um aplicativo poderá obter cores consistentes configurando uma paleta de cores no dispositivo de saída antes de chamar a segunda versão do PlayMetaFile. Para recuperar a paleta opcional, use a GetEnhMetaFilePaletteEntries função Windows. Um metarquivo aprimorado pode ser incorporado em um metarquivo aprimorado recém-criado chamando a segunda versão e reproduzindo o metarquivo aprimorado de PlayMetaFile origem no contexto do dispositivo para o novo metarquivo avançado.

Os estados do contexto do dispositivo de saída são preservados por esta função. Qualquer objeto criado, mas não excluído no metarquivo aprimorado, é excluído por esta função. Para parar essa função, um aplicativo pode chamar a CancelDC função do Windows de outro thread para encerrar a operação. Nesse caso, a função retorna zero.

CDC::PlgBlt

Executa uma transferência de bloco de bits dos bits de dados de cor do retângulo especificado no contexto do dispositivo de origem para o paralelogramo especificado no contexto do dispositivo determinado.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parameters

lpPoint
Aponta para uma matriz de três pontos no espaço lógico que identifica três cantos do paralelograma de destino. O canto superior esquerdo do retângulo de origem é mapeado para o primeiro ponto desta matriz, o canto superior direito para o segundo ponto desta matriz e o canto inferior esquerdo para o terceiro ponto. O canto inferior direito do retângulo de origem é mapeado para o quarto ponto implícito no paralelograma.

pSrcDC
Identifica o contexto do dispositivo de origem.

xSrc
Especifica a coordenada x, em unidades lógicas, do canto superior esquerdo do retângulo de origem.

ySrc
Especifica a coordenada y, em unidades lógicas, do canto superior esquerdo do retângulo de origem.

nWidth
Especifica a largura, em unidades lógicas, do retângulo de origem.

nHeight
Especifica a altura, em unidades lógicas, do retângulo de origem.

maskBitmap
Identifica um bitmap monocromático opcional que é usado para mascarar as cores do retângulo de origem.

xMask
Especifica a coordenada x do canto superior esquerdo do bitmap monocromático.

yMask
Especifica a coordenada y do canto superior esquerdo do bitmap monocromático.

Return Value

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

Remarks

Se o identificador de máscara de bits fornecido identificar um bitmap monocromático válido, a função usará esse bitmap para mascarar os bits de dados de cor do retângulo de origem.

O quarto vértice do paralelogramo (D) é definido tratando os três primeiros pontos (A, B e C) como vetores e calculando D = B + C - A.

Se a máscara de bits existir, um valor de 1 na máscara indica que a cor do pixel de origem deve ser copiada para o destino. Um valor de 0 na máscara indica que a cor do pixel de destino não deve ser alterada.

Se o retângulo da máscara for menor que os retângulos de origem e destino, a função replicará o padrão da máscara.

Transformações de escala, tradução e reflexão são permitidas no contexto do dispositivo de origem; no entanto, as transformações de rotação e cisalhamento não são. Se o bitmap de máscara não for um bitmap monocromático, ocorrerá um erro. O modo de alongamento para o contexto do dispositivo de destino é usado para determinar como esticar ou compactar os pixels, se necessário. Quando um metarquivo avançado está sendo gravado, ocorre um erro se o contexto do dispositivo de origem identificar um contexto de dispositivo de metarquivo aprimorado.

As coordenadas de destino são transformadas de acordo com o contexto do dispositivo de destino; As coordenadas de origem são transformadas de acordo com o contexto do dispositivo de origem. Se a transformação de origem tiver uma rotação ou cisalhamento, um erro será retornado. Se os retângulos de destino e de origem não tiverem o mesmo formato de cor, PlgBlt converte o retângulo de origem para corresponder ao retângulo de destino. Nem todos os dispositivos suportam PlgBlt. Para obter mais informações, consulte a descrição do RC_BITBLT recurso raster na CDC::GetDeviceCaps função de membro.

Se os contextos do dispositivo de origem e de destino representarem dispositivos incompatíveis, PlgBlt retornará um erro.

CDC::PolyBezier

Desenha uma ou mais estrias de Bzier.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de estruturas de dados que contêm os pontos de POINT extremidade e pontos de controle do(s) spline(s).

nCount
Especifica o número de pontos na lpPoints matriz. Esse valor deve ser mais de três vezes o número de splines a serem desenhadas, porque cada spline de Bzier requer dois pontos de controle e um ponto de extremidade, e a spline inicial requer outro ponto de partida.

Return Value

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

Remarks

Esta função desenha splines cúbicas lpPoints de Bzier usando os pontos finais e pontos de controle especificados pelo parâmetro. A primeira spline é desenhada do primeiro ao quarto ponto usando o segundo e terceiro pontos como pontos de controle. Cada spline subsequente na sequência precisa exatamente de mais três pontos: o ponto final da spline anterior é usado como ponto de partida, os próximos dois pontos na sequência são pontos de controle e o terceiro é o ponto final.

A posição atual não é usada ou atualizada pela PolyBezier função. O número não está preenchido. Esta função desenha linhas usando a caneta atual.

CDC::PolyBezierTo

Desenha uma ou mais estrias de Bzier.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de estruturas de dados que contém os pontos de extremidade e pontos de POINT controle.

nCount
Especifica o número de pontos na lpPoints matriz. Esse valor deve ser três vezes o número de splines a serem desenhadas, porque cada spline de Bzier requer dois pontos de controle e um ponto final.

Return Value

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

Remarks

Esta função desenha splines Bzier cúbicas lpPoints usando os pontos de controle especificados pelo parâmetro. A primeira spline é desenhada da posição atual para o terceiro ponto usando os dois primeiros pontos como pontos de controle. Para cada spline subsequente, a função precisa exatamente de mais três pontos e usa o ponto final da spline anterior como o ponto de partida para a próxima. PolyBezierTo move a posição atual para o ponto final da última spline de Bzier. O número não está preenchido. Esta função desenha linhas usando a caneta atual.

Example

Veja o exemplo para CDC::BeginPath.

CDC::PolyDraw

Desenha um conjunto de segmentos de linha e splines de Bzier.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de estruturas de dados que contém os pontos de extremidade para cada segmento de linha e os pontos de POINT extremidade e pontos de controle para cada spline Bzier.

lpTypes
Aponta para uma matriz que especifica como cada ponto da lpPoints matriz é usado. Os valores podem ser um dos seguintes:

  • PT_MOVETO Especifica que este ponto inicia uma figura separada. Este ponto torna-se a nova posição atual.

  • PT_LINETO Especifica que uma linha deve ser traçada da posição atual até este ponto, que então se torna a nova posição atual.

  • PT_BEZIERTO Especifica que este ponto é um ponto de controle ou ponto final para um spline Bzier.

PT_BEZIERTO os tipos ocorrem sempre em conjuntos de três. A posição atual define o ponto de partida para a spline de Bzier. Os dois PT_BEZIERTO primeiros pontos são os pontos de controle, e o terceiro PT_BEZIERTO ponto é o ponto final. O ponto final torna-se a nova posição atual. Se não houver três pontos consecutivos PT_BEZIERTO , ocorre um erro.

Um PT_LINETO ou PT_BEZIERTO tipo pode ser combinado com a seguinte constante usando o operador bit a bit OR para indicar que o ponto correspondente é o último ponto de uma figura e a figura está fechada:

  • PT_CLOSEFIGURE Especifica que a figura é fechada automaticamente após a conclusão do PT_LINETOPT_BEZIERTO ou tipo para este ponto. Uma linha é traçada deste ponto para o mais recente PT_MOVETO ou MoveTo ponto.

    Esse sinalizador é combinado com o PT_LINETO tipo de uma linha, ou com o PT_BEZIERTO tipo de ponto final para uma spline Bzier, usando o operador bit a bit OR . A posição atual é definida como o ponto final da linha de fechamento.

nCount
Especifica o número total de pontos na lpPoints matriz, o mesmo que o número de bytes na lpTypes matriz.

Return Value

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

Remarks

Esta função pode ser usada para desenhar figuras disjuntas em vez de chamadas consecutivas para CDC::MoveTo, CDC::LineToe CDC::PolyBezierTo funções de membro. As linhas e estrias são desenhadas usando a caneta atual e as figuras não são preenchidas. Se houver um caminho ativo iniciado chamando a CDC::BeginPath função de membro, PolyDraw adiciona ao caminho. Os pontos contidos na lpPoints matriz e em lpTypes indicam se cada ponto faz parte de uma CDC::MoveTo, a CDC::LineToou uma CDC::BezierTo operação. Também é possível fechar números. Esta função atualiza a posição atual.

Example

Veja o exemplo para CDC::BeginPath.

CDC::Polygon

Desenha um polígono que consiste em dois ou mais pontos (vértices) conectados por linhas, usando a caneta atual.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de pontos que especifica os vértices do polígono. Cada ponto na matriz é uma POINT estrutura ou um CPoint objeto.

nCount
Especifica o número de vértices na matriz.

Return Value

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

Remarks

O sistema fecha o polígono automaticamente, se necessário, desenhando uma linha do último vértice para o primeiro.

O modo atual de preenchimento de polígonos pode ser recuperado ou definido usando as GetPolyFillMode funções e SetPolyFillMode membro.

Example

void CDCView::DrawPolygon(CDC *pDC)
{
   // find the client area
   CRect rect;
   GetClientRect(rect);

   // draw with a thick blue pen
   CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
   CPen *pOldPen = pDC->SelectObject(&penBlue);

   // and a solid red brush
   CBrush brushRed(RGB(255, 0, 0));
   CBrush *pOldBrush = pDC->SelectObject(&brushRed);

   // Find the midpoints of the top, right, left, and bottom
   // of the client area. They will be the vertices of our polygon.
   CPoint pts[4];
   pts[0].x = rect.left + rect.Width() / 2;
   pts[0].y = rect.top;

   pts[1].x = rect.right;
   pts[1].y = rect.top + rect.Height() / 2;

   pts[2].x = pts[0].x;
   pts[2].y = rect.bottom;

   pts[3].x = rect.left;
   pts[3].y = pts[1].y;

   // Calling Polygon() on that array will draw three lines
   // between the points, as well as an additional line to
   // close the shape--from the last point to the first point
   // we specified.
   pDC->Polygon(pts, 4);

   // Put back the old objects.
   pDC->SelectObject(pOldPen);
   pDC->SelectObject(pOldBrush);
}

CDC::Polyline

Desenha um conjunto de segmentos de linha conectando os pontos especificados por lpPoints.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de POINT estruturas ou CPoint objetos a serem conectados.

nCount
Especifica o número de pontos na matriz. Este valor deve ser pelo menos 2.

Return Value

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

Remarks

As linhas são traçadas desde o primeiro ponto até aos pontos subsequentes utilizando a caneta atual. Ao contrário da LineTo função de membro, a Polyline função não usa ou atualiza a posição atual.

Para obter mais informações, consulte PolyLine no SDK do Windows.

CDC::PolylineTo

Desenha uma ou mais linhas retas.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de estruturas de POINT dados que contém os vértices da linha.

nCount
Especifica o número de pontos na matriz.

Return Value

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

Remarks

Uma linha é traçada da posição atual até o primeiro ponto especificado pelo lpPoints parâmetro usando a caneta atual. Para cada linha adicional, a função desenha do ponto final da linha anterior para o próximo ponto especificado por lpPoints. PolylineTo Move a posição atual para o ponto final da última linha. Se os segmentos de linha desenhados por esta função formarem uma figura fechada, a figura não será preenchida.

CDC::PolyPolygon

Cria dois ou mais polígonos que são preenchidos usando o modo de preenchimento de polígonos atual.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de POINT estruturas ou CPoint objetos que definem os vértices dos polígonos.

lpPolyCounts
Aponta para uma matriz de inteiros, cada um dos quais especifica o número de pontos em um dos polígonos na lpPoints matriz.

nCount
O número de entradas na lpPolyCounts matriz. Este número especifica o número de polígonos a serem desenhados. Este valor deve ser pelo menos 2.

Return Value

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

Remarks

Os polígonos podem estar disjuntos ou sobrepostos.

Cada polígono especificado em uma chamada para a PolyPolygon função deve ser fechado. Ao contrário dos Polygon polígonos criados pela função membro, os polígonos criados por PolyPolygon não são fechados automaticamente.

A função cria dois ou mais polígonos. Para criar um único polígono, um aplicativo deve usar a Polygon função de membro.

O modo atual de preenchimento de polígonos pode ser recuperado ou definido usando as GetPolyFillMode funções e SetPolyFillMode membro.

CDC::PolyPolyline

Desenha várias séries de segmentos de linha conectados.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parameters

lpPoints
Aponta para uma matriz de estruturas que contém os vértices das polilinhas. As polilinhas são especificadas consecutivamente.

lpPolyPoints
Aponta para uma matriz de variáveis especificando o número de pontos na lpPoints matriz para o polígono correspondente. Cada entrada deve ser maior ou igual a 2.

nCount
Especifica o número total de contagens na lpPolyPoints matriz.

Return Value

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

Remarks

Os segmentos de linha são desenhados usando a caneta atual. Os números formados pelos segmentos não são preenchidos. A posição atual não é usada ou atualizada por esta função.

CDC::PtVisible

Determina se o ponto determinado está dentro da região de recorte do contexto do dispositivo.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parameters

x
Especifica a coordenada x lógica do ponto.

y
Especifica a coordenada y lógica do ponto.

point
Especifica o ponto para fazer check-in de coordenadas lógicas. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

Diferente de zero se o ponto especificado estiver dentro da região de corte; caso contrário, 0.

CDC::QueryAbort

Chama a função abort instalada pela SetAbortProc função membro para um aplicativo de impressão e consulta se a impressão deve ser encerrada.

BOOL QueryAbort() const;

Return Value

O valor de retorno é diferente de zero se a impressão deve continuar ou se não houver nenhum procedimento de anulação. É 0 se o trabalho de impressão deve ser encerrado. O valor de retorno é fornecido pela função abort.

CDC::RealizePalette

Mapeia entradas da paleta lógica atual para a paleta do sistema.

UINT RealizePalette();

Return Value

Indica quantas entradas na paleta lógica foram mapeadas para entradas diferentes na paleta do sistema. Isso representa o número de entradas que essa função remapeou para acomodar alterações na paleta do sistema desde que a paleta lógica foi realizada pela última vez.

Remarks

Uma paleta de cores lógica atua como um buffer entre aplicativos com uso intensivo de cores e o sistema, permitindo que um aplicativo use quantas cores forem necessárias sem interferir com suas próprias cores exibidas ou com cores exibidas por outras janelas.

Quando uma janela tem o foco de entrada e chama, RealizePaletteo Windows garante que a janela exibirá todas as cores solicitadas, até o número máximo simultaneamente disponível na tela. O Windows também exibe cores não encontradas na paleta da janela, combinando-as com as cores disponíveis.

Além disso, o Windows corresponde às cores solicitadas por janelas inativas que chamam a função o mais próximo possível das cores disponíveis. Isso reduz significativamente as alterações indesejáveis nas cores exibidas em janelas inativas.

CDC::Rectangle

Desenha um retângulo usando a caneta atual.

BOOL Rectangle(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Rectangle(LPCRECT lpRect);

Parameters

x1
Especifica a coordenada x do canto superior esquerdo do retângulo (em unidades lógicas).

y1
Especifica a coordenada y do canto superior esquerdo do retângulo (em unidades lógicas).

x2
Especifica a coordenada x do canto inferior direito do retângulo (em unidades lógicas).

y2
Especifica a coordenada y do canto inferior direito do retângulo (em unidades lógicas).

lpRect
Especifica o retângulo em unidades lógicas. Você pode passar um CRect objeto ou um ponteiro para uma RECT estrutura para esse parâmetro.

Return Value

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

Remarks

O interior do retângulo é preenchido usando o pincel atual.

O retângulo estende-se até, mas não inclui, as coordenadas direita e inferior. Isto significa que a altura do retângulo é y2 - y1 e a largura do retângulo é .x2 - x1 Tanto a largura como a altura de um retângulo devem ser superiores a 2 unidades e inferiores a 32.767 unidades.

Example

void CDCView::DrawRectangle(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // draw a thick black rectangle filled with blue
   pDC->Rectangle(rect);

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::RectVisible

Determina se qualquer parte do retângulo determinado está dentro da região de recorte do contexto de exibição.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parameters

lpRect
Aponta para uma RECT estrutura ou um CRect objeto que contém as coordenadas lógicas do retângulo especificado.

Return Value

Diferente de zero se qualquer porção do retângulo dado estiver dentro da região de corte; caso contrário, 0.

CDC::ReleaseAttribDC

Chame essa função de membro para definir m_hAttribDC como NULL.

virtual void ReleaseAttribDC();

Remarks

Isso não faz com que ocorra um Detach . Somente o contexto do dispositivo de saída é anexado CDC ao objeto e somente ele pode ser desanexado.

CDC::ReleaseOutputDC

Chame essa função de membro para definir o m_hDC membro como NULL.

virtual void ReleaseOutputDC();

Remarks

Esta função de membro não pode ser chamada quando o contexto do dispositivo de saída é anexado CDC ao objeto. Use a Detach função de membro para desanexar o contexto do dispositivo de saída.

CDC::ResetDC

Chame essa função de membro para atualizar o contexto do dispositivo encapsulado CDC pelo objeto.

BOOL ResetDC(const DEVMODE* lpDevMode);

Parameters

lpDevMode
Um ponteiro para uma estrutura do Windows DEVMODE .

Return Value

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

Remarks

O contexto do dispositivo é atualizado a partir das informações especificadas na estrutura do Windows DEVMODE . Esta função de membro apenas redefine o contexto do dispositivo de atributo.

Um aplicativo normalmente usará a função de membro quando uma janela processa ResetDC uma WM_DEVMODECHANGE mensagem. Você também pode usar essa função de membro para alterar a orientação do papel ou as caixas de papel durante a impressão de um documento.

Não é possível usar essa função de membro para alterar o nome do driver, o nome do dispositivo ou a porta de saída. Quando o usuário altera a conexão da porta ou o nome do dispositivo, você deve excluir o contexto original do dispositivo e criar um novo contexto do dispositivo com as novas informações.

Antes de chamar essa função de membro, você deve garantir que todos os objetos (exceto objetos de estoque) que foram selecionados no contexto do dispositivo foram selecionados.

CDC::RestoreDC

Restaura o contexto do dispositivo para o estado anterior identificado por nSavedDC.

virtual BOOL RestoreDC(int nSavedDC);

Parameters

nSavedDC
Especifica o contexto do dispositivo a ser restaurado. Pode ser um valor retornado por uma chamada de função anterior SaveDC . Se nSavedDC for -1, o contexto do dispositivo salvo mais recentemente será restaurado.

Return Value

Diferente de zero se o contexto especificado foi restaurado; caso contrário, 0.

Remarks

RestoreDC Restaura o contexto do dispositivo exibindo informações de estado de uma pilha criada por chamadas anteriores para a SaveDC função membro.

A pilha pode conter as informações de estado para vários contextos de dispositivo. Se o contexto especificado por nSavedDC não estiver na parte superior da pilha, RestoreDC excluirá todas as informações de estado entre o contexto do dispositivo especificado por nSavedDC e a parte superior da pilha. As informações apagadas são perdidas.

CDC::RoundRect

Desenha um retângulo com cantos arredondados usando a caneta atual.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parameters

x1
Especifica a coordenada x do canto superior esquerdo do retângulo (em unidades lógicas).

y1
Especifica a coordenada y do canto superior esquerdo do retângulo (em unidades lógicas).

x2
Especifica a coordenada x do canto inferior direito do retângulo (em unidades lógicas).

y2
Especifica a coordenada y do canto inferior direito do retângulo (em unidades lógicas).

x3
Especifica a largura da elipse usada para desenhar os cantos arredondados (em unidades lógicas).

y3
Especifica a altura da elipse usada para desenhar os cantos arredondados (em unidades lógicas).

lpRect
Especifica o retângulo delimitador em unidades lógicas. Você pode passar um CRect objeto ou um ponteiro para uma RECT estrutura para esse parâmetro.

point
A coordenada x de especifica a largura da elipse para desenhar os cantos arredondados point (em unidades lógicas). A coordenada y de point especifica a altura da elipse para desenhar os cantos arredondados (em unidades lógicas). Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

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

Remarks

O interior do retângulo é preenchido usando o pincel atual.

A figura que esta função desenha estende-se até, mas não inclui as coordenadas direita e inferior. Isto significa que a altura da figura é y2 - y1 e a largura da figura é .x2 - x1 Tanto a altura como a largura do retângulo delimitador devem ser superiores a 2 unidades e inferiores a 32.767 unidades.

Example

void CDCView::DrawRoundRect(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // Draw a thick black rectangle filled with blue
   // corners rounded at a 17-unit radius. Note that
   // a radius of three or less is not noticeable because
   // the pen is three units wide.
   pDC->RoundRect(rect, CPoint(17, 17));

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::SaveDC

Salva o estado atual do contexto do dispositivo copiando informações de estado (como região de recorte, objetos selecionados e modo de mapeamento) para uma pilha de contexto mantida pelo Windows.

virtual int SaveDC();

Return Value

Um inteiro que identifica o contexto do dispositivo salvo. É 0 se ocorrer um erro. Esse valor de retorno pode ser usado para restaurar o contexto do dispositivo chamando RestoreDC.

Remarks

O contexto do dispositivo salvo pode ser restaurado posteriormente usando RestoreDCo .

SaveDC pode ser usado qualquer número de vezes para salvar qualquer número de estados de contexto do dispositivo.

CDC::ScaleViewportExt

Modifica as extensões do visor em relação aos valores atuais.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameters

xNum
Especifica a quantidade pela qual multiplicar a extensão x atual.

xDenom
Especifica a quantidade pela qual dividir o resultado da multiplicação da extensão x atual pelo valor do xNum parâmetro.

yNum
Especifica a quantidade pela qual multiplicar a extensão y atual.

yDenom
Especifica a quantidade pela qual dividir o resultado da multiplicação da extensão y atual pelo valor do yNum parâmetro.

Return Value

As extensões de viewport anteriores (em unidades de dispositivo) como um CSize objeto.

Remarks

As fórmulas são escritas da seguinte forma:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

As novas extensões do visor são calculadas multiplicando as extensões atuais pelo numerador dado e, em seguida, dividindo pelo denominador dado.

CDC::ScaleWindowExt

Modifica as extensões da janela em relação aos valores atuais.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameters

xNum
Especifica a quantidade pela qual multiplicar a extensão x atual.

xDenom
Especifica a quantidade pela qual dividir o resultado da multiplicação da extensão x atual pelo valor do xNum parâmetro.

yNum
Especifica a quantidade pela qual multiplicar a extensão y atual.

yDenom
Especifica a quantidade pela qual dividir o resultado da multiplicação da extensão y atual pelo valor do yNum parâmetro.

Return Value

A janela anterior se estende (em unidades lógicas) como um CSize objeto.

Remarks

As fórmulas são escritas da seguinte forma:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

As novas extensões de janela são calculadas multiplicando as extensões atuais pelo numerador dado e, em seguida, dividindo pelo denominador dado.

CDC::ScrollDC

Rola um retângulo de bits horizontal e verticalmente.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parameters

dx
Especifica o número de unidades de rolagem horizontal.

dy
Especifica o número de unidades de rolagem verticais.

lpRectScroll
Aponta para a RECT estrutura ou CRect objeto que contém as coordenadas do retângulo de rolagem.

lpRectClip
Aponta para a RECT estrutura ou CRect objeto que contém as coordenadas do retângulo de recorte. Quando este retângulo é menor do que o original apontado por lpRectScroll, a rolagem ocorre apenas no retângulo menor.

pRgnUpdate
Identifica a região descoberta pelo processo de rolagem. A ScrollDC função define essa região, não é necessariamente um retângulo.

lpRectUpdate
Aponta para a RECT estrutura ou CRect objeto que recebe as coordenadas do retângulo que limita a região de atualização de rolagem. Esta é a maior área retangular que requer repintura. Os valores na estrutura ou objeto quando a função retorna estão em coordenadas de cliente, independentemente do modo de mapeamento para o contexto de determinado dispositivo.

Return Value

Diferente de zero se a rolagem for executada; caso contrário, 0.

Remarks

Se lpRectUpdate for NULL, o Windows não calcula o retângulo de atualização. Se ambos pRgnUpdate e lpRectUpdate forem NULL, o Windows não calculará a região de atualização. Se pRgnUpdate não NULLestiver, o Windows assume que contém um ponteiro válido para a região descoberta pelo processo de rolagem (definido pela ScrollDC função membro). A região de atualização retornada pode lpRectUpdate ser passada para CWnd::InvalidateRgn , se necessário.

Um aplicativo deve usar a ScrollWindow função de membro da classe CWnd quando é necessário rolar toda a área do cliente de uma janela. Caso contrário, deve usar ScrollDC.

CDC::SelectClipPath

Seleciona o caminho atual como uma região de recorte para o contexto do dispositivo, combinando a nova região com qualquer região de recorte existente usando o modo especificado.

BOOL SelectClipPath(int nMode);

Parameters

nMode
Especifica a maneira de usar o caminho. São permitidos os seguintes valores:

  • RGN_AND A nova região de recorte inclui a interseção (áreas sobrepostas) da região de recorte atual e o caminho atual.

  • RGN_COPY A nova região de recorte é o caminho atual.

  • RGN_DIFF A nova região de recorte inclui as áreas da região de recorte atual e as do caminho atual são excluídas.

  • RGN_OR A nova região de recorte inclui a união (áreas combinadas) da região de recorte atual e o caminho atual.

  • RGN_XOR A nova região de recorte inclui a união da região de recorte atual e do caminho atual, mas sem as áreas sobrepostas.

Return Value

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

Remarks

O contexto do dispositivo identificado deve conter um caminho fechado.

CDC::SelectClipRgn

Seleciona a região dada como a região de recorte atual para o contexto do dispositivo.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parameters

pRgn
Identifica a região a ser selecionada.

  • Para a primeira versão desta função, se esse valor for NULL, toda a área do cliente será selecionada e a saída ainda será cortada para a janela.

  • Para a segunda versão desta função, este identificador pode ser NULL apenas quando o RGN_COPY modo é especificado.

nMode
Especifica a operação a ser executada. Deve ser um dos seguintes valores:

  • RGN_AND A nova região de recorte combina as áreas sobrepostas da região de recorte atual e a região identificada por pRgn.

  • RGN_COPY A nova região de recorte é uma cópia da região identificada por pRgn. Esta funcionalidade é idêntica à primeira versão do SelectClipRgn. Se a região identificada por pRgn for NULL, a nova região de recorte se tornará a região de recorte padrão (uma região nula).

  • RGN_DIFF A nova região de clipping combina as áreas da região de clipping atual com as áreas excluídas da região identificada pela pRgn.

  • RGN_OR A nova região de recorte combina a região de recorte atual e a região identificada por pRgn.

  • RGN_XOR A nova região de recorte combina a região de recorte atual e a região identificada por pRgn , mas exclui quaisquer áreas sobrepostas.

Return Value

O tipo da região. Pode ser qualquer um dos seguintes valores:

  • COMPLEXREGION Nova região de recorte tem bordas sobrepostas.

  • ERROR O contexto ou a região do dispositivo não são válidos.

  • NULLREGION Nova região de recorte está vazia.

  • SIMPLEREGION A nova região de recorte não tem bordas sobrepostas.

Remarks

Apenas uma cópia da região selecionada é usada. A região em si pode ser selecionada para qualquer número de outros contextos de dispositivo, ou pode ser excluída.

A função assume que as coordenadas para a região dada são especificadas em unidades de dispositivo. Alguns dispositivos de impressora suportam saída de texto em uma resolução mais alta do que a saída gráfica, a fim de manter a precisão necessária para expressar métricas de texto. Esses dispositivos relatam unidades de dispositivo na resolução mais alta, ou seja, em unidades de texto. Em seguida, esses dispositivos dimensionam coordenadas para gráficos para que várias unidades de dispositivo relatadas sejam mapeadas para apenas 1 unidade gráfica. Você deve sempre chamar a SelectClipRgn função usando unidades de texto.

Os aplicativos que devem usar o dimensionamento de objetos gráficos no GDI podem usar o GETSCALINGFACTOR escape da impressora para determinar o fator de dimensionamento. Esse fator de dimensionamento afeta o clipping. Se uma região for usada para recortar gráficos, o GDI dividirá as coordenadas pelo fator de escala. Se a região for usada para cortar texto, o GDI não fará nenhum ajuste de escala. Um fator de escala de 1 faz com que as coordenadas sejam divididas por 2; um fator de escala de 2 faz com que as coordenadas sejam divididas por 4; e assim por diante.

CDC::SelectObject

Seleciona um objeto no contexto do dispositivo.

CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);

Parameters

pPen
Um ponteiro para um CPen objeto a ser selecionado.

pBrush
Um ponteiro para um CBrush objeto a ser selecionado.

pFont
Um ponteiro para um CFont objeto a ser selecionado.

pBitmap
Um ponteiro para um CBitmap objeto a ser selecionado.

pRgn
Um ponteiro para um CRgn objeto a ser selecionado.

pObject
Um ponteiro para um CGdiObject objeto a ser selecionado.

Return Value

Um ponteiro para o objeto que está sendo substituído. Este é um ponteiro para um objeto de uma das classes derivadas de CGdiObject, como CPen, dependendo de qual versão da função é usada. O valor de retorno é NULL se houver um erro. Esta função pode retornar um ponteiro para um objeto temporário. Este objeto temporário só é válido durante o processamento de uma mensagem do Windows. Para obter mais informações, consulte CGdiObject::FromHandle.

A versão da função de membro que usa um parâmetro de região executa a mesma tarefa que a SelectClipRgn função de membro. Seu valor de retorno pode ser qualquer um dos seguintes:

  • COMPLEXREGION Nova região de recorte tem bordas sobrepostas.

  • ERROR O contexto ou a região do dispositivo não são válidos.

  • NULLREGION Nova região de recorte está vazia.

  • SIMPLEREGION A nova região de recorte não tem bordas sobrepostas.

Remarks

Class CDC fornece cinco versões especializadas para tipos específicos de objetos GDI, incluindo canetas, pincéis, fontes, bitmaps e regiões. O objeto recém-selecionado substitui o objeto anterior do mesmo tipo. Por exemplo, se pObject da versão geral de SelectObject aponta para um CPen objeto, a função substitui a caneta atual pela caneta especificada por pObject.

Um aplicativo pode selecionar um bitmap somente em contextos de dispositivo de memória e em apenas um contexto de dispositivo de memória de cada vez. O formato do bitmap deve ser monocromático ou compatível com o contexto do dispositivo; se não estiver, SelectObject retorna um erro.

Para o Windows 3.1 e posterior, a SelectObject função retorna o mesmo valor, seja ela usada em um metarquivo ou não. Em versões anteriores do Windows, SelectObject retornava um valor diferente de zero para êxito e 0 para falha quando era usado em um metarquivo.

CDC::SelectPalette

Seleciona a paleta lógica especificada como pPalette o objeto de paleta selecionado do contexto do dispositivo.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parameters

pPalette
Identifica a paleta lógica a ser selecionada. Esta paleta já deve ter sido criada com a CPalette função CreatePalettede membro.

bForceBackground
Especifica se a paleta lógica é forçada a ser uma paleta de plano de fundo. Se bForceBackground for diferente de zero, a paleta selecionada será sempre uma paleta de plano de fundo, independentemente de a janela ter o foco de entrada. Se bForceBackground for 0 e o contexto do dispositivo estiver anexado a uma janela, a paleta lógica será uma paleta de primeiro plano quando a janela tiver o foco de entrada.

Return Value

Um ponteiro para um CPalette objeto que identifica a paleta lógica substituída pela paleta especificada por pPalette. É NULL se houver um erro.

Remarks

A nova paleta torna-se o objeto de paleta usado pelo GDI para controlar as cores exibidas no contexto do dispositivo e substitui a paleta anterior.

Um aplicativo pode selecionar uma paleta lógica em mais de um contexto de dispositivo. No entanto, as alterações em uma paleta lógica afetarão todos os contextos de dispositivo para os quais ela foi selecionada. Se um aplicativo selecionar uma paleta em mais de um contexto de dispositivo, os contextos de dispositivo deverão pertencer todos ao mesmo dispositivo físico.

CDC::SelectStockObject

Seleciona um CGdiObject objeto que corresponde a uma das canetas, pincéis ou fontes predefinidas.

virtual CGdiObject* SelectStockObject(int nIndex);

Parameters

nIndex
Especifica o tipo de objeto de estoque desejado. Pode ser um dos seguintes valores:

  • BLACK_BRUSH Pincel preto.

  • DKGRAY_BRUSH Pincel cinza escuro.

  • GRAY_BRUSH Pincel cinzento.

  • HOLLOW_BRUSH Escova oca.

  • LTGRAY_BRUSH Pincel cinza claro.

  • NULL_BRUSH Pincel nulo.

  • WHITE_BRUSH Pincel branco.

  • BLACK_PEN Caneta preta.

  • NULL_PEN Caneta nula.

  • WHITE_PEN Caneta branca.

  • ANSI_FIXED_FONT Fonte fixa do sistema ANSI.

  • ANSI_VAR_FONT Fonte variável do sistema ANSI.

  • DEVICE_DEFAULT_FONT Fonte dependente do dispositivo.

  • OEM_FIXED_FONT Fonte fixa dependente de OEM.

  • SYSTEM_FONT A fonte do sistema. Por padrão, o Windows usa a fonte do sistema para desenhar menus, controles de caixa de diálogo e outro texto. É melhor, no entanto, não confiar para SYSTEM_FONT obter a fonte usada por caixas de diálogo e janelas. Em vez disso, use a SystemParametersInfo função com o SPI_GETNONCLIENTMETRICS parâmetro para recuperar a fonte atual. SystemParametersInfo leva em conta o tema atual e fornece informações de fonte para legendas, menus e caixas de diálogo de mensagem.

  • SYSTEM_FIXED_FONT A fonte do sistema de largura fixa usada no Windows antes da versão 3.0. Este objeto está disponível para compatibilidade com versões anteriores do Windows.

  • DEFAULT_PALETTE Paleta de cores padrão. Esta paleta consiste nas 20 cores estáticas na paleta do sistema.

Return Value

Um ponteiro para o CGdiObject objeto que foi substituído se a função for bem-sucedida. O objeto real apontado é um CPen, CBrushou CFont objeto. Se a chamada não for bem-sucedida, o valor de retorno será NULL.

CDC::SetAbortProc

Instala o procedimento de anulação para o trabalho de impressão.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parameters

lpfn
Um ponteiro para a função abortar a ser instalada como o procedimento abortar. Para obter mais informações sobre a função de retorno de chamada, consulte Função de retorno de chamada para CDC::SetAbortProc.

Return Value

Especifica o SetAbortProc resultado da função. Alguns dos seguintes valores são mais prováveis do que outros, mas todos são possíveis.

  • SP_ERROR Erro geral.

  • SP_OUTOFDISK Não há espaço em disco suficiente atualmente disponível para spooling, e não haverá mais espaço disponível.

  • SP_OUTOFMEMORY Não há memória suficiente disponível para spooling.

  • SP_USERABORT O utilizador terminou o trabalho através do Gestor de Impressão.

Remarks

Se um aplicativo permitir que o trabalho de impressão seja cancelado durante o spooling, ele deverá definir a função abortar antes que o trabalho de impressão seja iniciado com a StartDoc função membro. O Gerenciador de Impressão chama a função abortar durante o spooling para permitir que o aplicativo cancele o trabalho de impressão ou processe condições de falta de espaço em disco. Se nenhuma função abortar for definida, o trabalho de impressão falhará se não houver espaço em disco suficiente para spooling.

Os recursos do Microsoft Visual C++ simplificam a criação da função de retorno de chamada passada para SetAbortProc. O endereço passado para a EnumObjects função de membro é um ponteiro para uma função exportada com __declspec(dllexport) e com a __stdcall convenção de chamada.

Também não é necessário exportar o nome da função em uma EXPORTS instrução no arquivo de definição de módulo do aplicativo. Em vez disso, você pode usar o modificador de EXPORT função, como em

BOOL CALLBACK EXPORT AFunction( HDC, int );

para fazer com que o compilador emita o registro de exportação adequado para exportação por nome sem aliasing. Isso funciona para a maioria das necessidades. Para alguns casos especiais, como exportar uma função por ordinal ou aliasing a exportação, você ainda precisa usar uma EXPORTS instrução em um arquivo de definição de módulo.

As interfaces de registro de retorno de chamada agora são seguras para digitação (você deve passar um ponteiro de função que aponte para o tipo certo de função para o retorno de chamada específico).

Todas as funções de retorno de chamada devem intercetar exceções do Microsoft Foundation antes de retornar ao Windows, já que as exceções não podem ser lançadas entre os limites de retorno de chamada. Para obter mais informações sobre exceções, consulte o artigo Exceções.

CDC::SetArcDirection

Define a direção do desenho a ser usada para as funções de arco e retângulo.

int SetArcDirection(int nArcDirection);

Parameters

nArcDirection
Especifica a nova direção do arco. Este parâmetro pode ser um dos seguintes valores:

  • AD_COUNTERCLOCKWISE Figuras desenhadas no sentido anti-horário.

  • AD_CLOCKWISE Figuras desenhadas no sentido horário.

Return Value

Especifica a direção do arco antigo, se bem-sucedida; caso contrário, 0.

Remarks

A direção padrão é no sentido anti-horário. A SetArcDirection função especifica a direção na qual as seguintes funções desenham:

Arc Pie
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Chame essa função para definir o contexto do dispositivo de atributo, m_hAttribDC.

virtual void SetAttribDC(HDC hDC);

Parameters

hDC
Um contexto de dispositivo Windows.

Remarks

Esta função de membro não anexa o contexto do dispositivo ao CDC objeto. Somente o contexto do dispositivo de saída é anexado a um CDC objeto.

CDC::SetBkColor

Define a cor de plano de fundo atual como a cor especificada.

virtual COLORREF SetBkColor(COLORREF crColor);

Parameters

crColor
Especifica a nova cor do plano de fundo.

Return Value

A cor de plano de fundo anterior como um valor de cor RGB. Se ocorrer um erro, o valor de retorno será 0x80000000.

Remarks

Se o modo de plano de fundo for OPAQUE, o sistema usará a cor do plano de fundo para preencher as lacunas nas linhas estilizadas, as lacunas entre as linhas hachuradas nos pincéis e o plano de fundo nas células de caracteres. O sistema também usa a cor de fundo ao converter bitmaps entre cores e contextos de dispositivos monocromáticos.

Se o dispositivo não puder exibir a cor especificada, o sistema definirá a cor de plano de fundo para a cor física mais próxima.

CDC::SetBkMode

Define o modo de plano de fundo.

int SetBkMode(int nBkMode);

Parameters

nBkMode
Especifica o modo a ser definido. Este parâmetro pode ser um dos seguintes valores:

  • OPAQUE O plano de fundo é preenchido com a cor de fundo atual antes que o texto, o pincel echourado ou a caneta sejam desenhados. Este é o modo de plano de fundo padrão.

  • TRANSPARENT O plano de fundo não é alterado antes do desenho.

Return Value

O modo de plano de fundo anterior.

Remarks

O modo de plano de fundo define se o sistema remove as cores de plano de fundo existentes na superfície de desenho antes de desenhar texto, pincéis com hachura ou qualquer estilo de caneta que não seja uma linha sólida.

Example

Veja o exemplo para CWnd::OnCtlColor.

CDC::SetBoundsRect

Controla o acúmulo de informações de retângulo delimitador para o contexto de dispositivo especificado.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parameters

lpRectBounds
Aponta para uma RECT estrutura ou CRect objeto usado para definir o retângulo delimitador. As dimensões do retângulo são dadas em coordenadas lógicas. Este parâmetro pode ser NULL.

flags
Especifica como o novo retângulo será combinado com o retângulo acumulado. Este parâmetro pode ser uma combinação dos seguintes valores:

  • DCB_ACCUMULATE Adicione o retângulo especificado por lpRectBounds ao retângulo delimitador (usando uma operação de união de retângulo).

  • DCB_DISABLE Desative a acumulação de limites.

  • DCB_ENABLE Ative a acumulação de limites. (A configuração padrão para acumulação de limites está desabilitada.)

Return Value

O estado atual do retângulo delimitador, se a função for bem-sucedida. Como flags, o valor de retorno pode ser uma combinação de DCB_ valores:

  • DCB_ACCUMULATE O retângulo delimitador não está vazio. Este valor será sempre definido.

  • DCB_DISABLE A acumulação de limites está desativada.

  • DCB_ENABLE A acumulação de limites está ativada.

Remarks

O Windows pode manter um retângulo delimitador para todas as operações de desenho. Este retângulo pode ser consultado e redefinido pelo aplicativo. Os limites de desenho são úteis para invalidar caches de bitmap.

CDC::SetBrushOrg

Especifica a origem que o GDI atribuirá ao próximo pincel que o aplicativo seleciona no contexto do dispositivo.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parameters

x
Especifica a coordenada x (em unidades de dispositivo) da nova origem. Esse valor deve estar no intervalo de 0 a 7.

y
Especifica a coordenada y (em unidades de dispositivo) da nova origem. Esse valor deve estar no intervalo de 0 a 7.

point
Especifica as coordenadas x e y da nova origem. Cada valor deve estar no intervalo de 0 a 7. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

A origem anterior da escova em unidades de dispositivo.

Remarks

As coordenadas padrão para a origem do pincel são (0, 0). Para alterar a origem de um pincel, chame a UnrealizeObject função para o CBrush objeto, chame SetBrushOrge, em seguida, chame a SelectObject função de membro para selecionar o pincel no contexto do dispositivo.

Não use SetBrushOrg com objetos de estoque CBrush .

CDC::SetColorAdjustment

Define os valores de ajuste de cor para o contexto do dispositivo usando os valores especificados.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parameters

lpColorAdjust
Aponta para uma estrutura de COLORADJUSTMENT dados que contém os valores de ajuste de cor.

Return Value

Diferente de zero se for bem-sucedido; caso contrário, 0.

Remarks

Os valores de ajuste de cor são usados para ajustar a cor de entrada do bitmap de origem para chamadas para a função de membro quando HALFTONE o CDC::StretchBlt modo é definido.

CDC::SetDCBrushColor

Define a cor do pincel do contexto atual do dispositivo (DC) como o valor de cor especificado.

COLORREF SetDCBrushColor(COLORREF crColor);

Parameters

crColor
Especifica a nova cor do pincel.

Return Value

Se a função for bem-sucedida, o valor de retorno especifica a cor do pincel DC anterior como um COLORREF valor.

Se a função falhar, o valor de retorno é CLR_INVALID.

Remarks

Este método emula a funcionalidade da função SetDCBrushColor, conforme descrito no SDK do Windows.

CDC::SetDCPenColor

Define a cor da caneta de contexto de dispositivo (DC) atual para o valor de cor especificado.

COLORREF SetDCPenColor(COLORREF crColor);

Parameters

crColor
Especifica a nova cor da caneta.

Return Value

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

Remarks

Esta função de membro utiliza a função SetDCPenColorWin32 , conforme descrito no SDK do Windows.

CDC::SetGraphicsMode

Define o modo gráfico para o contexto de dispositivo especificado.

int SetGraphicsMode(int iMode);

Parameters

iMode
Especifica o modo gráfico. Para obter uma lista dos valores que esse parâmetro pode ter, consulte SetGraphicsMode.

Return Value

Retorna o modo gráfico antigo em caso de êxito.

Retorna 0 em caso de falha. Para obter informações de erro estendidas, ligue para GetLastError.

Remarks

Este método encapsula a função SetGraphicsModeGDI do Windows .

CDC::SetLayout

Chame essa função de membro para alterar o layout do texto e dos gráficos de um contexto de dispositivo da direita para a esquerda, o layout padrão para culturas como árabe e hebraico.

DWORD SetLayout(DWORD dwLayout);

Parameters

dwLayout
Layout de contexto do dispositivo e sinalizadores de controle de bitmap. Pode ser uma combinação dos seguintes valores.

Value Meaning
LAYOUT_BITMAPORIENTATIONPRESERVED Desativa qualquer reflexão para chamadas para CDC::BitBlt e CDC::StretchBlt.
LAYOUT_RTL Define o layout horizontal padrão como da direita para a esquerda.
LAYOUT_LTR Define o layout padrão como sendo da esquerda para a direita.

Return Value

Se for bem-sucedido, o layout anterior do contexto do dispositivo.

Se não tiver êxito, GDI_ERROR. Para obter informações de erro estendidas, ligue para GetLastError.

Remarks

Normalmente, você não chamaria SetLayout por uma janela. Em vez disso, você controla o layout da direita para a esquerda em uma janela definindo os estilos de janela estendida , como WS_EX_RTLREADING. Um contexto de dispositivo, como uma impressora ou um metarquivo, não herda esse layout. A única maneira de definir o contexto do dispositivo para um layout da direita para a esquerda é chamando SetLayout.

Se você chamar SetLayout(LAYOUT_RTL), SetLayout alterará automaticamente o modo de mapeamento para MM_ISOTROPIC. Como resultado, uma chamada subsequente para GetMapMode retornará MM_ISOTROPIC em vez de MM_TEXT.

Em alguns casos, como com muitos bitmaps, convém preservar o layout da esquerda para a direita. Nesses casos, renderize a imagem chamando BitBlt ou StretchBlte, em seguida, defina o sinalizador de controle de bitmap para dwLayoutLAYOUT_BITMAPORIENTATIONPRESERVED.

Depois de alterar o layout com o LAYOUT_RTL sinalizador, os sinalizadores que normalmente especificam direita ou esquerda são invertidos. Para evitar confusão, convém definir nomes alternativos para os sinalizadores padrão. Para obter uma lista de nomes de sinalizadores alternativos sugeridos, consulte SetLayout no SDK do Windows.

CDC::SetMapMode

Define o modo de mapeamento.

virtual int SetMapMode(int nMapMode);

Parameters

nMapMode
Especifica o novo modo de mapeamento. Pode ser qualquer um dos seguintes valores:

  • MM_ANISOTROPIC As unidades lógicas são convertidas em unidades arbitrárias com eixos dimensionados arbitrariamente. Definir o modo de mapeamento como MM_ANISOTROPIC não altera as configurações atuais da janela ou do visor. Para alterar as unidades, a orientação e o dimensionamento, chame as SetWindowExt funções e SetViewportExt membro.

  • MM_HIENGLISH Cada unidade lógica é convertida em 0,001 polegada. Positivo x está à direita; positivo y está em alta.

  • MM_HIMETRIC Cada unidade lógica é convertida para 0,01 milímetro. Positivo x está à direita; positivo y está em alta.

  • MM_ISOTROPIC As unidades lógicas são convertidas em unidades arbitrárias com eixos igualmente dimensionados; ou seja, 1 unidade ao longo do eixo x é igual a 1 unidade ao longo do eixo y. Use as SetWindowExt funções e SetViewportExt membro para especificar as unidades desejadas e a orientação dos eixos. A GDI faz os ajustes necessários para garantir que as unidades x e y permaneçam do mesmo tamanho.

  • MM_LOENGLISH Cada unidade lógica é convertida em 0,01 polegada. Positivo x está à direita; positivo y está em alta.

  • MM_LOMETRIC Cada unidade lógica é convertida em 0,1 milímetro. Positivo x está à direita; positivo y está em alta.

  • MM_TEXT Cada unidade lógica é convertida em 1 pixel de dispositivo. Positivo x está à direita; positivo y está em baixa.

  • MM_TWIPS Cada unidade lógica é convertida em 1/20 de um ponto. (Como um ponto é de 1/72 polegada, um twip é de 1/1440 polegada.) Positivo x está à direita; positivo y está em alta.

Return Value

O modo de mapeamento anterior.

Remarks

O modo de mapeamento define a unidade de medida usada para converter unidades lógicas em unidades de dispositivo; Também define a orientação dos eixos X e Y do dispositivo. GDI usa o modo de mapeamento para converter coordenadas lógicas nas coordenadas apropriadas do dispositivo. O MM_TEXT modo permite que os aplicativos funcionem em pixels do dispositivo, onde 1 unidade é igual a 1 pixel. O tamanho físico de um pixel varia de dispositivo para dispositivo.

Os MM_HIENGLISHmodos , MM_HIMETRIC, MM_LOENGLISH, MM_LOMETRIC, e são MM_TWIPS úteis para aplicações que devem desenhar unidades fisicamente significativas (como polegadas ou milímetros). O MM_ISOTROPIC modo garante uma proporção de 1:1, o que é útil quando é importante preservar a forma exata de uma imagem. O MM_ANISOTROPIC modo permite que as coordenadas x e y sejam ajustadas de forma independente.

Note

Se você ligar SetLayout para alterar o DC (contexto do dispositivo) para o layout da direita para a esquerda, SetLayout alterará automaticamente o modo de mapeamento para MM_ISOTROPIC.

Example

Veja o exemplo para CView::OnPrepareDC.

CDC::SetMapperFlags

Altera o método usado pelo mapeador de fontes quando ele converte uma fonte lógica em uma fonte física.

DWORD SetMapperFlags(DWORD dwFlag);

Parameters

dwFlag
Especifica se o mapeador de fontes tenta corresponder o aspeto, a altura e a largura de uma fonte ao dispositivo. Quando esse valor é ASPECT_FILTERING, o mapeador seleciona apenas fontes cujo aspeto x e aspeto y correspondem exatamente aos do dispositivo especificado.

Return Value

O valor anterior do sinalizador do mapeador de fontes.

Remarks

Um aplicativo pode usar SetMapperFlags para fazer com que o mapeador de fontes tente escolher apenas uma fonte física que corresponda exatamente à proporção do dispositivo especificado.

Um aplicativo que usa apenas fontes raster pode usar a SetMapperFlags função para garantir que a fonte selecionada pelo mapeador de fontes seja atraente e legível no dispositivo especificado. Os aplicativos que usam fontes escaláveis (TrueType) normalmente não usam SetMapperFlagso .

Se nenhuma fonte física tiver uma proporção que corresponda à especificação na fonte lógica, o GDI escolhe uma nova proporção e seleciona uma fonte que corresponde a essa nova proporção.

CDC::SetMiterLimit

Define o limite para o comprimento das junções de mitra para o contexto do dispositivo.

BOOL SetMiterLimit(float fMiterLimit);

Parameters

fMiterLimit
Especifica o novo limite de mitra para o contexto do dispositivo.

Return Value

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

Remarks

O comprimento da esquadria é definido como a distância entre a intersecção das paredes da linha no interior da junção e a intersecção das paredes da linha na parte externa da junção. O limite de esquadria é a relação máxima permitida entre o comprimento da esquadria e a largura da linha. O limite de mitra padrão é 10.0.

CDC::SetOutputDC

Chame essa função de membro para definir o contexto do dispositivo de saída, m_hDC.

virtual void SetOutputDC(HDC hDC);

Parameters

hDC
Um contexto de dispositivo Windows.

Remarks

Essa função de membro só pode ser chamada quando um contexto de dispositivo não foi anexado CDC ao objeto. Esta função de membro define m_hDC , mas não anexa o contexto do dispositivo ao CDC objeto.

CDC::SetPixel

Define o pixel no ponto especificado para a aproximação mais próxima da cor especificada por crColor.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parameters

x
Especifica a coordenada x lógica do ponto a ser definido.

y
Especifica a coordenada y lógica do ponto a ser definido.

crColor
Um COLORREF valor RGB que especifica a cor usada para pintar o ponto. Consulte COLORREF no SDK do Windows para obter uma descrição desse valor.

point
Especifica as coordenadas lógicas x e y do ponto a ser definido. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

Um valor RGB para a cor que o ponto está pintado. Esse valor pode ser diferente daquele especificado por crColor se uma aproximação dessa cor for usada. Se a função falhar (se o ponto estiver fora da região de corte), o valor de retorno será -1.

Remarks

O ponto deve estar na região de recorte. Se o ponto não estiver na região de recorte, a função não fará nada.

Nem todos os dispositivos suportam a SetPixel função. Para determinar se um dispositivo suporta SetPixel, chame a GetDeviceCaps função de membro com o RASTERCAPS índice e verifique o valor de retorno para o RC_BITBLT sinalizador.

CDC::SetPixelV

Define o pixel nas coordenadas especificadas para a aproximação mais próxima da cor especificada.

BOOL SetPixelV(
    int x,
    int y,
    COLORREF crColor);

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parameters

x
Especifica a coordenada x, em unidades lógicas, do ponto a ser definido.

y
Especifica a coordenada y, em unidades lógicas, do ponto a ser definido.

crColor
Especifica a cor a ser usada para pintar o ponto.

point
Especifica as coordenadas lógicas x e y do ponto a ser definido. Você pode passar uma POINT estrutura de dados ou um CPoint objeto para esse parâmetro.

Return Value

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

Remarks

O ponto deve estar na região de corte e na parte visível da superfície do dispositivo. Nem todos os dispositivos suportam a função de membro. Para obter mais informações, consulte o RC_BITBLTCDC::GetDeviceCaps recurso na função de membro. SetPixelV é mais rápido do que SetPixel porque não precisa retornar o valor de cor do ponto pintado.

CDC::SetPolyFillMode

Define o modo de preenchimento de polígonos.

int SetPolyFillMode(int nPolyFillMode);

Parameters

nPolyFillMode
Especifica o novo modo de preenchimento. Esse valor pode ser um ou ALTERNATEWINDING. O modo padrão definido no Windows é ALTERNATE.

Return Value

O modo de enchimento anterior, se bem-sucedido; caso contrário, 0.

Remarks

Quando o modo de preenchimento de polígonos é ALTERNATE, o sistema preenche a área entre os lados do polígono ímpar e par em cada linha de varredura. Ou seja, o sistema preenche a área entre o primeiro e o segundo lado, entre o terceiro e o quarto lado, e assim por diante. Este é o modo predefinido.

Quando o modo de preenchimento de polígonos é WINDING, o sistema usa a direção em que uma figura foi desenhada para determinar se uma área deve ser preenchida. Cada segmento de linha em um polígono é desenhado no sentido horário ou anti-horário. Sempre que uma linha imaginária desenhada de uma área fechada para o exterior de uma figura passa por um segmento de linha no sentido horário, uma contagem é incrementada. Quando a linha passa por um segmento de linha no sentido anti-horário, a contagem é diminuída. A área é preenchida se a contagem for diferente de zero quando a linha atingir a parte externa da figura.

CDC::SetROP2

Define o modo de desenho atual.

int SetROP2(int nDrawMode);

Parameters

nDrawMode
Especifica o novo modo de desenho. Pode ser qualquer um dos seguintes valores:

  • R2_BLACK O pixel é sempre preto.

  • R2_WHITE O pixel é sempre branco.

  • R2_NOP O pixel permanece inalterado.

  • R2_NOT Pixel é o inverso da cor da tela.

  • R2_COPYPEN Pixel é a cor da caneta.

  • R2_NOTCOPYPEN Pixel é o inverso da cor da caneta.

  • R2_MERGEPENNOT Pixel é uma combinação da cor da caneta e o inverso da cor da tela (pixel final = (~ pixel da tela) | caneta).

  • R2_MASKPENNOT Pixel é uma combinação das cores comuns à caneta e ao inverso da tela (pixel final = (~ pixel da tela) & caneta).

  • R2_MERGENOTPEN Pixel é uma combinação da cor da tela e o inverso da cor da caneta (pixel final = (~ caneta) | pixel da tela).

  • R2_MASKNOTPEN Pixel é uma combinação das cores comuns à tela e ao inverso da caneta (pixel final = (~ caneta) & pixel da tela).

  • R2_MERGEPEN Pixel é uma combinação da cor da caneta e da cor da tela (pixel final = pixel da tela da caneta | ).

  • R2_NOTMERGEPEN Pixel é o inverso R2_MERGEPEN da cor (pixel final = ~ (pixel da tela da caneta | )).

  • R2_MASKPEN Pixel é uma combinação das cores comuns à caneta e à tela (pixel final = pixel da tela da caneta & ).

  • R2_NOTMASKPEN Pixel é o inverso R2_MASKPEN da cor (pixel final = ~ (pixel da tela da caneta & )).

  • R2_XORPEN Pixel é uma combinação das cores que estão na caneta ou na tela, mas não em ambos (pixel final = pixel da tela da caneta ^ ).

  • R2_NOTXORPEN Pixel é o inverso R2_XORPEN da cor (pixel final = ~ (pixel da tela da caneta ^ )).

Return Value

O modo de desenho anterior.

Pode ser qualquer um dos valores fornecidos no SDK do Windows.

Remarks

O modo de desenho especifica como as cores da caneta e o interior dos objetos preenchidos são combinados com a cor já na superfície de exibição.

O modo de desenho é apenas para dispositivos raster; não se aplica a dispositivos vetoriais. Os modos de desenho são códigos binários de operação raster-que representam todas as combinações booleanas possíveis de duas variáveis, usando os operadores &binários , |, e ^ (exclusivo |) e a operação ~unária .

CDC::SetStretchBltMode

Define o modo de alongamento de bitmap para a StretchBlt função de membro.

int SetStretchBltMode(int nStretchMode);

Parameters

nStretchMode
Especifica o modo de alongamento. Pode ser qualquer um dos seguintes valores:

Value Description
BLACKONWHITE Executa uma operação booleana & usando os valores de cor para os pixels eliminados e existentes. Se o bitmap for um bitmap monocromático, esse modo preservará pixels pretos em detrimento de pixels brancos.
COLORONCOLOR Exclui os pixels. Este modo exclui todas as linhas eliminadas de pixels sem tentar preservar suas informações.
HALFTONE Mapeia pixels do retângulo de origem em blocos de pixels no retângulo de destino. A cor média sobre o bloco de destino de pixels se aproxima da cor dos pixels de origem.
Depois de definir o HALFTONE modo de alongamento, um aplicativo deve chamar a função SetBrushOrgEx Win32 para definir a origem do pincel. Se não o fizer, ocorre um desalinhamento do pincel.
STRETCH_ANDSCANS Windows 95/98: O mesmo que BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: O mesmo que COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: O mesmo que HALFTONE.
STRETCH_ORSCANS Windows 95/98: O mesmo que WHITEONBLACK
WHITEONBLACK Executa uma operação booleana | usando os valores de cor para os pixels eliminados e existentes. Se o bitmap for um bitmap monocromático, esse modo preservará pixels brancos em detrimento de pixels pretos.

Return Value

O modo de alongamento anterior. Pode ser STRETCH_ANDSCANS, STRETCH_DELETESCANSou STRETCH_ORSCANS.

Remarks

O modo de alongamento de bitmap define como as informações são removidas de bitmaps que são compactados usando a função.

Os BLACKONWHITEmodos (STRETCH_ANDSCANS) e WHITEONBLACK(STRETCH_ORSCANS) são normalmente usados para preservar pixels de primeiro plano em bitmaps monocromáticos. O COLORONCOLORmodo (STRETCH_DELETESCANS) é normalmente usado para preservar a cor em bitmaps de cores.

O HALFTONE modo requer mais processamento da imagem de origem do que os outros três modos, é mais lento do que os outros, mas produz imagens de maior qualidade. Além disso, SetBrushOrgEx deve ser chamado depois de definir o modo para evitar o desalinhamento da HALFTONE escova.

Mais modos de alongamento também podem estar disponíveis, dependendo dos recursos do driver de dispositivo.

CDC::SetTextAlign

Define os sinalizadores de alinhamento de texto.

UINT SetTextAlign(UINT nFlags);

Parameters

nFlags
Especifica sinalizadores de alinhamento de texto. Os sinalizadores especificam a relação entre um ponto e um retângulo que limita o texto. O ponto pode ser a posição atual ou as coordenadas especificadas por uma função de saída de texto. O retângulo que limita o texto é definido pelas células de caracteres adjacentes na cadeia de texto. O nFlags parâmetro pode ser um ou mais sinalizadores das três categorias a seguir. Escolha apenas uma bandeira de cada categoria. A primeira categoria afeta o alinhamento do texto na direção x:

  • TA_CENTER Alinha o ponto com o centro horizontal do retângulo delimitador.

  • TA_LEFT Alinha o ponto com o lado esquerdo do retângulo delimitador. Esta é a configuração padrão.

  • TA_RIGHT Alinha o ponto com o lado direito do retângulo delimitador.

A segunda categoria afeta o alinhamento do texto na direção y:

  • TA_BASELINE Alinha o ponto com a linha de base da fonte escolhida.

  • TA_BOTTOM Alinha o ponto com a parte inferior do retângulo delimitador.

  • TA_TOP Alinha o ponto com a parte superior do retângulo delimitador. Esta é a configuração padrão.

A terceira categoria determina se a posição atual é atualizada quando o texto é escrito:

  • TA_NOUPDATECP Não atualiza a posição atual após cada chamada para uma função de saída de texto. Esta é a configuração padrão.

  • TA_UPDATECP Atualiza a posição x atual após cada chamada para uma função de saída de texto. A nova posição está no lado direito do retângulo delimitador do texto. Quando esse sinalizador é definido, as coordenadas especificadas nas chamadas para a TextOut função de membro são ignoradas.

Return Value

A configuração de alinhamento de texto anterior, se bem-sucedida. O byte de ordem baixa contém a configuração horizontal e o byte de ordem alta contém a configuração vertical; caso contrário, 0.

Remarks

As TextOut funções e ExtTextOut membro usam esses sinalizadores ao posicionar uma cadeia de caracteres de texto em um monitor ou dispositivo. Os sinalizadores especificam a relação entre um ponto específico e um retângulo que limita o texto. As coordenadas deste ponto são passadas como parâmetros para a TextOut função membro. O retângulo que limita o texto é formado pelas células de caracteres adjacentes na cadeia de texto.

CDC::SetTextCharacterExtra

Define a quantidade de espaçamento entre caracteres.

int SetTextCharacterExtra(int nCharExtra);

Parameters

nCharExtra
Especifica a quantidade de espaço extra (em unidades lógicas) a ser adicionada a cada caractere. Se o modo de mapeamento atual não MM_TEXTfor , nCharExtra será transformado e arredondado para o pixel mais próximo.

Return Value

A quantidade do espaçamento entre caracteres anterior.

Remarks

O GDI adiciona esse espaçamento a cada caractere, incluindo caracteres de quebra, quando grava uma linha de texto no contexto do dispositivo. O valor padrão para a quantidade de espaçamento entre caracteres é 0.

CDC::SetTextColor

Define a cor do texto como a cor especificada.

virtual COLORREF SetTextColor(COLORREF crColor);

Parameters

crColor
Especifica a cor do texto como um valor de cor RGB.

Return Value

Um valor RGB para a cor do texto anterior.

Remarks

O sistema usa essa cor de texto ao escrever texto para este contexto de dispositivo e também ao converter bitmaps entre contextos de dispositivo de cor e monocromáticos.

Se o dispositivo não puder representar a cor especificada, o sistema define a cor do texto para a cor física mais próxima. A cor de SetBkColor plano de fundo de um caractere é especificada pelas funções e SetBkMode membro.

Example

Veja o exemplo para CWnd::OnCtlColor.

CDC::SetTextJustification

Adiciona espaço aos caracteres de quebra em uma cadeia de caracteres.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parameters

nBreakExtra
Especifica o espaço extra total a ser adicionado à linha de texto (em unidades lógicas). Se o modo de mapeamento atual não MM_TEXTfor , o valor fornecido por este parâmetro é convertido para o modo de mapeamento atual e arredondado para a unidade de dispositivo mais próxima.

nBreakCount
Especifica o número de caracteres de quebra na linha.

Return Value

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

Remarks

Um aplicativo pode usar as GetTextMetrics funções de membro para recuperar o caractere de quebra de uma fonte.

Depois que a SetTextJustification função de membro é chamada, uma chamada para uma função de saída de texto (como TextOut) distribui o espaço extra especificado uniformemente entre o número especificado de caracteres de quebra. O caractere de quebra é geralmente o caractere de espaço (ASCII 32), mas pode ser definido por uma fonte como algum outro caractere.

A função GetTextExtent de membro é normalmente usada com SetTextJustification. GetTextExtent Calcula a largura de uma determinada linha antes do alinhamento. Um aplicativo pode determinar quanto espaço especificar no nBreakExtra parâmetro subtraindo o valor retornado da GetTextExtent largura da cadeia de caracteres após o alinhamento.

A SetTextJustification função pode ser usada para alinhar uma linha que contém várias execuções em fontes diferentes. Neste caso, a linha deve ser criada de forma fragmentada, alinhando e escrevendo cada execução separadamente.

Como erros de arredondamento podem ocorrer durante o alinhamento, o sistema mantém um termo de erro em execução que define o erro atual. Ao alinhar uma linha que contém várias execuções, GetTextExtent usa automaticamente esse termo de erro quando calcula a extensão da próxima execução. Isso permite que a função de saída de texto misture o erro na nova execução.

Depois que cada linha tiver sido alinhada, esse termo de erro deve ser limpo para evitar que seja incorporado à próxima linha. O termo pode ser limpo chamando SetTextJustification com nBreakExtra definido como 0.

CDC::SetViewportExt

Define as extensões x e y do visor do contexto do dispositivo.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parameters

cx
Especifica a extensão x do visor (em unidades de dispositivo).

cy
Especifica a extensão y do visor (em unidades de dispositivo).

size
Especifica as extensões x e y da janela de visualização (em unidades de dispositivo).

Return Value

As extensões anteriores do visor como um CSize objeto. Quando ocorre um erro, as coordenadas x e y do objeto retornado CSize são definidas como 0.

Remarks

O visor, juntamente com a janela de contexto do dispositivo, define como o GDI mapeia pontos no sistema de coordenadas lógicas para pontos no sistema de coordenadas do dispositivo real. Em outras palavras, eles definem como o GDI converte coordenadas lógicas em coordenadas de dispositivo.

Quando os seguintes modos de mapeamento são definidos, as chamadas são SetWindowExtSetViewportExt ignoradas:

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

Quando MM_ISOTROPIC o modo é definido, um aplicativo deve chamar a SetWindowExt função de membro antes de chamar SetViewportExt.

Example

Veja o exemplo para CView::OnPrepareDC.

CDC::SetViewportOrg

Define a origem do visor do contexto do dispositivo.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parameters

x
Especifica a coordenada x (em unidades de dispositivo) da origem do visor. O valor deve estar dentro do intervalo do sistema de coordenadas do dispositivo.

y
Especifica a coordenada y (em unidades de dispositivo) da origem do visor. O valor deve estar dentro do intervalo do sistema de coordenadas do dispositivo.

point
Especifica a origem do visor. Os valores devem estar dentro do intervalo do sistema de coordenadas do dispositivo. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

A origem anterior do visor (em coordenadas do dispositivo) como um CPoint objeto.

Remarks

O visor, juntamente com a janela de contexto do dispositivo, define como o GDI mapeia pontos no sistema de coordenadas lógicas para pontos no sistema de coordenadas do dispositivo real. Em outras palavras, eles definem como o GDI converte coordenadas lógicas em coordenadas de dispositivo.

A origem do visor marca o ponto no sistema de coordenadas do dispositivo para o qual o GDI mapeia a origem da janela, um ponto no sistema de coordenadas lógicas especificado pela SetWindowOrg função membro. O GDI mapeia todos os outros pontos seguindo o mesmo processo necessário para mapear a origem da janela para a origem do visor. Por exemplo, todos os pontos em um círculo ao redor do ponto na origem da janela estarão em um círculo ao redor do ponto na origem do visor. Da mesma forma, todos os pontos em uma linha que passa pela origem da janela estarão em uma linha que passa pela origem do visor.

Example

Veja o exemplo para CView::OnPrepareDC.

CDC::SetWindowExt

Define as extensões x e y da janela associada ao contexto do dispositivo.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parameters

cx
Especifica a extensão x (em unidades lógicas) da janela.

cy
Especifica a extensão y (em unidades lógicas) da janela.

size
Especifica as extensões x e y (em unidades lógicas) da janela.

Return Value

As extensões anteriores da janela (em unidades lógicas) como um CSize objeto. Se ocorrer um erro, as coordenadas x e y do objeto retornado CSize serão definidas como 0.

Remarks

A janela, juntamente com o visor de contexto do dispositivo, define como o GDI mapeia pontos no sistema de coordenadas lógicas para pontos no sistema de coordenadas do dispositivo.

Quando os seguintes modos de mapeamento são definidos, as chamadas SetWindowExt e SetViewportExt as funções são ignoradas:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

Quando MM_ISOTROPIC o modo é definido, um aplicativo deve chamar a função de membro antes de chamar SetViewportExt.SetWindowExt

Example

Veja o exemplo para CView::OnPrepareDC.

CDC::SetWindowOrg

Define a origem da janela do contexto do dispositivo.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parameters

x
Especifica a coordenada x lógica da nova origem da janela.

y
Especifica a coordenada y lógica da nova origem da janela.

point
Especifica as coordenadas lógicas da nova origem da janela. Você pode passar uma POINT estrutura ou um CPoint objeto para esse parâmetro.

Return Value

A origem anterior da janela como um CPoint objeto.

Remarks

A janela, juntamente com o visor de contexto do dispositivo, define como o GDI mapeia pontos no sistema de coordenadas lógicas para pontos no sistema de coordenadas do dispositivo.

A origem da janela marca o ponto no sistema de coordenadas lógicas a partir do qual o GDI mapeia a origem do visor, um ponto no sistema de coordenadas do dispositivo especificado pela SetWindowOrg função. O GDI mapeia todos os outros pontos seguindo o mesmo processo necessário para mapear a origem da janela para a origem do visor. Por exemplo, todos os pontos em um círculo ao redor do ponto na origem da janela estarão em um círculo ao redor do ponto na origem do visor. Da mesma forma, todos os pontos em uma linha que passa pela origem da janela estarão em uma linha que passa pela origem do visor.

CDC::SetWorldTransform

Define uma transformação linear bidimensional entre o espaço do mundo e o espaço da página para o contexto do dispositivo especificado. Essa transformação pode ser usada para dimensionar, girar, cisalhar ou traduzir a saída gráfica.

BOOL SetWorldTransform(const XFORM& rXform);

Parameters

rXform
Referência a uma XFORM estrutura que contém os dados de transformação.

Return Value

Devolve um valor diferente de zero no êxito.

Retorna 0 em caso de falha.

Para obter informações de erro estendidas, ligue para GetLastError.

Remarks

Este método encapsula a função SetWorldTransformGDI do Windows .

CDC::StartDoc

Informa o driver de dispositivo que um novo trabalho de impressão está sendo iniciado e que todas as chamadas subsequentes StartPage e EndPage subsequentes devem ser agrupadas sob o mesmo trabalho até que ocorra uma EndDoc chamada.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parameters

lpDocInfo
Aponta para uma DOCINFO estrutura que contém o nome do arquivo de documento e o nome do arquivo de saída.

lpszDocName
Ponteiro para uma cadeia de caracteres que contém o nome do arquivo de documento.

Return Value

Se a função for bem-sucedida, o valor de retorno será maior que zero. Esse valor é o identificador do trabalho de impressão do documento.

Se a função falhar, o valor de retorno será menor ou igual a zero.

Remarks

Isso garante que documentos com mais de uma página não sejam intercalados com outros trabalhos.

Para Windows versões 3.1 e posteriores, esta função substitui o escape da STARTDOC impressora. O uso dessa função garante que documentos contendo mais de uma página não sejam intercalados com outros trabalhos de impressão.

StartDoc não deve ser usado dentro de metaarquivos.

Example

Este fragmento de código obtém a impressora padrão, abre um trabalho de impressão e spool uma página com "Olá, Mundo!" nele. Como o texto impresso por esse código não é dimensionado para as unidades lógicas da impressora, o texto de saída pode estar em letras tão pequenas que o resultado é ilegível. As funções de dimensionamento CDC, como SetMapMode, SetViewportOrge SetWindowExt, podem ser usadas para corrigir o dimensionamento.

void CDCView::DoStartDoc()
{
   // get the default printer
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();

   // is a default printer set up?
   HDC hdcPrinter = dlg.GetPrinterDC();
   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
   else
   {
      // create a CDC and attach it to the default printer
      CDC dcPrinter;
      dcPrinter.Attach(hdcPrinter);

      // call StartDoc() to begin printing
      DOCINFO docinfo;
      memset(&docinfo, 0, sizeof(docinfo));
      docinfo.cbSize = sizeof(docinfo);
      docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

      // if it fails, complain and exit gracefully
      if (dcPrinter.StartDoc(&docinfo) < 0)
      {
         MessageBox(_T("Printer wouldn't initialize"));
      }
      else
      {
         // start a page
         if (dcPrinter.StartPage() < 0)
         {
            MessageBox(_T("Could not start page"));
            dcPrinter.AbortDoc();
         }
         else
         {
            // actually do some printing
            CGdiObject *pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

            dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

            dcPrinter.EndPage();
            dcPrinter.EndDoc();
            dcPrinter.SelectObject(pOldFont);
         }
      }
   }
}

CDC::StartPage

Chame essa função de membro para preparar o driver da impressora para receber dados.

int StartPage();

Return Value

Maior ou igual a 0 se a função for bem-sucedida, ou um valor negativo se ocorrer um erro.

Remarks

StartPage substitui o NEWFRAME e BANDINFO escapa.

Para obter uma visão geral da sequência de chamadas de impressão, consulte a StartDoc função membro.

O sistema desativa a ResetDC função de membro entre chamadas para StartPage e EndPage.

Example

Veja o exemplo para CDC::StartDoc.

CDC::StretchBlt

Copia um bitmap de um retângulo de origem para um retângulo de destino, esticando ou compactando o bitmap, se necessário, para ajustar as dimensões do retângulo de destino.

BOOL StretchBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    DWORD dwRop);

Parameters

x
Especifica a coordenada x (em unidades lógicas) do canto superior esquerdo do retângulo de destino.

y
Especifica a coordenada y (em unidades lógicas) do canto superior esquerdo do retângulo de destino.

nWidth
Especifica a largura (em unidades lógicas) do retângulo de destino.

nHeight
Especifica a altura (em unidades lógicas) do retângulo de destino.

pSrcDC
Especifica o contexto do dispositivo de origem.

xSrc
Especifica a coordenada x (em unidades lógicas) do canto superior esquerdo do retângulo de origem.

ySrc
Especifica a coordenada y (em unidades lógicas) do canto superior esquerdo do retângulo de origem.

nSrcWidth
Especifica a largura (em unidades lógicas) do retângulo de origem.

nSrcHeight
Especifica a altura (em unidades lógicas) do retângulo de origem.

dwRop
Especifica a operação de raster a ser executada. Os códigos de operação raster definem como o GDI combina cores em operações de saída que envolvem um pincel atual, um possível bitmap de origem e um bitmap de destino. Este parâmetro pode ser um dos seguintes valores:

  • BLACKNESS Torna toda a saída preta.

  • DSTINVERT Inverte o bitmap de destino.

  • MERGECOPY Combina o padrão e o bitmap de origem usando o operador Boolean AND .

  • MERGEPAINT Combina o bitmap de origem invertido com o bitmap de destino usando o operador OR booleano.

  • NOTSRCCOPY Copia o bitmap de origem invertido para o destino.

  • NOTSRCERASE Inverte o resultado da combinação dos bitmaps de destino e origem usando o operador OR booleano.

  • PATCOPY Copia o padrão para o bitmap de destino.

  • PATINVERT Combina o bitmap de destino com o padrão usando o operador XOR booleano.

  • PATPAINT Combina o bitmap de origem invertida com o padrão usando o operador OR booleano. Combina o resultado dessa operação com o bitmap de destino usando o operador OR booleano.

  • SRCAND Combina pixels dos bitmaps de destino e origem usando o operador Boolean AND .

  • SRCCOPY Copia o bitmap de origem para o bitmap de destino.

  • SRCERASE Inverte o bitmap de destino e combina o resultado com o bitmap de origem usando o operador Boolean AND .

  • SRCINVERT Combina pixels dos bitmaps de destino e origem usando o operador XOR booleano.

  • SRCPAINT Combina pixels dos bitmaps de destino e origem usando o operador Boolean OR .

  • WHITENESS Torna toda a saída branca.

Return Value

Diferente de zero se o bitmap for desenhado; caso contrário, 0.

Remarks

A função usa o modo de alongamento do contexto do dispositivo de destino (definido por SetStretchBltMode) para determinar como esticar ou compactar o bitmap.

A StretchBlt função move o bitmap do dispositivo de origem fornecido por pSrcDC para o dispositivo de destino representado pelo objeto de contexto do dispositivo cuja função de membro está sendo chamada. Os xSrcparâmetros , ySrc, nSrcWidth, e nSrcHeight definem o canto superior esquerdo e as dimensões do retângulo de origem. Os xparâmetros , y, nWidth, e nHeight dão o canto superior esquerdo e as dimensões do retângulo de destino. A operação raster especificada por dwRop define como o bitmap de origem e os bits já no dispositivo de destino são combinados.

A StretchBlt função cria uma imagem espelhada de um bitmap se os sinais dos nSrcWidth parâmetros e nWidth ou nSrcHeight e nHeight diferirem. Se nSrcWidth e nWidth tiver sinais diferentes, a função cria uma imagem espelhada do bitmap ao longo do eixo x. Se nSrcHeight e nHeight tiver sinais diferentes, a função cria uma imagem espelhada do bitmap ao longo do eixo y.

A StretchBlt função estende ou compacta o bitmap de origem na memória e, em seguida, copia o resultado para o destino. Se um padrão deve ser mesclado com o resultado, ele não será mesclado até que o bitmap de origem estendido seja copiado para o destino. Se for usado um pincel, é o pincel selecionado no contexto do dispositivo de destino. As coordenadas de destino são transformadas de acordo com o contexto do dispositivo de destino; As coordenadas de origem são transformadas de acordo com o contexto do dispositivo de origem.

Se os bitmaps de destino, origem e padrão não tiverem o mesmo formato de cor, StretchBlt converte os bitmaps de origem e padrão para corresponder aos bitmaps de destino. As cores de primeiro plano e plano de fundo do contexto do dispositivo de destino são usadas na conversão.

Se StretchBlt for necessário converter um bitmap monocromático em cor, ele define bits brancos (1) para a cor de plano de fundo e bits pretos (0) para a cor de primeiro plano. Para converter a cor em monocromático, define pixels que correspondem à cor do plano de fundo como branco (1) e define todos os outros pixels como preto (0). As cores de primeiro plano e plano de fundo do contexto do dispositivo com cor são usadas.

Nem todos os dispositivos suportam a StretchBlt função. Para determinar se um dispositivo suporta StretchBlt, chame a GetDeviceCaps função de membro com o RASTERCAPS índice e verifique o valor de retorno para o RC_STRETCHBLT sinalizador.

CDC::StrokeAndFillPath

Fecha todas as figuras abertas em um caminho, traça o contorno do caminho usando a caneta atual e preenche seu interior usando o pincel atual.

BOOL StrokeAndFillPath();

Return Value

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

Remarks

O contexto do dispositivo deve conter um caminho fechado. A StrokeAndFillPath função de membro tem o mesmo efeito que fechar todas as figuras abertas no caminho e acariciar e preencher o caminho separadamente, exceto que a região preenchida não se sobreporá à região traçada, mesmo que a caneta seja larga.

CDC::StrokePath

Renderiza o caminho especificado usando a caneta atual.

BOOL StrokePath();

Return Value

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

Remarks

O contexto do dispositivo deve conter um caminho fechado.

CDC::TabbedTextOut

Chame essa função de membro para escrever uma cadeia de caracteres no local especificado, expandindo as guias para os valores especificados na matriz de posições de parada de tabulação.

virtual CSize TabbedTextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

CSize TabbedTextOut(
    int x,
    int y,
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

Parameters

x
Especifica a coordenada x lógica do ponto inicial da cadeia de caracteres.

y
Especifica a coordenada y lógica do ponto inicial da cadeia de caracteres.

lpszString
Aponta para a cadeia de caracteres a ser desenhada. Você pode passar um ponteiro para uma matriz de caracteres ou um CString objeto para esse parâmetro.

nCount
Especifica o comprimento da cadeia de caracteres apontada por lpszString.

nTabPositions
Especifica o número de valores na matriz de posições de tabulação.

lpnTabStopPositions
Aponta para uma matriz que contém as posições de tabulação (em unidades lógicas). As paradas de tabulação devem ser ordenadas em ordem crescente; O menor valor x deve ser o primeiro item na matriz.

nTabOrigin
Especifica a coordenada x da posição inicial a partir da qual as guias são expandidas (em unidades lógicas).

str
Um CString objeto que contém os caracteres especificados.

Return Value

As dimensões da cadeia de caracteres (em unidades lógicas) como um CSize objeto.

Remarks

O texto é escrito na fonte selecionada no momento. Se nTabPositions for 0 e lpnTabStopPositions for NULL, as guias serão expandidas para oito vezes a largura média dos caracteres.

Se nTabPositions for 1, as paradas de tabulação são separadas pela distância especificada pelo primeiro valor na lpnTabStopPositions matriz. Se a lpnTabStopPositions matriz contiver mais de um valor, uma parada de tabulação será definida para cada valor na matriz, até o número especificado por nTabPositions. O nTabOrigin parâmetro permite que um aplicativo chame a TabbedTextOut função várias vezes para uma única linha. Se o aplicativo chamar a função mais de uma vez com o nTabOrigin conjunto para o mesmo valor de cada vez, a função expandirá todas as guias relativas à posição especificada por nTabOrigin.

Por padrão, a posição atual não é usada ou atualizada pela função. Se um aplicativo precisar atualizar a posição atual quando chamar a função, o aplicativo poderá chamar a SetTextAlign função membro com nFlags definido como TA_UPDATECP. Quando esse sinalizador é definido, o Windows ignora os x parâmetros e y em chamadas subsequentes para TabbedTextOut, usando a posição atual.

CDC::TextOut

Grava uma cadeia de caracteres no local especificado usando a fonte selecionada no momento.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parameters

x
Especifica a coordenada x lógica do ponto inicial do texto.

y
Especifica a coordenada y lógica do ponto inicial do texto.

lpszString
Aponta para a cadeia de caracteres a ser desenhada.

nCount
Especifica o número de caracteres na cadeia de caracteres.

str
Um CString objeto que contém os caracteres a serem desenhados.

Return Value

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

Remarks

As origens dos caracteres estão no canto superior esquerdo da célula de caracteres. Por padrão, a posição atual não é usada ou atualizada pela função.

Se um aplicativo precisar atualizar a posição atual quando chamar TextOut, o aplicativo poderá chamar a SetTextAlign função de membro com nFlags definido como TA_UPDATECP. Quando esse sinalizador é definido, o Windows ignora os x parâmetros e y em chamadas subsequentes para TextOut, usando a posição atual.

Example

Veja o exemplo para CDC::BeginPath.

CDC::TransparentBlt

Chame essa função de membro para transferir um bloco de bits dos dados de cor, que corresponde a um retângulo de pixels do contexto do dispositivo de origem especificado, para um contexto de dispositivo de destino.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parameters

xDest
Especifica a coordenada x, em unidades lógicas, do canto superior esquerdo do retângulo de destino.

yDest
Especifica a coordenada y, em unidades lógicas, do canto superior esquerdo do retângulo de destino.

nDestWidth
Especifica a largura, em unidades lógicas, do retângulo de destino.

nDestHeight
Especifica a altura, em unidades lógicas, do retângulo de destino.

pSrcDC
Ponteiro para o contexto do dispositivo de origem.

xSrc
Especifica a coordenada x, em unidades lógicas, do retângulo de origem.

ySrc
Especifica a coordenada y, em unidades lógicas, do retângulo de origem.

nSrcWidth
Especifica a largura, em unidades lógicas, do retângulo de origem.

nSrcHeight
Especifica a altura, em unidades lógicas, do retângulo de origem.

clrTransparent
A cor RGB no bitmap de origem a ser tratada como transparente.

Return Value

TRUE se for bem-sucedida; caso contrário, FALSE.

Remarks

TransparentBlt permite a transparência; ou seja, a cor RGB indicada por clrTransparent é tornada transparente para a transferência.

Para obter mais informações, consulte TransparentBlt no SDK do Windows.

CDC::UpdateColors

Atualiza a área do cliente do contexto do dispositivo combinando as cores atuais na área do cliente com a paleta do sistema pixel a pixel.

void UpdateColors();

Remarks

Uma janela inativa com uma paleta lógica realizada pode chamar UpdateColors como uma alternativa para redesenhar sua área do cliente quando a paleta do sistema muda.

Para obter mais informações sobre como usar paletas de cores, consulte UpdateColors no SDK do Windows.

A UpdateColors função de membro normalmente atualiza uma área do cliente mais rápido do que redesenhar a área. No entanto, como a função executa a conversão de cores com base na cor de cada pixel antes da paleta do sistema mudar, cada chamada para essa função resulta na perda de alguma precisão de cor.

CDC::WidenPath

Redefine o caminho atual como a área que seria pintada se o caminho fosse traçado usando a caneta atualmente selecionada no contexto do dispositivo.

BOOL WidenPath();

Return Value

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

Remarks

Esta função só é bem-sucedida se a caneta atual for uma caneta geométrica criada pela segunda versão da função membro CreatePen , ou se a caneta for criada com a primeira versão e tiver uma largura, em unidades de CreatePen dispositivo, superior a 1. O contexto do dispositivo deve conter um caminho fechado. Todas as curvas de Bzier no caminho são convertidas em sequências de linhas retas que se aproximam das curvas alargadas. Como tal, nenhuma curva de Bzier permanece no caminho depois WidenPath que é chamado.

See also

CObject Classe
Hierarchy Chart
CPaintDC Classe
CWindowDC Classe
CClientDC Classe
CMetaFileDC Classe