Wachtwoord vergeten?

Wachtwoord vergeten
Vul hier uw email adres in. U ontvangt dan een nieuw wachtwoord.

INFO: achtergrondverwerking in een MFC-toepassing

Gepost op 04-02-2000 - Overige Microsoft Producten - 0 reacties


De informatie in dit artikel is van toepassing op:

  • Microsoft Foundation Class Library 4.2

Dit artikel is eerder gepubliceerd onder NL99999

Samenvatting


Veel toepassingen voeren langdurige bewerkingen 'op de achtergrond' uit op ogenblikken dat de gebruiker niet op andere wijze met de toepassing werkt. In een toepassing die ontwikkeld is voor het besturingssysteem Microsoft Windows, kunnen bewerkingen op de achtergrond worden uitgevoerd door een langdurig proces op te splitsen in kleine fragmenten. Na de verwerking van elk fragment, draagt de toepassing het beheer van de uitvoering over aan Windows via een PeekMessage()-lus.


Een toepassing die is ontwikkeld met de Microsoft Foundation Class-bibliotheek, kan op twee manieren bewerkingen op de achtergrond uitvoeren: via de PeekMessage()-lus in de hoofdberichtlus van de bibliotheekcode of door een andere PeekMessage()-lus in de toepassing in te sluiten.


OPMERKING: de voorbeeldcode die verderop in dit artikel wordt weergegeven, heeft betrekking op Visual C++ voor Windows en Visual C++ 32-bit Edition, versie 2.x. Raadpleeg voor C++ 32-bit Edition versie 4.0 de veelgestelde vragen (FAQ) over "Background Processing in an MFC Application" (achtergrondverwerking in een MFC-toepassing) in de on line-handleidingen van Visual C++ 4.0.

Meer informatie


In een toepassing die ontwikkeld is met de Microsoft Foundation Class-bibliotheek, bevat de hoofdberichtlus in de CwinApp-klasse een PeekMessage()-lus. Deze lus roept de functie CWinApp::OnIdle() aan tussen twee berichten. Een toepassing kan gedurende de periodes van inactiviteit berichten verwerken door de functie OnIdle() te overschrijven. Raadpleeg de documentatie over de functie CWinApp::OnIdle() in het handboek "Class Libraries Reference" voor meer informatie over het uitvoeren van achtergrondverwerking met de functie OnIdle().


Een andere methode voor het uitvoeren van achtergrondverwerking in een toepassing, is door een PeekMessage()-lus in een functie in te bouwen. Een PeekMessage()-lus lijkt op de hoofdberichtlus en moet dus in een toepassing die ontwikkeld is met de Microsoft Foundation Class-bibliotheek veel van de functies van de hoofdberichtlus in de bibliotheek uitvoeren. Het volgende codefragment vormt een voorbeeld van een PeekMessage()-lus die compatibel is met de Microsoft Foundation Class-bibliotheek:

while (bDoingBackgroundProcessing) { while (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) { bDoingBackgroundProcessing = FALSE; ::PostQuitMessage(nExitCode); break; } if (!AfxGetApp()->PreTranslateMessage(&msg)) { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } } AfxGetApp()->OnIdle(0); // werkt de gebruikersinterface bij AfxGetApp()->OnIdle(1); // maakt tijdelijke objecten vrij
// Voer hier achtergrondbewerkingen uit // Als de taak op de achtergrond voltooid is, // stel bDoingBackgroundProcessing in op FALSE }

PrintPrint RSS reactiesRSS reacties BookmarkBookmark

Gekoppelde tags

32-bit, Patch, Visual C

Reacties
Nog geen reacties geplaatst.

Winkelmandje

Het winkelmandje is leeg

Inloggen
Als u hierboven op de knop 'bestellen' klikt krijgt u een overzicht van de door uw gewenste producten. Indien het overzicht compleet en correct is kunt via de wizard de verdere gegevens invullen en uw bestelling afronden. In het bestelproces kunt u altijd op 'vorige' drukken om terug te gaan in het proces. Bij Perrit staan vertrouwen, privacy en veiligheid op de eerste plaats, wij zullen uw gegevens dan ook met uiterste zorgvuldigheid behandelen en nooit doorgeven aan derden.

Perrit.nl Sherwood Rangers 29 Hengelo

Perrit.nl telefoon: +31 74 750 12 20

Kenniscentrum - INFO: achtergrondverwerking in een MFC-toepassing
Perrit Kenniscentrum - INFO: achtergrondverwerking in een MFC-toepassing