就是首先登录界面,检验密码用户名正确后,进入主菜单,如何根据不同权限将部分菜单变灰
比如有“用户” ,“管理员”两种权限
目前只会在主菜单界面使用用pCmdUI->Enable(FALSE);使菜单变灰,但是不知道怎么通过登录界面使这个函数响应。
或者是还有什么其它方法吗?
谢谢大家^_^

解决方案 »

  1.   

    打个比方
    这是你主对话框里的一小段程序CLogDlg cc;
    if(cc.domodal() == IDOK)
    {}
      

  2.   

    刚才没写玩就发出去了,继续CLogDlg cc;
    if(cc.domodal() == IDOK)

       int aa = cc.m_aa;打个比方,这个aa保存的就是那个权限的值
    }然后在你的登陆框,就是CLogDlg ,有个成员m_aa
    在你从数据库里面获得权限以后,保存在m_aa 里面
    然后在主框里像上面那样调用,就获得了呀这里m_aa是个public,按理说是要设成保护的,然后再做个接口的,我懒了
      

  3.   

    可以自定义消息,发送 WM_Login消息,然后菜单栏响应该消息修改响应的菜单项
      

  4.   

    明白了一点
    那要在主程序里判断登录界面的权限combox里面是什么值,然后根据不同权限控制某些菜单变灰怎么写呢
    谢谢^_^
      

  5.   

    现在在主菜单写了点程序,CUser是那个登录界面的类,UserManage是菜单栏的某一项,可是好像没反映,编译可以通过
    void CMainFrame::OnUpdateUserManage(CCmdUI* pCmdUI) 
    {
    CUser c;if(c.m_User=="用户")
    {
    pCmdUI->Enable(TRUE);
    }

    }
      

  6.   

    呵呵,你只能定义一个CUser 类的对象噢嗯??c不是你获得权限的那个对话框噢……再好好想想慢慢来,别急,呵呵呵呵
      

  7.   

    又改了下,主界面是类CMainFrame,登录界面是类CUser,在主界面的菜单栏中有“用户管理”菜单(UserManage),现在想登录时候检测如果权限是用户,就把这个菜单变灰。
    在CUser中定义了CString变量User,将权限值保存在里面,在主界面里extern调用,可是好像没用:(void CMainFrame::OnUpdateUserManage(CCmdUI* pCmdUI) 
    {
    CUser c;
        extern CString User;
    if(c.User=="用户")
    {
    pCmdUI->Enable(TRUE);
    }

    }