首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

动态创建菜单请问

2013-01-28 
动态创建菜单请教本帖最后由 x309374055 于 2010-06-14 21:09:28 编辑void CSX06View::OnChar(UINT nChar,

动态创建菜单请教
本帖最后由 x309374055 于 2010-06-14 21:09:28 编辑


void CSX06View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if( 0x0d == nChar )
{
if( 0 == ++m_nIndex )//int型,构造函数中初始化为-1
{
m_menu.CreatePopupMenu (); //m_menu是私有成员

GetParent()->GetMenu ()->AppendMenu ( MF_POPUP,(UINT_PTR)m_menu.m_hMenu  ,
                                                               L"电话簿" );
//GetParent()->GetMenu ()->AppendMenu ( MF_POPUP,IDM_POPUP/*我自定义的*/,
                           //                                    L"电话簿" );

GetParent()->DrawMenuBar();
}
}
CView::OnChar(nChar, nRepCnt, nFlags);
}


为什么一点回车程序就崩溃了?我试加了句m_menu.Detach()也不行呢
[解决办法]

void CSX06View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    if( 0x0d == nChar )
    {
        if( 0 == ++m_nIndex )//int型,构造函数中初始化为-1
        {
           CMenu menu;
            menu.CreatePopupMenu (); //m_menu是私有成员
            
            AfxGetMainWnd()->GetMenu ()->AppendMenu ( MF_POPUP,(UINT_PTR)menu.m_hMenu , _T("电话簿") );

            menu.Detach();
            AfxGetMainWnd()->DrawMenuBar();
        }
    }
    CView::OnChar(nChar, nRepCnt, nFlags);
}

热点排行