用MFC写了一个界面,大概思想是利用菜单项的消息映射弹出登录界面对话框,输入账号密码后按下确认键时添加消息映射将菜单更换成另外一个菜单
void CGuanliyuanDlg::OnOK() 
{
// TODO: Add extra validation here
UpdateData();
CGuanliyuanDlg gDlg;
if(m_GZH!="admin")
MessageBox("账号错误");
else
if(m_GMM!="admin")
MessageBox("密码错误!");
    else
// CMainFrame::GuanliyuanMenu;
{
    m_GMenu.Detach();
         m_GMenu.LoadMenu(IDR_GUANLIYUAN);   //已经添加了CMenu类型变量m_GMenu
         SetMenu(NULL);
          SetMenu(&m_GMenu);
}
CDialog::OnOK();
}
可是结果菜单项在对话框消失的时候显示在了对话框了
应该怎么改呢?还是我这个方法不行?

解决方案 »

  1.   

    首先 你的 思路 好乱 ,我不太清楚 你 要 干什么 ,  你想 要 在 你的登录对话框中 输入 帐号和密码 后 然后 点击 OK ,切换 菜单 , 然后 菜单 显示 在 对话框 所处的 位置 了   不知道 是不是 这个意思 ,这样 的结果 ,你首先 查看下 你 显示 菜单 的 句柄 是不是 对 , 还有 可能  菜单显示的 时候 获取到的 焦点 是 你这个 对话框 ,所以 直接 就在对话框上显示了。   希望 能给你帮助
      

  2.   

    不是,因为我想做一个教学管理系统,分普通用户跟管理员登录,所以普通用户与管理员在菜单项上不同,所有我想通过不同的登录显示不同的菜单
      

  3.   

    结果 是 那个 切换的 菜单 出现 在 登录对话框 上 ? 
      

  4.   

    不是,而是在登录对话框消失的那段时间里以文本形式显示在上面