Hot Spots no Visual Basic


Que tal transformar uma picture box do VB em um Hot Spot ? HOT SPOTS ???

Um Hot Spot nada mais é do que uma figura que possui regiões com eventos distintos para o clique. São também chamadas de áreas quentes ou hipergráficos.

O recurso é simples : basta criar dentro da picture box um vetor - array - de labels transparentes. Cada elemento do vetor terá um clique diferente.

Vamos ao roteiro passo a passo:

  1. Inicie um novo projeto no Visual Basic - o Form1 é criado automaticamente.De a ele o nome de frmprinc.

  2. Adicione ao Form1 uma picture box com um arquivo bitmap(BMP) ou metafile(WMF) de sua preferência. Vamos usar o arquivo COMPUTER.WMF do diretório VB\METAFILE\BUSINESS. De o nome a picture de PI_Princ.(Veja Figura).
  3. Adicione um label sobre PI_Princ com as seguintes propriedades:
    BackStile = 0 'Transparent
    BorderStyle = 1 'Fixe Single
    Caption = 'Deixe em branco
    Name = LB_Rg
  4. Crie um vetor com o controle LB_Rg com quatro índices.

  5. Coloque uma label sobre o teclado, outra sobre o video, outra sobre o mouse e outra sobre a cpu.

  6. Crie uma label na base do formulário frmprinc com o nome de lab_qual e na sua propriedade Caption informe: SISTEMA TESTE.

  7. Crie uma label no topo do formulário frmprinc com o nome de lab_nome e na sua propriedade Caption inform: Clique em uma área para ver o nome do componente.

  8. Adice o código seguinte à label LB_Rg:
    Sub LB_Rg_Click (Index as Integer)
    Dim qual as String
    Select Case Index
    Case 0
    qual = "Teclado"
    Case 1
    qual = "Vídeo"
    Case 2
    qual = "CPU"
    Case 3
    qual = "Mouse"
    End Select
    lab_qual.Caption = " " + qual + " "
    End Sub

  9. Adicione o seguinte código à picture PI_Princ:
    Sub PI_Princ_Click( )
    LB_status.Caption= " "
    End Sub

  10. Deixe a borda dos labels visíveis em tempo de desenho ocultando-as somente em tempo de execução. Fazemos isso quando o formulário é carregado:
    Sub Form_Load
    Dim i as String
    For i=0 to 3
    LB_Rg(i).BorderStyle = 0 'none
    next i
    End Sub

    Pronto acabamos.

    Agora salve e teste o seu programa. Há inumeras aplicações para esta técnica ,basta você usar a imaginação.

    Dica: Para trabalhar com áreas irregulares combine várias labels até conseguir a área desejada. Lembre-se que a instrução Select Case pode conter cláusulas como : Case 1 to 4,7,10 isto nos dá mais flexibilidade.

    Ah! se quiser pode usar outros eventos associados à label; que tal MouseMove ?

    Fonte:Revista Fórum Access

    Retorna