Yshopnoosa.com

Hur man gör MFC dialogrutor

En dialogruta är ett grundläggande fönster från klassen CDialog av Microsoft Foundation Class (MFC) biblioteket. Du kan använda detta exempel för att förstå dialogrutorna genom att ringa en dialogrutan från en annan. Du skapa ett CDialog objekt via projektguiden först och sedan lagra en andra dialogruta som en resurs och skapa från guiden klass en klass som är associerade till den.

Instruktioner

1 Starta Microsoft Visual C++ 6.0 eller Visual Studio .NET. Skapa ett nytt MFC AppWizard (exe) projekt och namn den "Dialoger." Se till att "Dialog baserad" och "Använda MFC i en delad DLL" är markerade. Ta bort etiketten "TODO" från dialogrutan.

2 Lägga till en andra dialogruta. Klicka på "Projekt" och sedan "Lägg resurs". Välj "Dialog" under "Resurstyp" och klicka på "Nytt."

3 Ställ in den andra dialogrutan. Högerklicka på den och ändra dess ID till "IDD_DIALOGBOX2" och dess förklaring till "Andra." Stäng "Egenskapsdialogen." Koppla den andra dialogrutan med en klass. Öppna guiden klass genom att trycka på Ctrl + W. Markera "Skapa en ny klass," Ange "CSecondDialog" i textrutan "Namn" och välj "CDialog" som dess basklass. Klicka på "Slutför".

4 Lägga till funktionalitet genom att placera en knapp på den första dialogrutan i verktygslådan kontroller. Göra en rätt-klick på den knappen. Göra ID "IDC_BUTTONSECOND" och ändra rubriken till "Andra." Dubbelklicka på knappen, acceptera standardnamnet funktion och gör följande ändringar i koden i filen DialogsDlg.cpp.


Ange under "TODO" kommentaren: CSecondDialog m_D2;

m_D2. DoModal();

Inkludera "SecondDialog" definitionsfilen överst:

inkludera "SecondDialog.h"

5 Kompilera och köra koden. Testa programmet så att det fungerar.

Tips & varningar

  • Dialogrutor är antingen "modal" eller "fritt". En spärrad dialogruta måste avbokas före ansökan kan fortsätta. Ett fritt dialogrutan kan arbete med andra aktiviteter.
  • Den andra dialogrutan är ett exempel på ett modalt fönster. Den första dialogen är ett exempel på ett fritt fönster.