我的意思是:
我要设计一个单文档的程序,在启动前,先弹出一个对话框(这个没有问题),用户有都种身份,如:操作员或是管理员,以不同的身份进入以后,在单文档的菜单上面,只有与登陆时相应的身份,才可以用的菜单,而其它的都是灰色的,不可用的,
请问,应该如何做,请详细说明,给出示例代码。

解决方案 »

  1.   

    提个建议:1、权限问题:在数据库设置权限:
    如:[purview]:101010111000111011000011000111111000000000分配菜单权限位置:
    如:以上[purview]中的第10项为About菜单取出权限字符串:
    CString csRole = _T( "101010111000111011000011000111111000000000");
    CString csAboutRole = csRole.Mid(10 - 1, 1);处理该菜单项的UPDATE_COMMAND_UI消息,以启用或禁用该菜单:
    void CMainFrame::OnUpdateMenuAbout(CCmdUI* pCmdUI) 
    {
        //1 = 启用;0 = 禁用;
        if (csThisRole == "1")
          pCmdUI->Enable(TRUE);
        else if (csThisRole == "0")
          pCmdUI->Enable(FALSE);
    }2、登录问题:在你的应用程序初始化函数中,显示登录对话框:
    如:
    BOOL CYouApp::InitInstance()
    {
       AfxEnableControlContainer();   //显示登录对话框
       CDlgLogon pLogon;
       if (!(pLogon.DoModal() != IDOK))
       {
          //验证不成功,则应用程序退出
          ::exit(1);
       }
       ...
    }
      

  2.   

    reval(莎士手枪)已经说的很清除了,启动登陆框在结合yuxiaojie() ,就一切OK
      

  3.   

    这不是很简单吗?
    要是不要求很高的安全性
    设个变量不就行了吗?
    当变量为FALSE时,禁用某些菜单
      

  4.   

    用 reval(莎士手枪)就可以了
      

  5.   

    重载每个菜单项的 UPDATE_COMMAND_UI 消息void CMainFrame::OnUpdateXXXX(CCmdUI* pCmdUI) 
    {
             // 根据需要 Enable/Disable
    pCmdUI->Enable( m_bProjectOpened );
    }
      

  6.   

    这个问题不难,我以前刚好做过,要的话留下EMAIL
      

  7.   

    非常的感谢,我的地址E-MAIL : [email protected]
      

  8.   

    关注.这个系统做起来是不难,我以前用VFP做过(虽然低级了一点,但效果绝对好),蛮好做的,VC没试过