注册 登录
编程论坛 C++教室

关于软件登陆的相关操作

鸿蒙之灵 发布于 2020-05-11 15:34, 1934 次点击
登录过程中的用户名匹配密码验证(包括人脸识别与指纹验证均已实现)

问题:
软件启动首先是一个非全屏的登录界面,登录成功后主界面全屏显示,但是在用户注销的时候,怎么能够关闭全屏的主界面,仅显示一个登录框,现在我的登录框是一个Dialog,DoModal的时候没有边框,请问要怎么实现,能否提供一个思路;(想要的效果类似扣扣软件那样,切换账户的时候不会退出软件,但会回到登录界面,且聊天的主窗体会关闭,这里注意到登录界面和聊天界面的窗体就不一样大小,且在屏幕中的位置也不同)
3 回复
#2
rjsp2020-05-11 16:10
for(;;)
{
    INT_PTR nResponse = 登录dlg.DoModal()
    if( nResponse != IDOK )
        break;

    nResponse = 工作dlg.DoModal() // 点击“注销”时,返回一个特定的数,比如 EndDialog(,123)
    if( nResponse != 123 )
        break;
}
#3
鸿蒙之灵2020-05-11 16:29
回复 2楼 rjsp
我的主界面是View类绘制的,这个也可以吗,现在我的矛盾点就在这里,首次启动倒是没问题,主要就在注销的时候,如何去关闭View类的相关窗体,任务栏里面也不要。

并且对话框的DoModal不能这么在for循环里无限弹吧

[此贴子已经被作者于2020-5-11 16:31编辑过]

#4
rjsp2020-05-11 16:52
注销时 m_pMainWnd->ShowWindow(SW_HIDE);
登录时 m_pMainWnd->ShowWindow(SW_SHOW);

对话框的DoModal不能这么在for循环里无限弹吧
定义成局部变量可以
for(;;)
{
   登录dlg类 登录dlg;
    INT_PTR nResponse = 登录dlg.DoModal()
    if( nResponse != IDOK )
        break;
1