LL_­INFO_­METER

Aufgabe:

Benachrichtigung, dass eine möglicher­weise länger dauernde Operation mit den Objekten durchgeführt wird.

Aktivierung:

Immer aktiviert

Parameter:

lParam zeigt auf eine scLlMeterInfo-Struktur:

_­nSize: Größe der Struktur

_­hWnd: Handle des List & Label Hauptfensters

_­nTotal: Gesamtzahl der Objekte

_­nCurrent: gegenwärtig bearbeitetes Objekt

_­nJob: Aufgabe, mit der List & Label beschäftigt ist:

Aufgabe

Bedeutung

LL_­METERJOB_­SAVE

Speichern der Objekte

LL_­METERJOB_­LOAD

Laden der Objekte

LL_­METERJOB_­CONSISTENCYCHECK

Konsistenzprüfung der Objektliste

 

Hinweise:

Durch diesen Callback kann z. B. ein Fortschrittsbalken angezeigt werden. Der Prozent­wert einer Fortschrittsanzeige berechnet sich über MulDiv(100, _­nCurrent, _­nTotal).

Beispiel:

// Die Funktionen WaitDlg... müssen durch eigene Funktionen
// ersetzt werden


switch (wParam)
{
   case LL_­INFO_­METER:
   {
      scLlMeterInfo* pMI = (scLlMeterInfo*)lParam;
      static hJob hMeterJob = 0;
      if (pMI->_­nSize == sizeof(scLlMeterInfo)) // is actual version?
      {
         // do I have to do something?
         if (pMI->_­nTotal > 0)         
         {
            // get parent window handle for Dialog
            HWND  hWndParent = pMI->_­hWnd ? pMI->_­hWnd : hwndMyFrame;
            if (pMI->_­nCurrent == 0)           
            {
               // open meter bar with 0%!
               hMeterJob = WaitDlgStart(hWndParent, T("wait a moment"),
                  0);
            }
            else 
            {
               // end:
               if (pMI->_­nCurrent == pMI->_­nTotal)     
               {
                  // end meter bar!
                  WaitDlgEnd(hMeterJob);
               }
               else                   
               // somewhere in between 0 and 100
               {
                  // set meter value to MulDiv(100,_ ­nCurrent, _­nTotal)
                  WaitDlgSetText(hMeterJob, T("still working..."),
                        MulDiv(100, pMI->_­nCurrent, pMI->_­nTotal));
               } 
            }
         }
      }
   } 
   break;
}