J'ai utilisé l'Assistant Application de Visual Studio pour créer un programme MFC squelette avec une interface multi-document. Lorsque je démarre ce programme, il crée automatiquement un cadre enfant, ce que je ne veux pas qu'il fasse - J'ai besoin que la zone client du cadre principal soit vide jusqu'à ce que l'utilisateur choisisse d'ouvrir un fichier. Le débogueur m'indique qu'un objet CChildFrame est créé lorsque la fonction InitInstance() de la classe d'application appelle ProcessShellCommand(), mais qu'est-ce qu'un bon point d'entrée pour remplacer ce comportement?Comment puis-je empêcher mon application MFC d'appeler OnFileNew() au démarrage?
2
A
Répondre
3
Cela a fonctionné pour moi - changement
if (!ProcessShellCommand(cmdInfo))
à
if (cmdInfo.m_nShellCommand != CCommandLineInfo::FileNew && !ProcessShellCommand(cmdInfo))
dans la fonction InitInstance() de votre application.
1
Ignorer l'appel ProcessShellCommand() (dans le cas de FileNew) dans InitInstance() est en effet le chemin à parcourir.
5
Cela fonctionne, il maintient l'impression/ouverture de la coquille, etc.
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing ;
}
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
+0
Je pense que cela équivaut à la réponse de jeffm. C'est plus long mais plus clair, et c'est plus proche de ce que j'ai fini par faire. –
1
Faites une chose ..
dans votre fichier XXXApp.cpp
dans cette méthode: -
commenter la ligne suivante .. /*
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo))
return;
*/
comme ça ....
Questions connexes
- 1. HRException au démarrage de mon application C# WPF
- 2. Comment empêcher Emacs de modifier automatiquement mon fichier de démarrage?
- 3. Empêcher un processus d'afficher une fenêtre au démarrage
- 4. Blackberry - comment démarrer mon propre service au démarrage du téléphone?
- 5. Comment ajouter une application au démarrage en utilisant l'installateur?
- 6. Comment déployer une application MFC?
- 7. CSocket :: Créer une exception de lancement dans mon application MFC
- 8. Comment empêcher l'éditeur de liens d'optimiser le code de démarrage?
- 9. Exécution d'une application au démarrage sous un utilisateur différent
- 10. Comment exécuter du code au démarrage d'une application dans une application Document
- 11. Hébergement ASP.NET au sein de mon application
- 12. Comment "publier" mon application?
- 13. Xcode se bloque au démarrage
- 14. Comment empêcher les autres d'intégrer mon flash?
- 15. Comment synchroniser l'horloge de l'ordinateur au démarrage?
- 16. Rendre une application MFC internationale
- 17. L'application WPF échoue au démarrage avec TypeInitializationException
- 18. Démarrage d'une session d'écran au démarrage avec ubuntu
- 19. Win32 Dialog fermeture au démarrage
- 20. Application basée sur le conteneur MFC
- 21. Application sur le démarrage de Windows C#
- 22. Comment ajouter un commutateur au démarrage du serveur dans Eclipse?
- 23. Empêcher les applications d'appeler mon activité
- 24. Comment rendre mon application intégrée?
- 25. MFC: fonction GetCurrentDirectory
- 26. service de retard au démarrage du système
- 27. Comment puis-je empêcher mon application de revenir en mode portrait pendant la navigation?
- 28. Comment empêcher une application Flex de s'exécuter uniquement à partir de mon site Web?
- 29. Comment configurer Solaris 9 pour démarrer automatiquement Synergy ou une application X-dépendante au démarrage?
- 30. Qu'est-il arrivé au menu contextuel dans mon application console?
Merci, je vais essayer. –
Ça marche! Mais ignorer complètement ProcessShellCommand() aura-t-il des conséquences indésirables? Que fait cette fonction? (J'ai échoué à trouver sa définition dans mon projet.) –
Je l'ai cherché dans les documents Visual Studio, et il semble que toute la fonction est de traiter le paramètre, donc c'est génial. Merci encore. –