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