Pointer Array Zuweisung..

Entschuldige, das habe ich falsch verstanden.


Wer legt den CHistodlg an und in welcher Beziehung steht derjenige zur CdlgView Klasse?
Irgendwer erzeugt diese beiden Objekte ja.

Du brauchst entweder einen Vermittler zwischen CHistoDlg und CdlgView Objekt oder du hast ihn vielleicht schon und siehst es nur nicht.
Ist der CHistoDlg modal oder nicht modal?
 
CHistoDlg is nicht modal.
Sie wird durch CMainFrame angelegt:

Code:
 void CMainFrame::OnToolsHistogramm() 
{
m_pModeless = new CHistoDlg(this);
m_pModeless->Create();
}

CdlgView wird durch das Framework erstellt.. hab also keine Ahnung wo das Objekt angelegt wird ;)

Ich habe nun folgendes versucht:
Ich übergebe das Array von CdlgView nach CMainFrame und von dort nach CHistoDlg.
Klingt ja irgendwie logisch..
Das Array kommt auch völlig intakt in CMainFrame durch eine Set-Methode an:

Code:
void CMainFrame::SetMainHisto(THistogram his){
MessageBox("MainFrame");
for(int i=0;i<256;i++)
m_Histo[i]=his[i]; //die Werte stimmen, habs überprüft
}

also müsste ich nun einfach eine Set-Methode in CHistoDlg einfügen:

Code:
void CHistoDlg::SetHisto(THistogram h){
 
for(int i=0; i<256;i++){
m_HistoDraw[i]=h[i];
}
 
MessageBox("nun in CHistoDlg::SetHisto");
CString str;
str.Format ("%i",h[100]);	//hier überprüfe ich wiederum einen wert, 
MessageBox(str); // jedoch sind sie hier falsch und enthalten nonsens
}

Es ist also nicht mehr weit bis zum Erfolg, glaub ich ;)
 
Du musst das an CMainFrame übergebene Histogramm noch an CHistoDlg übergeben.

void CMainFrame::SetMainHisto(const THistogram &his)
{
if(m_pModeless)
{
m_pModeless->SetHisto(his);
}
}
 
Zurück