Como dominar handle´s??
Ae pessoal... eu tenho uma duvida do KCT. :?:
Acontece que eu consegui capturar o handle de um botao que faz parte de outro programa e, só como teste, gostaria de ser capaz de alterar várias propriedades desse botao, como width, height, enabled e visible.
Eu tentei utilizar Windows Messages para fazer isso, mas só consegui alterar o caption. :?
Alguem tem alguma idéia de como se faz esse tipo de coisa?
Acontece que eu consegui capturar o handle de um botao que faz parte de outro programa e, só como teste, gostaria de ser capaz de alterar várias propriedades desse botao, como width, height, enabled e visible.
Eu tentei utilizar Windows Messages para fazer isso, mas só consegui alterar o caption. :?
Alguem tem alguma idéia de como se faz esse tipo de coisa?
Smash
Curtidas 0
Respostas
Beppe
18/11/2003
Para alterar tamanho e posição da janela:
Para esconder:
Para mostrar:
Para habilitar:
MoveWindow(Hwnd, Left, Top, Width, Height, True);
Para esconder:
SetWindowPos(Hwnd, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE or SWP_HIDEWINDOW);
Para mostrar:
SetWindowPos(Hwnd, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE or SWP_SHOWWINDOW);
Para habilitar:
EnableWindow(Hwnd, Habilita);
GOSTEI 0
Smash
18/11/2003
Legal, vou fazer uns testes com essas funçoes.
Valeu
Valeu
GOSTEI 0
Marcelo Saviski
18/11/2003
[b:5852edc462][size=18:5852edc462]+[/size:5852edc462][/b:5852edc462] Algumas Dicas se você quiser ´dominar´ os Edits:
[color=blue:5852edc462][i:5852edc462]HEdit é a hadle[/i:5852edc462][/color:5852edc462]
[list:5852edc462][*:5852edc462][color=blue:5852edc462]Para mover e redimensionar o Edit:[/color:5852edc462]
[color=green:5852edc462] MoveWindow (HEdit, Left, Top, Width, Height,False);[/color:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para desfazer, recortar, copiar, colar:[/color:5852edc462]
[color=green:5852edc462] SendMessage(HEdit, WM_Undo,0,0);
SendMessage(HEdit, WM_Cut,0,0);
SendMessage(HEdit, WM_Copy,0,0);
SendMessage(HEdit, WM_Paste,0,0); [/color:5852edc462]
[*:5852edc462][color=blue:5852edc462]para descobrir o tamanho do texto contido no edit:[/color:5852edc462]
[color=green:5852edc462]Len := GetWindowTextLength(HEdit); [/color:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para descobrir o que está contido no Edit:[/color:5852edc462]
[color=green:5852edc462] GetMem(P,Len+1);
P[Len] := #0;
GetWindowText(HEdit,P,Len+1); [/color:5852edc462]
[i:5852edc462][color=green:5852edc462] OBS: P é a variável PChar para aonde o texto vai[/color:5852edc462][/i:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para alterar o conteudo do Edit:[/color:5852edc462]
[color=green:5852edc462] SetWindowText(HEdit, ´Texto tal´);[/color:5852edc462]
[i:5852edc462][color=green:5852edc462] Talvez também presise disso aqui: SendMessage(HEdit,EM_SetModify,0,0); [/color:5852edc462][/i:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para limpar o Edit:[/color:5852edc462]
[color=green:5852edc462] const Empty : PChar = ´´;[/color:5852edc462]
[color=green:5852edc462]SendMessage(HEdit,WM_SetText,1,LongInt(Empty));[/color:5852edc462][/list:u:5852edc462]
:mrgreen:
[i:5852edc462]---O que significa isso na sua assinatura?---[/i:5852edc462]
[color=blue:5852edc462][i:5852edc462]HEdit é a hadle[/i:5852edc462][/color:5852edc462]
[list:5852edc462][*:5852edc462][color=blue:5852edc462]Para mover e redimensionar o Edit:[/color:5852edc462]
[color=green:5852edc462] MoveWindow (HEdit, Left, Top, Width, Height,False);[/color:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para desfazer, recortar, copiar, colar:[/color:5852edc462]
[color=green:5852edc462] SendMessage(HEdit, WM_Undo,0,0);
SendMessage(HEdit, WM_Cut,0,0);
SendMessage(HEdit, WM_Copy,0,0);
SendMessage(HEdit, WM_Paste,0,0); [/color:5852edc462]
[*:5852edc462][color=blue:5852edc462]para descobrir o tamanho do texto contido no edit:[/color:5852edc462]
[color=green:5852edc462]Len := GetWindowTextLength(HEdit); [/color:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para descobrir o que está contido no Edit:[/color:5852edc462]
[color=green:5852edc462] GetMem(P,Len+1);
P[Len] := #0;
GetWindowText(HEdit,P,Len+1); [/color:5852edc462]
[i:5852edc462][color=green:5852edc462] OBS: P é a variável PChar para aonde o texto vai[/color:5852edc462][/i:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para alterar o conteudo do Edit:[/color:5852edc462]
[color=green:5852edc462] SetWindowText(HEdit, ´Texto tal´);[/color:5852edc462]
[i:5852edc462][color=green:5852edc462] Talvez também presise disso aqui: SendMessage(HEdit,EM_SetModify,0,0); [/color:5852edc462][/i:5852edc462]
[*:5852edc462][color=blue:5852edc462]Para limpar o Edit:[/color:5852edc462]
[color=green:5852edc462] const Empty : PChar = ´´;[/color:5852edc462]
[color=green:5852edc462]SendMessage(HEdit,WM_SetText,1,LongInt(Empty));[/color:5852edc462][/list:u:5852edc462]
:mrgreen:
[i:5852edc462]---O que significa isso na sua assinatura?---[/i:5852edc462]
GOSTEI 0
Smash
18/11/2003
hehehe, é só uma brincadeira que eu e alguns amigos que estudam e trabalham comigo (programando Delphi) fizemos com relação as classes do Delphi, criamos essa frase e algumas outras tb, embora eu nao me lembre + das outras.
Lembro que tinha uma sobre o pai-de-todos, o TObject... Se eu não me engano, a gente citava TObject como divindade. Disso aí derivou a frase da minha assinatura.
Lembro que tinha uma sobre o pai-de-todos, o TObject... Se eu não me engano, a gente citava TObject como divindade. Disso aí derivou a frase da minha assinatura.
GOSTEI 0