Come fare MFC interfaccia discussioni

March 31

Un filo è un segmento di programma semi-indipendente che risiede all'interno dello spazio di memoria esecuzione di un programma. Il Microsoft Foundation Class (MFC) Biblioteca offre la classe CWinThread per rendere il codice thread-safe. CWinThread supporta thread di lavoro ei thread dell'interfaccia utente. A differenza di thread di lavoro adatto per l'elaborazione in background, le discussioni dell'interfaccia utente utilizzare le mappe di messaggi e di processo messaggi user-driven. Questo articolo si concentra sulla creazione e l'utilizzo di thread dell'interfaccia utente.

istruzione

1 Avviare Microsoft Visual Studio e creare un nuovo progetto. Per creare un nuovo progetto MFC, dalla barra dei menu, cliccare su "File"> "Nuovo". Fare clic sulla scheda "Progetti" e selezionare "Creazione guidata applicazione MFC (exe)." Digitare un nome di progetto sotto il "Nome progetto" casella di testo e premere "OK". Selezionare "documento unico" e "documento / vista il supporto di architettura" nella seconda pagina della procedura guidata e premere il tasto "Fine" e "OK".

2 Creare una classe filo con la creazione guidata classe. Nella barra dei menu, fai clic su "Visualizza"> "ClassWizard" o semplicemente premere Ctrl + W. Scegliere "Aggiungi classe"> "Nuovo". Inserire "CThread" nella casella di modifica "Nome" e scegliere "CWinThread" per "classe Base" nella casella menu a discesa. Premere il tasto "OK" due volte. Ora la creazione guidata classe ha creato discussione "h" e file "cpp" che memorizzano la dichiarazione e la definizione di CThread, rispettivamente.

3 Aggiungere una funzione membro alla classe CThread per la gestione dei messaggi. Nel riquadro di sinistra, fare clic sulla scheda "FileView", espandere la directory "File di intestazione" e fare doppio clic su "Thread.h" in modo che si apre nell'editor di origine. Rimuovi "CThread ();" sotto "protetta:" tagliandolo e incollare che linea sotto "pubblico:". Aggiungere "vuoto MsgHandler (WPARAM, LPARAM)", la definizione della funzione, alla riga successiva. Avanti, espandere la directory "Sorgenti" e fare doppio clic su "Thread.cpp" in modo che si apre nell'editor di origine. Aggiunge la definizione della funzione come illustrato di seguito:


invalidare MyThread :: MsgHandler (WPARAM, LPARAM)

{

// Codice di elaborazione messaggio

}

4 Incorporare la classe CThread in altri progetti MFC. Se è stata derivata una classe da CToolBar chiamato CModifiedToolBar, si dovrebbe inserire "# include" Thread.h "nella parte superiore del" file CModifiedToolBar.cpp ".

5 Utilizzare oggetti della classe CThread nel programma come segue:


// CModifiedToolBar.cpp

CThread * pThread;

pThread = new CThread ();

pThread-> CreateThread ();

pThread-> SetThreadPriority (THREAD_PRIORITY_ABOVE_NORMAL);

pThread-> Esegui ();

pThread-> SuspendThread ();

// eccetera.

Consigli e avvertenze

  • È anche possibile iniziare un filo di interfaccia utente con la funzione AfxBeginThread.
  • Non compilare il codice mostrato al punto 5; è il solo scopo di dimostrare.