Dela via


Formulärvyer (MFC)

Du kan lägga till formulär i alla Visual C++-program som stöder MFC-biblioteken, inklusive ett formulärbaserat program (ett vars vyklass härleds från CFormView). Om du inte ursprungligen skapade programmet för att stödja formulär lägger Visual C++ till det här stödet åt dig när du infogar ett nytt formulär. I ett SDI- eller MDI-program, som implementerar standardarkitekturen för dokument/vy, när användaren väljer kommandot Nytt (som standard på Arkiv-menyn ) uppmanar Visual C++ användaren att välja bland de tillgängliga formulären.

När användaren väljer kommandot Nytt med ett SDI-program fortsätter den aktuella instansen av formuläret att köras, men en ny instans av programmet med det valda formuläret skapas om en inte hittas. I ett MDI-program fortsätter den aktuella instansen av formuläret att köras när användaren väljer kommandot Nytt .

Anmärkning

Du kan infoga ett formulär i ett dialogbaserat program (ett vars dialogklass baseras på CDialog och en där ingen vyklass implementeras). Men utan dokument-/vyarkitekturen implementerar Visual C++ inteautomatiskt funktionen>. Du måste skapa ett sätt för användaren att visa ytterligare formulär, till exempel genom att implementera en dialogruta med flikar med olika egenskapssidor.

När du infogar ett nytt formulär i ditt program gör Visual C++ följande:

  • Skapar en klass baserat på en av de klasser i formformat som du väljer (CFormView, , CRecordViewCDaoRecordVieweller CDialog).

  • Skapar en dialogresurs med lämpliga formatmallar (eller så kan du använda en befintlig dialogresurs som ännu inte har associerats med en klass).

    Om du väljer en befintlig dialogresurs kan du behöva ange dessa format med hjälp av sidan Egenskaper för dialogrutan. Formatmallar för en dialogruta måste innehålla:

    WS_CHILD=På

    WS_BORDER=Av

    WS_VISIBLE=Av

    WS_CAPTION=Av

För program baserade på dokument-/vyarkitekturen, kommandot Nytt formulär (högerklicka i klassvy) också:

  • Skapar en CDocument-baserad klass

    I stället för att skapa en ny klass kan du använda valfri befintlig CDocument-baserad klass i projektet.

  • Genererar en dokumentmall (härledd från CDocument) med resurser för sträng, meny och ikon.

    Du kan också skapa en ny klass som mallen ska baseras på.

  • Lägger till ett anrop till AddDocumentTemplate i programmets InitInstance kod.

    Visual C++ lägger till den här koden för varje nytt formulär som du skapar, vilket lägger till formuläret i listan över tillgängliga formulär när användaren väljer kommandot Nytt . Den här koden innehåller formulärets associerade resurs-ID och namnen på de associerade klasserna dokument, vy och ram som tillsammans utgör det nya formulärobjektet.

    Dokumentmallar fungerar som anslutning mellan dokument, ramfönster och vyer. För ett enda dokument kan du skapa många mallar.

Mer information finns i:

Se även

Element i användargränssnittet