Download continuar - sinclair

Transcript
Janelas
Acesso irrestrito às janelas
Usando VISUAL BASIC e as rotinas da API, é possível manipular as
janelas das aplicações, de maneira a criar utilitários, desktops etc.
Existem vários tipos de objetos internos do Windows, que iremos
Cleuton Sampaio de Melo Jr
abordar de acordo com o andamento do assunto. Para ilustrar, veja
alguns tipos de objetos da GDI:
Em um ambiente multitarefa como o Windows, existem muitos
objetos ativos ao mesmo tempo. O Windows é o responsável pelo
gerenciamento de todos os recursos das aplicações. Janelas,
Controles, BitMaps etc são Objetos de propriedade do Windows,
que as aplicações utilizam para se comunicarem com os usuários.
No DOS um programa entra em execução e assume a propriedade
sobre todos os dispositivos do sistema. Tela, teclado, periféricos,
tudo passa a ser controlado pelo próprio programa. Isto é que toma
difícil a multitarefa no DOS, pois você nunca sabe o que os outros
programas irão precisar.
Para evitar este problema, no Windows todo acesso a periféricos
é feito através do próprio sistema. Se um programa precisa montar
uma Janela, ele precisa solicitar ao Windows a criação e permissão
de uso da mesma. 0 Windows armazena os objetos criados em
suas tabelas internas, organizandoos na memória (real e virtual) de
OBJETO
IDENTIFICAÇÃO
DESCRIÇÃO
BitMap
hBitMap
Uma área de memória para
Cursor
hCursor
Device Context
hDC
Um emulador de dispositivo.
ícone
hlcone
Uma imagem 32x32 pixels.
Instance
hlnstance
Uma
imagens.
Uma imagem para o mouse
pointer.
instância
de
.
uma
aplicação Windows, ou melhor:
uma cópia ativa dela.
Window
hWnd
Uma Janela.
Vamos demonstrar o uso de HANDLES e de objetos GDI com um
pequeno projeto.
O PROJETO
acordo com suas necessidades.
Desta maneira, não seria possível acessar um recurso, como
corretamente um recurso é através de um código que o identifique
Este programa é a base para que você crie seu próprio PROGRAM
MANAGER (ou NORTON DESKTOP, se preferir). Ele permite que
organizemos o Desktop do Windows minimizando as Janelas que
nas tabelas do Windows. Este código é o HANDLE ou MANIPULADOR
não nos interessam no momento.
uma Janela, através de um endereço de memória, pois o Windows
manipula os endereços constantemente. 0 único modo de usar
Para se ter uma idéia do que ele faz, observe o formulário na
(em inglês).
Um HANDLE é um número INTEIRO (16 bits) que identifica
figura 1. Ele possui uma UST BOX com os HANDLES e TÍTULOS de
unicamente um recurso. As variáveis HANDLEs iniciam seu nome
por um "h" minúsculo, e tem sua definição como:
todas as Janelas ativas no momento. Um simples Click do mouse
em uma linha, alternará o estado da Janela de minimizada para
normal ou vice-versa, mantento sempre a Janela do programa em
primeiro plano. 0 Botão REFRESH permite atualizar a lista com
novas Janelas, e o TERMINAR encerra o programa. Simples, não?
Quando o programa entra, ele atualiza a lista de Janelas
utilizando funções da API. A seguir ele fica aguardando um comando.
Um Click na lista alterna o estado da Janela. As funções da API que
permitem isto estão definidas no módulo WORG.BAS:
DIM hJan as Integer
ou
DIM hJan%
Windows Organizer
r !«!■■ niiiBi
&Hf709
ÍH1020
1
Gvittnciadui 4hi PiuRn«m«a
Di.WMoa
'*** Declaração das rotinas API:
Declare Function lslconic% Lib "User" (ByVal hWnd%)
Declare Function GetWindow% Lib "User" (ByVal hWnd%, ByVal
wCmd%)
Declare Function GetWindowText% üb "User" (ByVal hWnd%, ByVal
Rgural
34
MICRO SISTEMAS
lpString$, ByVal aint%)