Anzeige aktualisieren ?

can

Mitglied
Hallo Zusammen

Ich habe eine dialog anwendung "MidiTestDlg.h"

wie kann ich die anzeige im dialogfeld mit der funktion ProcessMidiBeat(void)
verbinden so das beats angezeigt werden ?

weiss nicht wie ich es machen soll!
Über ein Button Funktioniert es.

m_BeatAnzeige.Format("%d",Sync->beats);
UpdateData(false);

Aber es soll immer angezeigt werden ohne Button

Kann mir jemand helfen bitte

void MySync::processMidiBeat(void)
{
beats++;

//todo beat ausgabe im setupdlg

// force any and all views to update the beats display
/*CFrameWnd* pMainFrm = GetParentFrame();
CDocument* pDoc = pMainFrm->GetActiveDocument();
pDoc->UpdateAllViews(NULL);*/
}


Grüße Can
 
Ich verstehe dein Problem nicht ganz. Und was ist das für ein Codeschnipsel? Du erwähntest eine Dialoganwengung -- der Schnipsel ist aber aus einem MDI- Projekt.
 
Hallo Kachelator
Danke für dein antwort!

Du hast recht das sieht für dich wie eine MDI Anwendung aus
Ich habe dieses teil ausgeklammer so das mann seht wie mein problem in eine MDI Anwendung Funktioniert. Fehler. sorry der code ist aus eine MDI Bespiel Ich schreibe Aber eine Dialog Anwendung. der codee funktioniert bei meinem projekt auch .halt nur mit dem Button .es muss aber wie bei der MDI Anwemdung
fortlaufend gändert werden.

Das was Diese Code Macht .
// force any and all views to update the beats display
/*CFrameWnd* pMainFrm = GetParentFrame();
CDocument* pDoc = pMainFrm->GetActiveDocument();
pDoc->UpdateAllViews(NULL);*/

Brauche ich für DialogAnwendung.

Ich schreibe ein Musik Programm und bin Anfänger Mit programmiren

wenn das MidiFile gestartet wird.dann sendet die funktion
void MySync::processMidiBeat(void)
den Beat in einem MidiFile song

Also ich denke ich müsste ergend wie die HauptDlg.h in MySync.h bekannt machen und das textfeld Aktualisieren.

Andere Klassen In HaupDialog Klasse bekannt zu machen ist kein problem
Aber wenn ich die HaupDlg.h Klasse in anderen klassen wie MySync bekannt machen möchte und eine instanz anlegen will funktioniert es nicht.

Hier die MySync Klasse

//===========================================================================
// MySync Class
//===========================================================================
#include "stdafx.h"
#include "MySync.h"

BEGIN_MESSAGE_MAP(MySync, CMaxMidiSync)
//{{AFX_MSG_MAP(MySync)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

//---------------------------------------------------------------------------
// Constructor
//---------------------------------------------------------------------------
MySync::MySync()
{
beats = 0;
IsRecording(FALSE);
}

/////////////////////////////////////////////////////////////////////////////
// MySync virtual functions

//---------------------------------------------------------------------------
// ProcessSyncDone
//---------------------------------------------------------------------------
void MySync::processSyncDone(void)
{
// stop playback, but only if not recording
if(!IsRecording())
Stop();
//todo evt. im loop laufen lassen wenn ende erreicht
}

//---------------------------------------------------------------------------
// ProcessMidiBeat
//---------------------------------------------------------------------------
void MySync::processMidiBeat(void)
{
beats++;

//todo beat ausgabe im setupdlg

// force any and all views to update the beats display
/*CFrameWnd* pMainFrm = GetParentFrame();
CDocument* pDoc = pMainFrm->GetActiveDocument();
pDoc->UpdateAllViews(NULL);*/
}

Dieser code ist normale weise eine MenueAnwendung
ich habe ein teile ausgeklammer.das ausgeklammerte teil Aktualiesiert die beat anzeige im MenueFeld. der code muss doch auch ergendwie für Dialog Anwendung geben.

oder wenn ich von MySync.cpp aus zugriff auf die Members der HauptDialog klasse hätte. währe mein problem gelöst.

Grüße Can
 
Hab mir auch schon Gedanken über ein Midi-Programm gemacht (Tabulator in meinem Fall). Würde das ganze erstmal folgendermaßen strukturieren: Eine Klasse für eine Note (Informationen zu der Note speichern), eine Klasse für Akkorde (ein Array von Notenklassen verkapseln, plus Funktionalitäten), eine Managerklasse, die die ganzen Informationen beinhaltet und verwaltet. Diese Managerklasse sollte dann auch über eine Schnittstelle zur Visualisierung verfügen (wobei man das auch in eine andere Klasse auslagern kann/sollte). Frage: Wo und wie soll das ganze denn im Dialog dargestellt werden? Benutzt du derzeit CDocument? (Oder warum funktioniert das mit dem Button?) Ich würde dir empfehlen ein großes Paintfeld zu erstellen und über die genannte Visualisierungsschnittstelle da reinzumalen.

P.S.: Sorry, ich verstehe ganz schlecht, was du meinst. Wenn deutsch deine Muttersprache ist, versuch dir bitte beim Schreiben mehr Mühe zu geben, wenn nicht, nix für ungut ;).
 
Hallo Dudadida

Mit deine gedanken hast du recht wo soll das alles dargestellt werden.

ich schreibe ein Dialoganwendung weil ich gleich ein ganzes keyboard baue.
das keyboard selbst habe ich fertig das innen leben meine ich. jetz programmire ich es :) weil man auf der bühne kein maus sonder tasten benutz sind die funktionen auf die tasten gelegt. akkord erkennung und so weiter ist fertig.

ich muss nur noch mit MidiFiles umgehen können .

Ich habe die Klassen für Midi programmierung gekauft (MaximumMidi)
jetz erxprementiere ich damit .

mein problem ist wie kann ich von MySync aus auf die HauptDialog zu greiben Muss doch gehen.

Ps: meine mutter sprache ist türkisch :) sorry für meine schreib weise und meine unendlichen fehler.
 

Neue Beiträge

Zurück