• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Bruno

C# - Interface

16 mensagens neste tópico

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? :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas isso tá na própria janela, sabes fazer em diferentes?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sorry inda sou noob!  :wallbash:

Mas se descobrires partilha ai!  :)

PEACE  :smoke:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ninguem consegue ajudar?

Alguem sabe de um forum de "genios" em C#? :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou com outra dúvida e gostava que me ajudassem.

Eu queria detectar no código quando uma das janelas é fechada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

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