Partilhar via


Como: Criar objetos gráficos para desenho

Antes de desenhar linhas e formas, renderizar texto ou exibir e manipular imagens com GDI+, você precisa criar um objeto Graphics. O objeto Graphics representa uma superfície de desenho GDI+ e é o objeto usado para criar imagens gráficas.

Há duas etapas no trabalho com gráficos:

  1. Criando um objeto Graphics.

  2. Usando o objeto Graphics para desenhar linhas e formas, renderizar texto ou exibir e manipular imagens.

Criando um objeto gráfico

Um objeto gráfico pode ser criado de várias maneiras.

Para criar um objeto gráfico

  • Receba uma referência a um objeto gráfico como parte do PaintEventArgs no evento Paint de um formulário ou controlo. Normalmente, é assim que você obtém uma referência a um objeto gráfico ao criar código de pintura para um controle. Da mesma forma, você também pode obter um objeto gráfico como uma propriedade do PrintPageEventArgs ao manipular o evento PrintPage para um PrintDocument.

    -ou-

  • Chame o método CreateGraphics de um controle ou formulário para obter uma referência a um objeto Graphics que representa a superfície de desenho desse controle ou formulário. Use esse método se quiser desenhar em um formulário ou controle que já existe.

    -ou-

  • Crie um objeto Graphics a partir de qualquer objeto que herde de Image. Essa abordagem é útil quando você deseja alterar uma imagem já existente.

    As seções a seguir fornecem detalhes sobre cada um desses processos.

PaintEventArgs no manipulador de eventos do Paint

Ao programar o PaintEventHandler para controles ou o PrintPage para um PrintDocument, um objeto gráfico é fornecido como uma das propriedades de PaintEventArgs ou PrintPageEventArgs.

Para obter uma referência a um objeto gráfico do PaintEventArgs durante o evento Paint

  1. Declare o objeto Graphics.

  2. Atribua a variável para se referir ao objeto Graphics passado como parte do PaintEventArgs.

  3. Insira o código para pintar o formulário ou controle.

    O exemplo a seguir mostra como fazer referência a um objeto Graphics do PaintEventArgs no evento Paint:

    Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _
       MyBase.Paint
       ' Declares the Graphics object and sets it to the Graphics object
       ' supplied in the PaintEventArgs.
       Dim g As Graphics = pe.Graphics
       ' Insert code to paint the form here.
    End Sub
    
    private void Form1_Paint(object sender,
       System.Windows.Forms.PaintEventArgs pe)
    {
       // Declares the Graphics object and sets it to the Graphics object
       // supplied in the PaintEventArgs.
       Graphics g = pe.Graphics;
       // Insert code to paint the form here.
    }
    
    private:
       void Form1_Paint(System::Object ^ sender,
          System::Windows::Forms::PaintEventArgs ^ pe)
       {
          // Declares the Graphics object and sets it to the Graphics object
          // supplied in the PaintEventArgs.
          Graphics ^ g = pe->Graphics;
          // Insert code to paint the form here.
       }
    

Método CreateGraphics

Você também pode usar o método CreateGraphics de um controle ou formulário para obter uma referência a um objeto Graphics que representa a superfície de desenho desse controle ou formulário.

Para criar um objeto Graphics com o método CreateGraphics

  • Chame o método CreateGraphics do formulário ou controle no qual você deseja renderizar elementos gráficos.

    Dim g as Graphics
    ' Sets g to a Graphics object representing the drawing surface of the
    ' control or form g is a member of.
    g = Me.CreateGraphics
    
    Graphics g;
    // Sets g to a graphics object representing the drawing surface of the
    // control or form g is a member of.
    g = this.CreateGraphics();
    
    Graphics ^ g;
    // Sets g to a graphics object representing the drawing surface of the
    // control or form g is a member of.
    g = this->CreateGraphics();
    

Criar a partir de um objeto de imagem

Além disso, você pode criar um objeto gráfico a partir de qualquer objeto que derive da classe Image.

Para criar um objeto Graphics a partir de uma Imagem

  • Chame o método Graphics.FromImage, fornecendo o nome da variável Image a partir da qual você deseja criar um objeto Graphics.

    O exemplo a seguir mostra como usar um objeto Bitmap:

    Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp")
    Dim g as Graphics = Graphics.FromImage(myBitmap)
    
    Bitmap myBitmap = new Bitmap(@"C:\Documents and
       Settings\Joe\Pics\myPic.bmp");
    Graphics g = Graphics.FromImage(myBitmap);
    
    Bitmap ^ myBitmap = gcnew
       Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp");
    Graphics ^ g = Graphics::FromImage(myBitmap);
    

Observação

Você só pode criar objetos Graphics a partir de arquivos .bmp não indexados, como arquivos .bmp de 16, 24 bits e 32 bits. Cada pixel de arquivos .bmp não indexados contém uma cor, em contraste com pixels de arquivos .bmp indexados, que contêm um índice para uma tabela de cores.

Desenho e manipulação de formas e imagens

Depois de criado, um objeto Graphics pode ser usado para desenhar linhas e formas, renderizar texto ou exibir e manipular imagens. Os principais objetos que são usados com o objeto Graphics são:

  • A classe Pen — usada para desenhar linhas, esboçar formas ou renderizar outras representações geométricas.

  • A classe Brush—Usada para preencher áreas de gráficos, como formas preenchidas, imagens ou texto.

  • A classe Font—Fornece uma descrição de quais formas usar ao renderizar texto.

  • A estrutura Color—Representa as diferentes cores a serem exibidas.

Para usar o objeto Graphics que você criou

Ver também