1

最近VS2003からVS2008に移植したMFCMDIアプリケーションがあり、同時にStingray Objective Studio2006v2からv10.1に移行しました。以前のバージョンのアプリケーションでは、複数のビューを開いていた場合、ウィンドウメニューには、使用可能なビューの列挙リストが表示されます。たとえば、1 MyViewA2 MyViewBなどです。多数のビューがある場合は、また、ビューを選択できるようにするWindows...メニューオプションも表示されます。これはもう起こりません。これは私のGUIレベルの回帰テストのいくつかを破っています。私の推測では、この機能はCMDIFrameWndまたはSECMDIFrameWndのいずれかによって実装されましたが、ドキュメントでそれへの参照を見つけることができませんでした。この機能を取り戻す方法を知っている人はいますか?

4

1 に答える 1

1

まず、ClassWizard を使用して新しい MDI アプリケーションを作成し、不足している機能が存在するかどうかを確認します。もしそうなら、周りをつついてみて、何が違うのかわかるかどうか見てください. 注目すべき場所の 1 つは、メイン メニューのメニュー リソースです。

必要なものを提供する機能が組み込まれていない場合は、次の疑似コードを使用してメニューを動的に構築できます。

foreach registered CDocumentTemplate 
    foreach document
        foreach view
        {
            if (numberOfWindowMenuItems < 5)
            {
                Add menu item
            }
            else
            {
                Add "Windows..." menu item
                break all loops;
            }
于 2009-08-07T01:29:05.770 に答える