Nabídka Soubor v databázových aplikacích MFC
Pokud vytvoříte databázovou aplikaci MFC a nepoužíváte serializaci, jak byste měli interpretovat příkazy Otevřít, Zavřít, Uložit a Uložit jako v nabídce Soubor, i když pro tuto otázku nejsou žádné pokyny pro styl, tady je několik návrhů:
Úplně odstraňte příkaz Otevřít v nabídce Soubor.
Interpretujte příkaz Otevřít jako "open database" a zobrazte uživateli seznam zdrojů dat, které vaše aplikace rozpozná.
Interpretujte příkaz Otevřít jako "open profile" (otevřít profil). Zachovejte možnost Otevřít pro otevření serializovaného souboru, ale soubor použijte k uložení serializovaného dokumentu obsahujícího informace o profilu uživatele, jako jsou předvolby uživatele, včetně jeho přihlašovacího ID (volitelně kromě hesla) a zdroje dat, se kterým naposledy pracoval.
Průvodce aplikací MFC podporuje vytvoření aplikace bez příkazů nabídky Soubor souvisejících s dokumentem. Na stránce Podpora databáze vyberte zobrazení Databáze bez možnosti podpory souborů.
Chcete-li interpretovat příkaz nabídky Soubor zvláštním způsobem, musíte přepsat jeden nebo více obslužných rutin příkazů, většinou ve vaší CWinApp
-odvozené třídě. Pokud například zcela přepíšete OnFileOpen
(který implementuje ID_FILE_OPEN
příkaz), aby to znamenalo "open database:"
Nevolejte verzi
OnFileOpen
základní třídy , protože zcela nahrazujete výchozí implementaci tohoto příkazu rozhraní.Místo toho použijte obslužnou rutinu k zobrazení dialogového okna se seznamem zdrojů dat. Takové dialogové okno můžete zobrazit voláním
CDatabase::OpenEx
neboCDatabase::Open
parametrem NULL. Otevře se dialogové okno ODBC, které zobrazí všechny dostupné zdroje dat na počítači uživatele.Vzhledem k tomu, že databázové aplikace obvykle neukládají celý dokument, budete pravděpodobně chtít odebrat implementace Uložit a Uložit jako, pokud k ukládání informací o profilu nepoužíváte serializovaný dokument. Jinak můžete implementovat příkaz Uložit jako například "commit transaction" (transakce potvrzení). Další informace o přepsání těchto příkazů najdete v technické poznámce 22 .