Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
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_ERRORErro geral.SP_OUTOFDISKNão há espaço em disco suficiente atualmente disponível para spooling, e não haverá mais espaço disponível.SP_OUTOFMEMORYNão há memória suficiente disponível para spooling.SP_USERABORTO 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
NEWFRAMEchamada ouNEXTBANDescapam.
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_BUTTONDFCS_BUTTON3STATEBotão de três estadosDFCS_BUTTONCHECKCaixa de verificaçãoDFCS_BUTTONPUSHBotão de pressãoDFCS_BUTTONRADIOBotão de opçãoDFCS_BUTTONRADIOIMAGEImagem para botão de opção (imagem não quadrada precisa)DFCS_BUTTONRADIOMASKMáscara para botão de opção (máscara não quadrada precisa)
DFC_CAPTIONDFCS_CAPTIONCLOSEBotão FecharDFCS_CAPTIONHELPBotão AjudaDFCS_CAPTIONMAXBotão MaximizarDFCS_CAPTIONMINBotão MinimizarDFCS_CAPTIONRESTOREBotão Restaurar
DFC_MENUDFCS_MENUARROWSeta do submenuDFCS_MENUBULLETBalaDFCS_MENUCHECKMarca de verificação
DFC_SCROLLDFCS_SCROLLCOMBOBOXBarra de rolagem da caixa de combinaçãoDFCS_SCROLLDOWNSeta para baixo da barra de rolagemDFCS_SCROLLLEFTSeta para a esquerda da barra de rolagemDFCS_SCROLLRIGHTSeta para a direita da barra de rolagemDFCS_SCROLLSIZEGRIPPega de tamanho no canto inferior direito da janelaDFCS_SCROLLUPSeta 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_ERRORErro geral.SP_OUTOFDISKNão há espaço em disco suficiente atualmente disponível para spooling, e não haverá mais espaço disponível.SP_OUTOFMEMORYNão há memória suficiente disponível para spooling.SP_USERABORTO 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:
COMPLEXREGIONA região tem fronteiras sobrepostas.ERRORNenhuma região foi criada.NULLREGIONA região está vazia.SIMPLEREGIONA 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:
COMPLEXREGIONA região tem fronteiras sobrepostas.ERRORNenhuma região foi criada.NULLREGIONA região está vazia.SIMPLEREGIONA 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:
FLOODFILLBORDERA área de preenchimento é limitada pela cor especificada porcrColor. Este estilo é idêntico ao preenchimento realizado pelaFloodFill.FLOODFILLSURFACEA área de preenchimento é definida pela cor especificada porcrColor. 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_CLIPPEDEspecifica que o texto é cortado para o retângulo.ETO_OPAQUEEspecifica 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 asSetBkColorfunções eGetBkColormembro.)
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_COUNTERCLOCKWISEArcos e retângulos desenhados no sentido anti-horário.AD_CLOCKWISE Arcse 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_RESETForç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_ACCUMULATEEstá a ocorrer acumulação de retângulos delimitadores.DCB_RESETO retângulo delimitador está vazio.DCB_SETO retângulo delimitador não está vazio.DCB_ENABLEA acumulação delimitadora está ativada.DCB_DISABLEA 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:
COMPLEXREGIONA região de recorte tem bordas sobrepostas.ERRORO contexto do dispositivo não é válido.NULLREGIONA região de recorte está vazia.SIMPLEREGIONA 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:
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_MOVETOEspecifica que o ponto correspondente inicialpPointsuma figura separada.PT_LINETOEspecifica que o ponto anterior e o ponto correspondente emlpPointssão os pontos finais de uma linha.PT_BEZIERTOEspecifica que o ponto correspondente emlpPointsé 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_CLOSEFIGUREEspecifica 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 últimoPT_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_BASELINEEspecifica o alinhamento do eixo x e a linha de base da fonte escolhida dentro do retângulo delimitador.TA_BOTTOMEspecifica o alinhamento do eixo x e a parte inferior do retângulo delimitador.TA_CENTEREspecifica o alinhamento do eixo y e o centro do retângulo delimitador.TA_LEFTEspecifica o alinhamento do eixo y e o lado esquerdo do retângulo delimitador.TA_NOUPDATECPEspecifica que a posição atual não é atualizada.TA_RIGHTEspecifica o alinhamento do eixo y e o lado direito do retângulo delimitador.TA_TOPEspecifica o alinhamento do eixo x e a parte superior do retângulo delimitador.TA_UPDATECPEspecifica 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:
Aplique o operador bit a bit OR (
|) ao sinalizador e seus sinalizadores relacionados, agrupados da seguinte forma:TA_LEFT,TA_CENTEReTA_RIGHTTA_BASELINE,TA_BOTTOMeTA_TOPTA_NOUPDATECPeTA_UPDATECP
Aplique o operador C++ bit a bit E (
&) ao resultado e ao valor de retorno deGetTextAlign.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:
COMPLEXREGIONNova região de recorte tem bordas sobrepostas.ERRORO contexto do dispositivo não é válido.NULLREGIONNova região de recorte está vazia.SIMPLEREGIONA 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:
COMPLEXREGIONA região de recorte tem bordas sobrepostas.ERRORO contexto do dispositivo não é válido.NULLREGIONA região de recorte está vazia.SIMPLEREGIONA 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:
PATCOPYCopia o padrão para o bitmap de destino.PATINVERTCombina o bitmap de destino com o padrão usando o operador Boolean XOR (^).DSTINVERTInverte o bitmap de destino.BLACKNESSTorna toda a saída preta.WHITENESSTorna 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_MOVETOEspecifica que este ponto inicia uma figura separada. Este ponto torna-se a nova posição atual.PT_LINETOEspecifica 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_BEZIERTOEspecifica 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_CLOSEFIGUREEspecifica que a figura é fechada automaticamente após a conclusão doPT_LINETOPT_BEZIERTOou tipo para este ponto. Uma linha é traçada deste ponto para o mais recentePT_MOVETOouMoveToponto.Esse sinalizador é combinado com o
PT_LINETOtipo de uma linha, ou com oPT_BEZIERTOtipo 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_ANDA nova região de recorte inclui a interseção (áreas sobrepostas) da região de recorte atual e o caminho atual.RGN_COPYA nova região de recorte é o caminho atual.RGN_DIFFA nova região de recorte inclui as áreas da região de recorte atual e as do caminho atual são excluídas.RGN_ORA nova região de recorte inclui a união (áreas combinadas) da região de recorte atual e o caminho atual.RGN_XORA 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
NULLapenas quando oRGN_COPYmodo é especificado.
nMode
Especifica a operação a ser executada. Deve ser um dos seguintes valores:
RGN_ANDA nova região de recorte combina as áreas sobrepostas da região de recorte atual e a região identificada porpRgn.RGN_COPYA nova região de recorte é uma cópia da região identificada porpRgn. Esta funcionalidade é idêntica à primeira versão doSelectClipRgn. Se a região identificada porpRgnforNULL, a nova região de recorte se tornará a região de recorte padrão (uma região nula).RGN_DIFFA nova região de clipping combina as áreas da região de clipping atual com as áreas excluídas da região identificada pelapRgn.RGN_ORA nova região de recorte combina a região de recorte atual e a região identificada porpRgn.RGN_XORA nova região de recorte combina a região de recorte atual e a região identificada porpRgn, mas exclui quaisquer áreas sobrepostas.
Return Value
O tipo da região. Pode ser qualquer um dos seguintes valores:
COMPLEXREGIONNova região de recorte tem bordas sobrepostas.ERRORO contexto ou a região do dispositivo não são válidos.NULLREGIONNova região de recorte está vazia.SIMPLEREGIONA 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:
COMPLEXREGIONNova região de recorte tem bordas sobrepostas.ERRORO contexto ou a região do dispositivo não são válidos.NULLREGIONNova região de recorte está vazia.SIMPLEREGIONA 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_BRUSHPincel preto.DKGRAY_BRUSHPincel cinza escuro.GRAY_BRUSHPincel cinzento.HOLLOW_BRUSHEscova oca.LTGRAY_BRUSHPincel cinza claro.NULL_BRUSHPincel nulo.WHITE_BRUSHPincel branco.BLACK_PENCaneta preta.NULL_PENCaneta nula.WHITE_PENCaneta branca.ANSI_FIXED_FONTFonte fixa do sistema ANSI.ANSI_VAR_FONTFonte variável do sistema ANSI.DEVICE_DEFAULT_FONTFonte dependente do dispositivo.OEM_FIXED_FONTFonte fixa dependente de OEM.SYSTEM_FONTA 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 paraSYSTEM_FONTobter a fonte usada por caixas de diálogo e janelas. Em vez disso, use aSystemParametersInfofunção com oSPI_GETNONCLIENTMETRICSparâmetro para recuperar a fonte atual.SystemParametersInfoleva em conta o tema atual e fornece informações de fonte para legendas, menus e caixas de diálogo de mensagem.SYSTEM_FIXED_FONTA 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_PALETTEPaleta 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_ERRORErro geral.SP_OUTOFDISKNão há espaço em disco suficiente atualmente disponível para spooling, e não haverá mais espaço disponível.SP_OUTOFMEMORYNão há memória suficiente disponível para spooling.SP_USERABORTO 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_COUNTERCLOCKWISEFiguras desenhadas no sentido anti-horário.AD_CLOCKWISEFiguras 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:
OPAQUEO 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.TRANSPARENTO 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_ACCUMULATEAdicione o retângulo especificado porlpRectBoundsao retângulo delimitador (usando uma operação de união de retângulo).DCB_DISABLEDesative a acumulação de limites.DCB_ENABLEAtive 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_ACCUMULATEO retângulo delimitador não está vazio. Este valor será sempre definido.DCB_DISABLEA acumulação de limites está desativada.DCB_ENABLEA 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_ANISOTROPICAs unidades lógicas são convertidas em unidades arbitrárias com eixos dimensionados arbitrariamente. Definir o modo de mapeamento comoMM_ANISOTROPICnão altera as configurações atuais da janela ou do visor. Para alterar as unidades, a orientação e o dimensionamento, chame asSetWindowExtfunções eSetViewportExtmembro.MM_HIENGLISHCada unidade lógica é convertida em 0,001 polegada. Positivo x está à direita; positivo y está em alta.MM_HIMETRICCada unidade lógica é convertida para 0,01 milímetro. Positivo x está à direita; positivo y está em alta.MM_ISOTROPICAs 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 asSetWindowExtfunções eSetViewportExtmembro 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_LOENGLISHCada unidade lógica é convertida em 0,01 polegada. Positivo x está à direita; positivo y está em alta.MM_LOMETRICCada unidade lógica é convertida em 0,1 milímetro. Positivo x está à direita; positivo y está em alta.MM_TEXTCada unidade lógica é convertida em 1 pixel de dispositivo. Positivo x está à direita; positivo y está em baixa.MM_TWIPSCada 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_BLACKO pixel é sempre preto.R2_WHITEO pixel é sempre branco.R2_NOPO pixel permanece inalterado.R2_NOTPixel é o inverso da cor da tela.R2_COPYPENPixel é a cor da caneta.R2_NOTCOPYPENPixel é o inverso da cor da caneta.R2_MERGEPENNOTPixel é uma combinação da cor da caneta e o inverso da cor da tela (pixel final = (~pixel da tela)|caneta).R2_MASKPENNOTPixel é uma combinação das cores comuns à caneta e ao inverso da tela (pixel final = (~pixel da tela)&caneta).R2_MERGENOTPENPixel é uma combinação da cor da tela e o inverso da cor da caneta (pixel final = (~caneta)|pixel da tela).R2_MASKNOTPENPixel é uma combinação das cores comuns à tela e ao inverso da caneta (pixel final = (~caneta)&pixel da tela).R2_MERGEPENPixel é uma combinação da cor da caneta e da cor da tela (pixel final = pixel da tela da caneta|).R2_NOTMERGEPENPixel é o inversoR2_MERGEPENda cor (pixel final =~(pixel da tela da caneta|)).R2_MASKPENPixel é uma combinação das cores comuns à caneta e à tela (pixel final = pixel da tela da caneta&).R2_NOTMASKPENPixel é o inversoR2_MASKPENda cor (pixel final =~(pixel da tela da caneta&)).R2_XORPENPixel é 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_NOTXORPENPixel é o inversoR2_XORPENda 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_CENTERAlinha o ponto com o centro horizontal do retângulo delimitador.TA_LEFTAlinha o ponto com o lado esquerdo do retângulo delimitador. Esta é a configuração padrão.TA_RIGHTAlinha o ponto com o lado direito do retângulo delimitador.
A segunda categoria afeta o alinhamento do texto na direção y:
TA_BASELINEAlinha o ponto com a linha de base da fonte escolhida.TA_BOTTOMAlinha o ponto com a parte inferior do retângulo delimitador.TA_TOPAlinha 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_NOUPDATECPNã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_UPDATECPAtualiza 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 aTextOutfunçã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_HIENGLISHMM_HIMETRICMM_LOENGLISHMM_LOMETRICMM_TEXTMM_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:
BLACKNESSTorna toda a saída preta.DSTINVERTInverte o bitmap de destino.MERGECOPYCombina o padrão e o bitmap de origem usando o operador Boolean AND .MERGEPAINTCombina o bitmap de origem invertido com o bitmap de destino usando o operador OR booleano.NOTSRCCOPYCopia o bitmap de origem invertido para o destino.NOTSRCERASEInverte o resultado da combinação dos bitmaps de destino e origem usando o operador OR booleano.PATCOPYCopia o padrão para o bitmap de destino.PATINVERTCombina o bitmap de destino com o padrão usando o operador XOR booleano.PATPAINTCombina 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.SRCANDCombina pixels dos bitmaps de destino e origem usando o operador Boolean AND .SRCCOPYCopia o bitmap de origem para o bitmap de destino.SRCERASEInverte o bitmap de destino e combina o resultado com o bitmap de origem usando o operador Boolean AND .SRCINVERTCombina pixels dos bitmaps de destino e origem usando o operador XOR booleano.SRCPAINTCombina pixels dos bitmaps de destino e origem usando o operador Boolean OR .WHITENESSTorna 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