Ir para o conteúdo
Bruno

C# - Interface

Mensagens Recomendadas

Bruno    0
Bruno

Tenho um trabalho de uma cadeira em que tenho que fazer um Leitor de Video (do tipo do BSPlayer, WMP, etc...).

Para esse projecto usaremos alguns .dll fornecidos e C#.

A interface sugerida é uma janela com os controladores do video e o respectivo filme num quadrado por cima (tudo na mesma janela)...

Como gosto do BSPlayer perguntei ao professor se era possivel (ao invés do dito) fazer a parte do video separada do controlador (o BSPlayer tem o video numa janela e o controlador noutra...). Ele encorajou-me e portanto venho aqui perguntar se alguem sabe fazer isso?

Já agora, existe GTK para C#? Já ouvi falar em GTK#...

O que sugerem para interfaces? E como acham q de uma janela controlo outra? :-[

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
labrugice    0
labrugice

Boas, primeiro aproveito para dar os parabens pelo forum, é bom ver iniciativas destas em portugues  :)

Em relação a questão, vou tentar ajudar. Não garanto que seja a melhor maneira pq ainda estou a aprender C#, mas aqui vai:

Podes criar 2 forms, uma para os controles e outra para o video como disseste. Na segunda form, nos parametros do construtor podes por uma string que representa o nome do ficheiro a visualizar e crias metodos publicos para controlar o video tipo "Play()", "Stop()", etc

Na primeira form, inicializas primeiro a form2 ao nivel da classe:

Form2 form;

depois, quando o user selecionar o ficheiro cria-se uma nova form2:

form = new Form2(nomedoficheiro);
form.Show();

depois podes aceder aos metodos e propriedades da form:

form.Play();
form.Stop();
etc..

Não sei se era isso que pretendias, se não for, tentarei ajudar no que puder.

Um site que gosto bastante e o http://www.codeproject.com/

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruno    0
Bruno

Olá, obrigado!

Já andei por esse site! :)

Obrigado irei tentar fazê-lo! (entretanto se alguem descubrir um exemplo q desse mesmo para correr e mexer eu ficava agradeçido)

Um abraço! :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruno    0
Bruno

Se n for pedir mto podes gravar com compatibilidade com o 2003? É q na escola só têm o 2003 (e é lá q vamos fazer a discussão)!

Um abraço!

(isto supondo q é facil, caso tenhas q reescrever o codigo, deixa estar :))

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
labrugice    0
labrugice

Se tivesse instalado o 2003 fazia isso, mas acho que com o 2005 não da. :)  Mas se abrires os ficheiros *.cs individualmente da para ver bem como funciona.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruno    0
Bruno

Já explorei e thk... :P

Outra coisa, eu na 2ª janela não quero a barra do topo portanto escolhi a opção none (que tira-a) no entanto, com ela a none,  não me permite mover a janela!

Sabes como contorno esse problema?

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
motherFFH    1
motherFFH

detectar quando a janela é fechada:

protected override void OnClosing(CancelEventArgs e) {

  base.OnClosing (e);

  ...

}

deixar que se mova é mais complicado,tens que implementar IMessageFilter e usar win32 api para fazer mover a janela:

bool System.Windows.Forms.IMessageFilter.PreFilterMessage(ref Message m)

{

  if (this.IsDisposed)

    return false;

  if (m.Msg == WM_LBUTTONDOWN) // mover a janela com o click do botao esquerdo do rato

  {

    ReleaseCapture();

    SendMessage(Handle, WM_NCLBUTTONDOWN, (IntPtr)HTCAPTION, IntPtr.Zero);

    return true;

  }

  ...

  return false;

}

[DllImport("User32.dll")]

extern public static bool ReleaseCapture();

[DllImport("User32.dll")]

extern public static int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

public const int WM_LBUTTONDOWN            = 0x0201;

public const int WM_NCLBUTTONDBLCLK        = 0x00A3;

public const int HTCAPTION = 0x2;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruno    0
Bruno

Obrigado pela resposta rápida e completa :)

Se tiver mais duvidas eu volto a chatear :cheesygrin: (a 1ª parte do trabalho é para entregar 2ªf, no fds é que isto vai ter que andar mais :))

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruno    0
Bruno

Uma vez q tenho dois forms e quero apenas uma janela na taskbar tenho um problema! A segunda "janela" não apareçe qd a 1ª "ganha" focus!

Já vi que existe uma cena .focus() no entanto não sei onde hei-de invocar! Em suma o que queria era: qd clicam no programa na traskbar aparecessem as duas!

Obrigado desde já a quem me ajudar :cheesygrin:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade