Jump to content

Dialog


Recommended Posts

Posted

Estou a começar a aprender a trabalhar com aplicações MFC no VC++ (Visual Studio 2005)  e encontro-me com uma dúvida.

Que passos devo seguir para programar o botão de uma barra de navegação de forma a que ao pressionar esse botão se abra uma caixa de diálogo?

No meu caso, por exemplo, ao carregar no botão Musica fazer aparecer o Dialog correspondente.

Posted

Fazes clique direito no item de menu Musica, "Add event handler...", escolhes COMMAND e a classe apropriada, Mudas o nome do método se quiseres, clicas Finish, e ele cria o método que vai ser chamado quando seleccionares esse item.

Desaparecido.

Posted

Apesar de já ter feito isso, ao correr o programa e pressionar a opção que pretendo não me vai aparecer o dialog correspondente.

Já criei um dialog chamado IDD_MUSICA.

Agora para ligar a opção Musica (barra de tarefas) ao dialog IDD_MUSICA , como fazer ?

Posted

Se estás a aprender, já consideraste a opção de usar a framework em vez de MFC?

Não que te queira mudar, só entender a razão que te leva a escolher esta tecnologia em vez do novo modelo.

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Posted

Estou a utilizar esta tecnologia , pois foi a que o professor sugeriu. 😞

O trabalho era para ser feito em consola, só que apareceu a ideia de se fazer a aplicação em modo gráfico.

As explicações que ele deu foi com MFC , daí estar a utilizar esta tecnologia!

Posted

O único código que tenho até agora é o que é gerado automaticamente quando faço aquilo que me disseste anteriormente...

Fazes clique direito no item de menu Musica, "Add event handler...", escolhes COMMAND e a classe apropriada, Mudas o nome do método se quiseres, clicas Finish, e ele cria o método que vai ser chamado quando seleccionares esse item.

Posted

Entao... mas isso só cria uma função e associa-a ao clique no menu. Nessa função tens que colocar o código para mostrar a dialog que criaste.

Desaparecido.

Posted

Já está resolvido !  😁

O problema estava na forma como estava a definir a nova classe.

A classe criada é a seguinte:

class CMusicaDlg : public CDialog
{
DECLARE_DYNAMIC(CMusicaDlg)

public:
CMusicaDlg(CWnd* pParent = NULL);   // standard constructor
virtual ~CMusicaDlg();

enum { IDD = IDD_NOVA_MUSICA };  // nome dado ao Dialog

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

DECLARE_MESSAGE_MAP()
public:
afx_msg void OnMusicaAdicionar();
};

O Dialog vai ser chamado da seguinte forma

void CTrabalhoGraficoApp::OnMusicaAdicionar()
{
CMusicaDlg MusicaDlg;
MusicaDlg.DoModal();
}

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.