冰镇哈啤教学:vc++中如何做登陆/程序、窗口切换?

来源:百度文库 编辑:高考问答 时间:2024/04/30 03:38:53
我门常见得登陆界面到应用程序的界面是怎么实现的?
在MFC中实现呢?

如果是基于文档的程序,可以插入一个对话框,在对话框中添加一个picture control,改变大小,使它覆盖整个对话框,在CMainFrame的OnCreate()里创建并显示对话框,然后Sleep()相应的时间,设置对话框的显示时间,Sleep()之后销毁这个对话框即可。不过在Sleep()期间你无法做其他的工作,如果要像photoshop这样在图片显示期间完成其他初始化工作,你可以设置一个定时器,创建对话框的同时启动定时器,就不妨碍同时进行初始化工作,当初始化完成时主窗口创建完毕时,隐藏主窗口,只显示启动画面,定时器设定的时间到时,销毁启动画面的对话框并显示主窗口就可以了。

如果是基于对话框的程序。
第一,你可以把picture control放在一个子对话框1中,把主对话框的控件放到一个子对话框2中,当启动时首先创建子对话框1,设置定时器,完成初始化,当设定的时间到的时候销毁子对话框1,调整主对话框的大小,创建子对话框2就可以了。

第二,你可以把启动画面的对话框设为主对话框,把程序的主窗口放到另一个对话框中,当启动时,显示启动画面,设置定时器,完成初始化,当定时器设定的时间到时,隐藏主对话框,创建并显示程序主窗口的对话框,也可以实现。

启动画面其实就是一个贴着图的对话框,实现的方法是很多的,你还可以想出其他的很多办法。

把登陆界面做成一个对话框,并生成相应的对话框类,在程序界面初始化之前就调用对话类实例的DoModal()方法,如果方法返回IDOK,则检测用户名和密码是否正确,正确则继续程序界面初始化的工作,错误则退出程序;如果方法返回IDCANCEL,当然也退出程序。

至于程序界面初始化的工作,在基于对话框的程序中,是在主对话框类的OnInitDialog方法中进行;在SDI和MDI的程序中,我也忘了具体是哪个方法,你可以在几个主要的类的构造函数和OnCreate方法中试一下,如CMainFrame,App,Doc,View类。