Ir para conteúdo
Fórum Script Brasil
  • 0

Que Vergonha!


Denis Bittencourt Muniz

Pergunta

Fala galera!

Queria perguntar uma dúvida de tempo que, só hoje, tomei vergonha na cara para pergintar: Como trabalhar com eventos clique-e-arraste? Por exemplo, como clicar-e-arrastar uma imagem dentro de um formulário?

falows! Que vergonha.. mereço apanhar.. HeHe..

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não acho tanta vergonha assim não saber, vergonha mesmo é não ter coragem de perguntar.

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
    ReleaseCapture
    SendMessage Picture1.hwnd, &HA1, 2, 0&
End Sub

Note na chamada a função SendMessage, você deve colocar o nome do componente que vai ser arrastado.

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Guest! Esse exemplo é perfeito! Mas ainda tenho algumas dúvidas:

1. O que faz a API do Windows ReleaseCapture? Ela retorna um valor inteiro, certo? Não teria que informar o valor retornado para a API SendMessage?

2. O que significa os argumentos '&HA1' e '2' na API SendMessage? Aliás, não entendo, no programa API Text Viewer (programa para a visualização de API's do Visual Basic) vem a lista dos valores(em forma de constantes) que tem que ser usados na APi's, certo? Como vou adivinhar que tal constante é para tal API? Pois, não tem jeito de identificar...

3. Se você usou esses métodos para fazer o que eu queria, para que serve os eventos 'DragDrop' e 'DragOver'? Esses eventos são ativados quando?

Link para o comentário
Compartilhar em outros sites

  • 0

1. O que faz a API do Windows ReleaseCapture? Ela retorna um valor inteiro, certo? Não teria que informar o valor retornado para a API SendMessage?

A chamada feita a função ReleaseCapture da forma como esta sendo chamada, não esta recebendo nenhum valor de retorno. você precisa definir uma variavel para receber o retorno, mas neste caso não é necessário. Segundo a descrição do API-GUIDE, a função ReleaseCaptyre faz isto:
The ReleaseCapture function releases the mouse capture from a window in the current thread and restores normal mouse input processing.
Que é alguma coisa assim:(não com estas palavras) Pega as coordenadas de um objeto que foi clicado e restaura na coordenada em que foi arrastado o objeto .
2. O que significa os argumentos '&HA1' e '2' na API SendMessage? Aliás, não entendo, no programa API Text Viewer vem a lista dos valores que tem que ser usados na APi's, certo? Como vou adivinhar que tal constante é para tal API? Pois, não tem jeito de identificar
Se você não tiver a documentação de uma função fica praticamente impossível adivinhar todos os parametros que ela pode receber.Principalmente no caso da função SendMessages que tem diversas finalidades.Esta documentação deve estar no SDK da Microsoft
3. Se você usou esses métodos para fazer o que eu queria, para que serve os eventos 'DragDrop' e 'DragOver'? Esses eventos são ativados quando?
API serve extamente para desenvolvedores não terem que reinventar a roda.Tente fazer a mesma função de arrastar um objeto sem usar API.De qualquer forma, nunca usei estes eventos, você vai ter que pesquisar um pouco para saber mais a respeito.
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...