我的意思是:
我要设计一个单文档的程序,在启动前,先弹出一个对话框(这个没有问题),用户有都种身份,如:操作员或是管理员,以不同的身份进入以后,在单文档的菜单上面,只有与登陆时相应的身份,才可以用的菜单,而其它的都是灰色的,不可用的,
请问,应该如何做,请详细说明,给出示例代码。
我要设计一个单文档的程序,在启动前,先弹出一个对话框(这个没有问题),用户有都种身份,如:操作员或是管理员,以不同的身份进入以后,在单文档的菜单上面,只有与登陆时相应的身份,才可以用的菜单,而其它的都是灰色的,不可用的,
请问,应该如何做,请详细说明,给出示例代码。
如:[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);
}
...
}
要是不要求很高的安全性
设个变量不就行了吗?
当变量为FALSE时,禁用某些菜单
{
// 根据需要 Enable/Disable
pCmdUI->Enable( m_bProjectOpened );
}