CPropertySheet && CMenu

[戻る]
キムチ 2005/09/13(火) 19:41:02
VC++初心者です。

ダイアログベースにてCPropertySheetの派生クラスを作成し、
プロパティページを表示するプロジェクトを作成しました。
(プロパティページクラス→AddPage())

そのダイアログにシステムメニューを追加したくなり、
以下の方法にて試みたのですが表示されませんでした。

@
リソースエディタのダイアログプロパティ内のメニューにて作成したメニューを設定
A
CPropertySheet派生クラス::OnInitDialog()
{
         CMenu menu ;
    if( ! menu.CreateMenu() ){
        return FALSE ;
    }
    if( ! menu.LoadMenu(IDR_MENU)){//←ここでエラー・・・
        return FALSE ;    
    }
}
何かよい方法はありませんか?
ご教授お願いします。

dairygoods 2005/09/13(火) 19:46:41
どんなエラーが出ますか?

予想では、Create と Load を両方行うのは無理ではないかと思うのですが。

キムチ 2005/09/13(火) 19:54:45
エラーは調べたところASSERTでしたm(__)m
-------------------------------------
BOOL CMenu::Attach(HMENU hMenu)
{
    ASSERT(m_hMenu == NULL); //ここでおきていました・・・       
    if (hMenu == NULL)
        return FALSE;
    CHandleMap* pMap = afxMapHMENU(TRUE); // create map if not exist
    ASSERT(pMap != NULL);
    pMap->SetPermanent(m_hMenu = hMenu, this);
    return TRUE;
}
-------------------------------------
Create して Load するものかと思ってました(^−^;;)

キムチ 2005/09/13(火) 21:00:35
[[解決]]
すみません、初歩的で・・・。

    if( ! m_Menu.LoadMenu(IDR_MENU)){
        return FALSE ;    
    }
    if(!SetMenu(&m_Menu)){
        return FALSE ;
    }
で出来ましたm(__)m

古いスレッドには追加発言できません。