Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » 2 Funktionen mit unterschiedl. Scopes und 1Textfeld...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.04.2004, 12:19 Uhr
~Unwissende
Gast


Mhmmm, wie soll ich das jetzt schreiben?

Also, ich habe ein ganz normales Textfeld, zum Ausgeben von Text, die dazugehörige Member-Variable ist "IDC_Counter". Definiert in der Datei drv_test.cpp
hier die Definition:

C++:
class CAboutDlg : public CDialog
{
public:
    CAboutDlg();

    virtual BOOL OnInitDialog( );
// Dialogdaten
    //{{AFX_DATA(CAboutDlg)
    enum { IDD = IDD_ABOUTBOX };

....        
             int         m_WFCI_Direct;
    long    m_WFCI_Size;
             CString    m_strCounter;
.....
};  //end of class



in der gleichen Datei steht auch diese Funktion:



C++:
void CAboutDlg::OnFciRamtest()
{
             m_strCounter=_T("RAM-test not active");
    UpdateData(FALSE);
             rc=RAM_test(check, bla, bla);

}



in der Datei boardentry.cpp ist jedoch der "eigentliche" RAM-Test drin...


C++:
UINT8 RAM_test(UINT32 *adr, UINT32 rng, FILE *fp)
for(i=0; i<rng; i++)
//rng sind 8M, d.h. wird etwa 8Mio mal durchlaufen
    {
             }


in dieser Schleife soll bei etwa jedem 10000.Schleifendurchlauf in der Messagebox, wir erinnern uns, genau die, die ja eigentlich in der anderen Datei definiert ist..., der Wert von "i" ausgegeben werden...

Bin grad am Rumüberlegen ob ich das mit ner Funktion machen soll, die i zurückgibt...
Oder die Messagebox muss irgendwie global definiert werden, das wäre das einfachste........aber WIE..............?!?!?!

NAja, ich geh jetzt mal zum Essen...Mahlzeit!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.04.2004, 12:35 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


öhm wenn du in der funktion: UINT8 RAM_test(UINT32 *adr, UINT32 rng, FILE *fp) ne messagebox ausschmeissen willst (mal davon abgesehen das das mit ner messagebox ungeschickt ist, weil der dann ja nicht weiterrechnet so lange die messagebox angezeigt wird) dann ruf die messagebox doch einfach darin auf....

an deiner stelle würd ich einfach nen CProgressCtrl verwenden (also so eine fortschrittsbalken) der regelmässig aktualisiert wird....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.04.2004, 13:44 Uhr
~Unwissende
Gast



..Ist CProgressControl das Steuerelement Statusanzeige?
Ich probier das mal, dass ich die Statusanzeige innerhalb von UINT RAM_test() aufrufe...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.04.2004, 13:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wie das teil in der deutschen version heisst weiss ich nicht. Statusanzeige ist zumindest ein heisser kandidat...

was du vielleicht noch wissen solltest. Wenn du mit der Memberfunktion SetPos änderst und nicht einen Thread laufen lässt der dir die berechnung durchführt, wirst du das problem haben das er dir den statusbalken erst zum ende der funktion aktualisiert, was ja nicht gewollt ist.
deshalb danach immer ein UpdateWindow(); aurufen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.04.2004, 14:12 Uhr
~Unwissende
Gast


irgendwie blick ich da grad überhaupt nicht durch. Ich find im Internet auch keine gescheite Beispiel Syntax...Ich will doch nur die Laufvariable "i"etwa jeden 10000.Schleifendurchgang visualisieren...das kann doch nicht so schwer sein *heul*

C++:
UINT8 RAM_test(UINT32 *adr, UINT32 rng, FILE *fp)
for(i=0; i<rng; i++)
//rng sind 8M, d.h. wird etwa 8Mio mal durchlaufen
{
    
      if (i%10000==0)
      {
             akutalisiere hier die Statusanzeige
      }
}


die dazugehörende Member-Variable ist wie folgt definiert:

C++:
CProgressCtrl    m_progressbar;


leider aber immer noch in der "falschen" Datei...
kann ich die Deklaration "einfach so" rausnehmen und in die richtige Datei reinschreiben??? Oder hängt da noch mehr Code dran?

Wie mache ich denn jetzt weiter?
Ich suche mir jetzt eine passende Funktion zur Progressbar (mit dem Klassen-Assistent, Nachrichenzuordnungstabellen)?!?!?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.04.2004, 15:39 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


übergib deiner funktion z.b. einfach einen pointer auf deinen dialog
dann kannst du auf die members des dialoges zugreiffen so sie public sind
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: