//don't do this!!when local variable goes out of scope ,
//windows API object is destroyed.
//
CMenu cm;
cm.LoadMenu(IDR_MAINMENU);The append operation will be short_lived
//
CMenu* pMenu =GetMenu();
pMenu->AppendMenu(MF_POP_UP,(UINT)cm.m_hMenu,"sdfsd");我对上面的解释的错误原因 不了解 大家能详细接受以下吗?
//windows API object is destroyed.
//
CMenu cm;
cm.LoadMenu(IDR_MAINMENU);The append operation will be short_lived
//
CMenu* pMenu =GetMenu();
pMenu->AppendMenu(MF_POP_UP,(UINT)cm.m_hMenu,"sdfsd");我对上面的解释的错误原因 不了解 大家能详细接受以下吗?
public:
CMenu m_menu; HMENU m_hmenu;HMENU CtrayDlg::CreateMenu()
{
m_menu.LoadMenu(IDR_MENU1);
return m_menu.Detach();
}
在对话矿的OnInitDialog()
{
HMENU m_Menu = NewMenu();
}
在一个消息响应函数里发现在调用m_menu和 m_hmenu都回出错是怎么回事啊 ? 这两个问题请高手解答?
public:
CMenu m_menu; HMENU CtrayDlg::CreateMenu()
{
m_menu.LoadMenu(IDR_MENU1);
return m_menu.Detach();
} 在对话矿的OnInitDialog()
{
HMENU m_Menu = NewMenu();
}
然后在另一个函数中
fun()
{
ASSERT(m_menu); //在这里出错 ?????????????????????????????????????????????
}