火山PC实例实现软件登录。在前面的课程当中已经给大家讲解了火山的一些基础知识,那么从这一课开始,将会用实力的方式来把前面的知识全部穿起来,来让大家能够快速的上……
火山PC实例实现软件登录。在前面的课程当中已经给大家讲解了火山的一些基础知识,那么从这一课开始,将会用实力的方式来把前面的知识全部穿起来,来让大家能够快速的上手火山编程。
下面我们来看一下课前准备,首先我们要看一下如何修改窗口配色和一些设置,那么默认的配色,这种黑色啊,大家可能看起来有的时候呢,会不那么容易看,所以呢,在这一刻我们把配色呢,就修改为白色,那么同时呢,也给大家展示一下修改配色的方法,然后就是修改流程控制线,好,我们现在呢来打开火山。
那么要修改整体配色风格的话呢,我们可以使用工具选项,那么这里面呢,我们从那个系统里面就可以修改主窗口皮肤,然后呢,这里呢,是一些主窗口的皮肤啊,然后呢,一些活动的文档类型,那么这里呢,都是可以进行更改的。如果说我们要整个改,大家注意下面这里啊,有一个载入界面配置,那么这个时候呢,我们要选择我们火山的安装目录。
好,我们现在找到我们火山的安装目录,然后呢,里面有一个这个data文件夹,里面有白色,那么白色我们打开,那么大家看到整个界面呢,就有一个白色这样的风格,那么接下来呢,我们可以找到。
火山程序管理器,那么这里呢,有一个文档,这个文档呢,指的就是我们编写代码的这个窗口,那么这里呢,我们可以设置一下字体的大小,或者说设置其他字体,那这里呢,我们可以改成微软雅黑,把大小呢,我们调大两号,调成小四这样的一个大小,然后呢,我们点击确定。
再往下呢,我们也可以看一下啊,包括一些绘制什么的啊,那么这个呢,语句快啊,这个绘制方式,那么建议大家使用。
经典啊,使用经典,那么一会儿呢,给大家看一下经典的效果,那么接下来这些呢,大家可以根据自己的需要啊,来进行动态的更改,那么这里呢,就不一一给大家来展示的啊,大家可以看一下啊,每一个地方的颜色都是可以改的。那么当完毕之后呢,我们点击确定,这个时候呢,我们随便打开一个代码看一下。
哎,那么这个时候呢,我们发现字体啊有点小,我们再重新修改一下字体。
那这个地方呢,字体我们就再大一点好修改到三号试一下,诶这个字体呢就比较合适好,那么这里呢,先给大家介绍两个修改字体,那么这样的话呢,整个界面看起来也更加的容易啊,那写写代码呢,也不会特别疲劳。
好,我们继续。
首先我们开始看本课的知识点,首先是组件,窗口组件的使用,那么在这一节课当中,我们要用到下面这四种组件,分别是窗口。
那么这个窗口呢,就是窗口设计啊,以及这个多窗口的载入,我们在这一节课呢,都要给大家进行一个讲解,然后是标签,那么标签呢,就是静态文本的展示,它可以输入一段话,然后显示在上面。编辑框,那么编辑框呢,属于交互类组件,它是可以让用户输入文本,然后呢,我们程序中可以得到文本内容。
那么当然这个也可以展示用户给,呃,呃,展示文本给用户啊,这个都是可以的,按钮也是一个交互类的组件,那么他会反馈用户的点击事件,也就是说当用户点击的时候,那么这个按钮呢,就会向我们的程序发出一个消息,那么我们的程序就知道这一个按钮被点击了,那首先呢,我们还是创建这一节课的一个。
项目我们在这里呢,点击新建项目,那么这里呢,因为是窗口,我们可以直接使用MFC窗口程序,好,我们现在叫做第14课。
我们直接叫做窗口程序。那么在这里呢,大家看到当你新建完代码啊,新建完项目之后,会自动生成一些代码,那么这个代码当中已经包含了我们的主窗口。如果我们要打开窗口设计器,只要找到我的主窗口,然后呢,直接在这个类上面点击右键,选择设计我的主窗口界面布局,这个时候就会打开火山自带的界面编辑器。那么按照我们这个登录窗口啊,一般都会有标签提示输入用户名或者密码,然后呢,还会有一个按钮去点击确定。那么这里呢,我们就先添加标签。标签的名标题我们可以在右侧这里哈看到所有标签的属性。那么在这里呢,我们需要修改的是标题叫做用户名。
然后呢,我们也可以修改一下它的大小。紧接着呢,因为用户名我们需要让用户输入,所以呢,在后面会跟着一个编辑框,编辑框呢,就是用户用来输入用户名的。啊这里呢,我们修改一下它的名称。那大家注意,名称和标题是两回事,名称指的是我们在编程当中用到它的时候,我们把它啊,是吧,叫做什么?这个相当于是它在程序内部的一个名字。那么这个窗口里面的标题啊,意思是向用户展示它是怎么样的一个文本,是向用户展示的。所以说我们只要修改我们程序里面看的名称就可以了。那这里呢,我们可以把它叫做用户名。
接下来呢,我们还要再添加密码。
那么这个地方我把它叫做密码,然后呢,同样我也修改一下它的宽度,让它跟用户名啊对齐,这样子接下来我在添加密码编辑框。
那么这个编辑框呢,我就叫做密码。
那么这个时候大家要注意一点。那么当我们在其他程序当中啊,输入密码的时候,我们看到呢,有的程序是星号,有的程序可能密码就是一个点。那么这个是在哪里设置呢?那么大家可以看这里有一个叫输入方式。那么输入方式呢,我们可以把它选择成密码输入。那么当你选择为密码输入之后,大家再往下看,有一个密码遮盖字符。那么这个时候我们就可以指定是用什么字符遮盖密码。这时候我选择星号,然后点击回车。那么这个时候当用户输入任何东西的时候,都会以星号的形式把它盖住,就是防止密码被别人偷看。好,我们修改一下窗口的大小。
然后呢,添加一个按钮,我们可以进行登录。
那我们就直接叫做登录,同样的按钮的标题呢,我们也把它修改一下啊名称,那么这些名称呢,建议大家在编程的时候就进行修改,那么这样你在写代码的时候呢,就能很清晰的认识到你当前操作的是哪一个组件,如果只用按钮123啊,这样的话,那么你在后面的编程当中,很容易就分不清哪个组件是哪个了,所以说养成一个良好的编程习惯是非常有必要的。那么最后一步,我们看到这个窗口上面还没有标题是吧?所以我们呢,把窗口添加一个标题,那这里呢就叫做登录窗口。
然后我们直接点击确定,那么这个时候呢,大家看到下面呢,添加了几个成员,那么这些对应的都是我们的组件啊,都是我们的组件,那么现在呢,我们就直接点击IPHONE5,先让程序运行起来,看一下我们的界面对不对。
好,我们稍等。
因为MFC的话相比之前的控制台要大一点,所以它的编译速度会慢一点。那么现在呢,我们来看我们的窗口,首先用户名,然后编辑框密码编辑框下边有一个按钮,但是呢,我们发现窗口标题这个地方呢,有点不对,那么这里呢,我们需要注意一下目前的这个火山版本啊,我们如果修改标题的话,大家看到类这个地方有一个标题,但是上面这个窗口成员对象这个地方也有一个标题,那么我们就把这个这个地方的一个标题呢,暂时给它去掉,然后呢,我们再来运行一下。
那么这个时候呢,它的标题就正确了,那么这个呢,可能是一个小小的bug,那么在后面的版本中呢,肯定会修复的,那么现在呢,大家先这样来进行使用,那现在我们这个窗口就可以正常的出来了,但是呢,我们要注意,现在呢,只是一个登录窗口,那么当我们点击登录之后,肯定要载入另外一个窗口,所以在这里呢,我们将另外一个窗口也设计好。那么如何插入一个新窗口呢?我们在随意的地方直接点击右键,选择插入特定内容,大家看到这里有一个插入特定内容,然后我们选择窗口,点击添加,这个时候呢,就新建了一个新的窗口类,那么这个类呢,我可以叫做程序内部窗口,好,那我们这个窗口呢,就创建出来了,如果要修改它的界面布局呢?同样是在它上面点击右键,选择设计界面布局,这个时候呢。
就是我们程序的窗口,那么因为我们程序呢,只是一个展示,所以呢,我们就直接写一个啊,程序运行好就可以了,就表示我们的程序呢,已经载入进来就正常了,我们只是这样做一个跳转演示载入的这样的一个效果。那么到这里呢,我们已经把两个窗口的内容全部都设计好了,那么接下来呢,我们就要进入到代码编写这个地方了,所以呢,我们继续往后看。
我们就要认识一下命令了,那么这一课呢,因为我们要做一个登录这样的一个样式,那么所以呢,肯定我们要把账号跟密码它的正确的这个值给大家存起来,那么这里呢,我们可以使用配置文件来进行存储。那么首先呢,就给大家介绍写配置项还有读配置项这两个命令。那么写呢,就是将指定的文本写入到指定配置项中,那么同样的这个写呢,还有一个删除功能,那么这里呢,我们用不到,我们只只讲这个写的部分,如果指定配置文件不存在,会自动创建啊,所以大家写的时候呢,就不用检查文件是否存在的。读配置项呢,那么既然有写,肯定对应的有读,那么也是按照指定的配置文件格式去读取它里边的内容。
那么接下来呢,用要用到一些流程处理,那么这个流程处理呢,也是最基本而且最常用的命令,我们来看一下,如果否则这个是最最常用的,那么它是进行条件判断,满足条件则继续执行,不满足条件啊,就会跳到否则分支。
返回,返回就是直接终止当前方法执行,返回一个值就相当于后边的代码都不执行了,返回一个值直接返回给上一方,或者说返回给调用方。
好,OK。
然后我们还要再看两个去运行目录,去运行目录就是获取程序所在的目录,那么一会呢,这个要配合我们的配置项来一起进行操作。
然后还有信息框,信息框也就是大家最常看到的啊,一个弹窗,然后呢,会有一段提示文本,有一个或者两个或者三个按钮,那么这个呢,都叫做信息框,主要是给用户提示信息,并且呢,能够接受用户点击这样的一个返回,那么窗口呢,就是创建窗口啊,我们因为我们要创建一个新的窗口嘛,所以创建窗口这个命令啊。
我们也需要去使用好,那么我们就往下。
开始写代码,那首先呢,肯定我们在主窗口当中先写写什么呢。
当我们点击登录的时候,我们就需要写一些登录的方法,那么加入方法是怎么样的呢?我们可以看到右下角这里有一个事件及虚拟方法,我们直接选择第一个按钮被单击,那么这个时候呢,它会自动的跳到按钮被单击这样的一个事件下面。那么什么叫事件呢?就表示当按钮被用户点下的时候,程序会执行哪一段代码,那么这个呢,程序就会执行按钮被单击这样的一个事件,那么我们现在呢,就可以来写。
如果被点,呃,被点击了,我们就要先要得到编辑框账号和编辑框密码,这两个编辑框当中的内容,那所以呢,我们要新建两个变量,那新建两个变量。
账号和密码,那么他们保存的都是对应编辑框的内容,账号是用户名,密码就是编辑框密码。那么大家看到如果呢,你的名字起的很好的话,那么直接在敲代码的时候就会方便很多,就不用一个一个去查找。然后呢,我们得到了账号和密码的内容,那么这个时候呢,我们就要进行一个比对,进行比对,所以呢,我们现在就需要先做一个配置文件出来,因为现在呢,我们还没有指定谁是正确的这个密码,所以呢,我们要指定一个出来。那么下面呢,我们先找到我们程序的目录,那么找目录的方法呢,在前面已经给大家介绍过,在这里呢,我们直接点击新建,这里呢创建一个文本啊,我把它写成配置项叫做。
配置然后呢,Ii是配置文件这样的一个后缀名。那么配置文件的结构,这里给大家说一下。首先由中括号括起来的叫节,配置项叫节啊,它的节名,这里呢,我们的节可以叫做登录。那么下面的配置项呢,每一项分别就是用户名和密码。那么在这里呢,我们可以直接写admin,密码是123456,这个时候我们点击保存,那么这个配置文件呢,就已经我们手动生成好了。然后呢,我们在程序当中需要进行读取,所以呢,我们用读配置项这样的一个功能。那么读配置项呢,我们大家可以先看一下它的参数。
第一个参数是配置文件名,那就是文件名是一个路径,那么第二个是节名称,那么节呢?就是刚才给大家讲到的,节是用中括号括起来的配置项名称,那么配置项呢?就是配置结后面紧跟着的一个一个的等于,那么它们都叫做配置项,那么最后呢。
最后这一个参数是什么呢?就表示如果说,如果说这个读失败了,会有一个怎么样的一个返回值,那么默认的话它是为空,那么就是说如果失败了,就返回一个空文本啊,那这个就没有问题,那么我们就依次来填写它的参数。那么第一个首先是路径,那么路径呢,我们就要用到取运行目录这个命令,取得我们当前程序所在的这个目录,然后呢,要加两个杠,这里大家需要注意,因为如果一个杠它是一个转义符号,它代表的是将后面的一个字符转义为它本身的含义,那么如果两个的话,就相当于把斜线转成斜线本身,然后呢,我们再加我们的文件名,这是第一个参数,然后呢,我们来写第二个参数,第二个参数就是我们刚才写的节,第三个。
就是配置项,那么第四个呢,我们就留空,那么因为这里呢,我们读取到的是正确的密码,所以呢,在这里呢,我们再新建两个变量,正确账号正确密码。
好,那么现在呢,我们让正确的账号等于读配置项这个内容。那么正确的密码呢?我们同样的需要用读配置项。那么参数呢?跟上面是一样的啊,都需要在我们这个程序目录下面,然后找到这个配置文件,读取它里边的内容。pass pass。那么这样呢,我们就得到了用户输入的两个分别是账号密码和我们从文件中读取的正确的账号和密码。那么现在呢,我们就可以使用判断命令啊,不是判断啊,是如果命令,那么我们就可以对比一下账号和密码是否相等。这里呢,我们就使用账号,看看它是不是等于正确的账号。并且,那么并且的话,这里呢,我们可以输入一个。
解,然后呢,就出现两个这样的符号,那么大家直接把这两个符号也是可以的,并且就表示两个条件要同时满足。
那么我们再写密码等于正确密码,那么当这两个条件都满足的时候,那么肯定就是登录成功了,所以说呢,我们就给它载入登录成功的那个窗口,那么这里如何载入呢?那么窗口呢,我们看到我们载入的就是这个程序内部窗口,所以呢,我们将它添加为我们主窗口的一个成员变量。
我们修改一下名字啊,叫做程序内部窗口,然后呢,我们可以直接调用这个窗口的创建窗口这个方法,那么这样的话呢,我们就可以将这个窗口创建出来。
创建出来之后,我们运行看一下效果,我们先输入账号和密码,点击登录,现在这个窗口就弹出来了,但是我们发现原来的这个登录窗口它也在窗口上,我们需要的是当我们这个新窗口出来的时候,原来的登录窗口就被自动关闭掉。
所以呢,这里呢,我们可以先不让它关闭,因为如果主窗口关闭的话呢,整个程序就会退出,那么这个时候我们就使用一个可视等于甲这样的命令,当使用这个命令之后,这个窗口呢就看不到了,我们现在再试一次。
登录这时候大家看原先的窗口呢,就看不到了,现在呢是没有问题,但是呢,我们发现当我关闭了这个窗口之后,其实呢,整个程序还是在执行状态的,也就是说这个停止调试啊,正常状态应该是这样的,它才是停止,也就是说我们现在并没有把主窗口真正的关闭掉。
下面呢,我们就需要用这样的一个方法,我们为我们的这个程序内部窗口啊,加一个命令,加一个事件啊,可以说是事件加。
将被销毁这样的一个事件,将被销毁指的是这个窗口被我们关闭,然后呢,它已经开始释放资源,然后释放之后就会调用到将被销毁,在交,在将被销毁的时候呢,我们可以直接调用结束这样的一个命令,将整个程序呢结束掉,我们现在来看一下,我们来输入账号密码,点击登录,这个时候呢,弹出了我们的主窗口,现在我们点击叉。
这个时候呢,大家看到上面的这里呢,已经是正常的状态,就表示呢,这个程序被结束掉了。
上面这些是针对密码正确的情况,那么下面呢,我们要针对密码错误的情况进行一个编写,那么调用,否则那么否则就不需要再给参数了。我们直接往下,如果说错误的话,我们可以提示账号或者密码错误,请检查。我们可以看一下信息框的参数,第一个就是提示信息,也就是我刚才输入的这一段话,第二个参数是按钮,大家在看信息框的时候,经常会注意到它的按钮,有的时候是是否,有的时候是确认取消,有的时候又是在重试的。
这些呢,都是由按钮这个里面呢,进行动态的去创建的,那么这些呢,都是有值的,在这里呢,我们是用不到的,我们直接写零,最后一个是窗口标题,也就是我们提示框的标题,这里因为登录失败,所以我们给它提示登录失败,然后弹出这个窗口,我们看一下现在的效果,如果我输入了错误的账号密码。
它会提示账号或者密码错误,请检查,然后又回到这里,只有当我们输入了正确的账号密码之后,它才会进入到我们的主窗口当中,当我们关闭的时候,整个程序结束,这就是我们完整的一个流程。
好,那我们继续往后看。
上面的这些命令呢,都给大家来一一的讲到了啊创建窗口去运行目录信息框,以及我们前面提到的配置文件写啊读写,那么这里呢,我们只涉及到了读,那么写是一样的流程控制,我们用到了如果和否则。
可有返回,返回就是终止当前程序的执行,大家都看到在每一个下面呢,都会有一个返回,我们看这边最后都是一句返回结尾。
也是返回,因为有返回值,所以这里呢要写返回,如果说我们想提前返回也可以,我们可以在前面提前加一句返回,好比说在这里我们在可视等于甲的时候,我们直接调用返回,大家看一下现在的效果,我同样返回零,然后我再执行,我输入正确的账号密码,点击登录,可是等于甲没有问题,但是后边的代码没有被调用,窗口并没有载入,就表示我们使用的返回命令生效了。程序或者说这一个方法,这个方法执行到这里,他发现有返回,那么他就直接相当于是程序退出了,不能说是程序退出啊,应该是这个方法就退出了,下面的代码都不会执行,它只会执行到前面这最后一句,后面就返回啊,这个就是返回,大家下去之后呢,可以多。
动手来练习一下返回。
然后给大家说一下上一节课的作业,上一节课当中我们的作业是尝试以动物为鸡类,猫狗作为子类,要求父类中包含跑跳方法,子类猫具有额外的爬树抓老鼠方法,狗具有额外的犬吠方法,编写上面三个类,以多肽的方式调用两个子类的跑跳两个方法。
如果大家认真看上一节课的话,我们课程当中的那个例子,实际上呢,就是这样的一个例子,那么相当于是让大家来进行重写一遍,那么我们打开第13课。
我们在最后新建。
几个类,那这里呢,我就快一点,大家呢,根据自己写的,然后来看哪里写的有错误,首先是一个。
我们看一下啊,首先是一个鸡类叫做动物,那我们就先把动物写上,动物类,它有跑和跳,动物类的跑。
下面是跳,同样是动物类的跳,然后是猫,那么就创建猫类,它的基础类就是动物类,同样的方法,跑和跳都要有,那么这个时候就要求我们把它写为虚拟方法,可覆盖。
同样的虚拟方法可覆盖。
跑和跳,我们可以直接复制上面这两句,然后呢,把它粘到这里。
好,现在我们就有跑和跳,我们修改这里为猫,猫类跑,然后呢,这个就是猫类跳,有额外的方法,爬树,猫会爬树,我们同样把猫类写上猫会爬树,还有一个就是。
抓老鼠,我们再新建一个抓老鼠方法,同样的猫类抓老鼠,好,这个猫类呢,我们就创建完毕了,因为这两个方法是猫类独有的,所以我们不需要将它写为虚拟方法。
接下来我们创建狗这个类。
好,刚才点错了,我们重来一下。
我们点击插入,插入新类,这个类就是狗,同样的,它也是动物的子类,然后。
跑和跳是共用的,或者说是继承的,我们就直接把它写下来,这里呢改为狗狗类,狗类的跑和狗类的跳,那么狗类有额外的一个方法犬吠,我们添加犬吠这个方法,犬吠现在呢,我们要针对我们这三个类进行一个动态调用。那么刚呃,之前大家的这个课程当中已经给大家说到只能用于方法当中,所以呢,我们要新建几个方法啊,先新建两个变量,然后新建一个方法,分别是猫和狗。
然后新建一个方法。
那我们就可以叫做动物。
日常。
然后我们需要一个参数,这个参数就是实现多肽的一个重要参数,我们把它就叫做动物,同样的是动物类,我们直接调用动物的跑和动物的跳,我们在程序当中调用动物日常分别传入猫和狗,好,我们现在运行一下。
好,我们要修改一下当前的活动项目,在项目上点击右键,选择设置为活动项目,然后我们再次运行。
首先他会先执行我们上一节课的代码,然后再会执行我们的代码,我们现在就看一下实际输出的结果,首先是猫类的跑和跳,其次是狗类的跑和跳,表示我们的多态调用没有问题,我们传递过来的是猫,它就会动态调用到猫,我们传递的是狗,它就会动态调用到狗,所以这一块是没有问题的。如果要调用额外的方法,就需要使用猫点爬树和猫点抓老鼠,狗类同样狗边犬吠,就可以调用他们各自类当中的方法。
那看到这里呢,就会有各自的方法,那么这一个呢,就是上一节课的作业,大家可以参照一下自己的作业,看看有没有哪里写的不对的地方。
还没有评论呢,快来抢沙发~