2009-08-06 16 views
1

J'ai une application MDI MDI que j'ai récemment porté de VS2003 à VS2008, et en même temps déplacé de Stingray Objective Studio 2006 v2 à v10.1. Dans les versions précédentes de mon application, si plus d'une vue était ouverte, le menu Fenêtre était rempli par une liste énumérée de vues disponibles, par ex. 1 MyViewA, 2 MyViewB etc ... Si j'avais un grand nombre de vues, j'obtiendrais aussi une option de menu Windows ... pour me permettre de sélectionner une vue. Cela n'arrive plus, ce qui brise certains de mes tests de régression au niveau de l'interface graphique. Ma conjecture est que cette fonctionnalité a été implémentée par CMDIFrameWnd ou SECMDIFrameWnd mais je n'ai pas trouvé de référence dans la documentation. Est-ce que quelqu'un sait comment je peux récupérer cette fonctionnalité.Comment faire pour afficher les fenêtres disponibles dans le menu Fenêtre

Répondre

1

La première chose que je ferais est de créer une nouvelle application MDI avec ClassWizard et de vérifier si la fonctionnalité qui vous manque est présente. Si oui, fouillez et voyez si vous pouvez dire ce qui est différent. Un endroit à regarder peut être la ressource de menu pour le menu principal.

S'il n'y a aucune fonctionnalité construit pour fournir ce dont vous avez besoin, vous pouvez dynamiquement construire le menu avec le pseudo-code suivant:

foreach registered CDocumentTemplate 
    foreach document 
     foreach view 
     { 
      if (numberOfWindowMenuItems < 5) 
      { 
       Add menu item 
      } 
      else 
      { 
       Add "Windows..." menu item 
       break all loops; 
      } 
+0

C'est à peu près ce que je faisais, ce qui a isolé le problème se produit uniquement dans des projets basés sur Stingray. J'ai depuis été sur leur support technique et ai obtenu une solution. Merci pour les commentaires. –

Questions connexes