两个对话框 登录对话框 IDD_LOGIN 注册对话框 IDD_REGISTER,其中包括添加用户这一项
以管理员身份登录后,可以添加用户,普通用户没有这一权限
想在OnBnClickedRegister()函数中判断有没有权限进行操作,需要获得登录时用的用户名
CString str=_T("");
GetDlgItemText( IDD_LOGIN,IDC_EDIT1,str);
报错,说是没有与参数列表匹配的重载函数。
这种方法能不能获取控件变量的值?应该怎么用呢?
求指导!
以管理员身份登录后,可以添加用户,普通用户没有这一权限
想在OnBnClickedRegister()函数中判断有没有权限进行操作,需要获得登录时用的用户名
CString str=_T("");
GetDlgItemText( IDD_LOGIN,IDC_EDIT1,str);
报错,说是没有与参数列表匹配的重载函数。
这种方法能不能获取控件变量的值?应该怎么用呢?
求指导!
必须保证B对话框对象存在且窗体存在,
可以通过保存控件指针调用.
//你先非模态创建登陆对话框,保存登陆对话框的指针。
public:
CLoginDlg *m_pLoginDlg;
void CRegisterDlg::OnButton1()
{
m_pLoginDlg = new m_pLoginDlg;
if (m_pLoginDlg->Create(IDD_LOGIN_DIALOG, this))
{
m_pLoginDlg->ShowWindow(SW_SHOW);
}
}//////////////////////////之后就可以用这个指针去获取注册对话框的成员了。
void CRegisterDlg::OnButton2()
{
if (m_pLoginDlg != NULL)
{
CString str;
m_pLoginDlg->m_edit1.GetWindowText(str); //获取edit的值
MessageBox(str);
}}
CLoginDlg dlg;
dlg.DoModal();
Cfirstproject1App* myApp=(Cfirstproject1App*)AfxGetApp() myApp->globalusername=dlg.m_username;//访问变量
OnBnClickedRegister()
{ Cfirstproject1App* myApp=(Cfirstproject1App*)AfxGetApp();
if( myApp->globalusername.IsEmpty())
AfxMessageBox(_T("没有取到用户名!"));
}
结果真的没有取到值,请问这是怎么回事?
GetDlgItemText( IDD_LOGIN,IDC_EDIT1,str);
---------
你看到GetDlgItemText有这样的传递参数的吗?
你构造另个对话框对象的时候将需要的参数传递进入,修改该对话框类的构造函数即可,用来接收传递的参数