如何使MFC做的一个对话框在用户登录后才能进行其他操作?

我做了一个对话框,分为上下两部分,上部分为登录,下部分为管理,如何使得只有登陆后才能对下部分进行编辑?也就是说未登录的时候下部分要是灰色的,Edit控件也不能输入数据... 我做了一个对话框,分为上下两部分,上部分为登录,下部分为管理,如何使得只有登陆后才能对下部分进行编辑? 也就是说未登录的时候下部分要是灰色的,Edit控件也不能输入数据 展开
 我来答
围逗p
2011-12-11 · TA获得超过142个赞
知道小有建树答主
回答量:78
采纳率:100%
帮助的人:98万
展开全部
初始化时直接设置管理部分的每个控件disable,在登录判断成功后,再把控件状态改回来。
设置控件不可用的方法为:EnableWindow( false );
设置控件可用的方法为:EnableWindow( false );
如果有id可以用下面的方法:
CWnd* wnd = GetDlgItem( IDC_COMBO1 );
wnd->EnableWindow( false );
如果都关联了有控件变量,直接用变量修改控件状态:
m_ctrlCombo.EnableWindow( false );
如果控件比较多,或者后面还可能经常改动,但这些管理控件都集中在某一区域,或有其他明显特征,可以查找对话框的所有子空间,判断是管理部分的,就设为disable,在登陆后再设置为enable状态,循环查找控件的方法,可以参考下面的代码:
wnd = GetWindow( GW_CHILD );
while( wnd )
{
//控件id
int id = wnd->GetDlgCtrlID();
//文本
CString text;
wnd->GetWindowTextW( text );
//位置
RECT rc;
wnd->GetWindowRect( &rc );

//根据得到的窗体信息,判断是否需要disable还是enable
BOOL bEnable = FALSE;

//更改控件状态
wnd->EnableWindow( bEnable );
//下一个控件
wnd = wnd->GetNextWindow();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式