您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 用C语言做一个简单的窗口程序
我们大一上学期学习了C语言,黄老师给我们只讲到了结构体,并且只是简单的说了一下,大多数同学对结构体以后的C内容基本属于空白,至今我们大多数同学只会编个简单的DOS程序,很多同学对以后找工作很是迷茫,很多同学都质疑学习C到底能干什么,现在的应用程序那么精彩,用一个C怎么做出来?其实我们仅仅学习C的皮毛,相信对于指针p*和数组a[]的概念大多数同学依旧是很乱,这就需要我们大家多多上机写程序,亲身做一下程序,理解起来就比较容易了。我们写的程序一般都是在cmd.exe(java也是如此)中运行,但是与用户有友好界面交互的应用程序我们还没有学习,我们也很想写出一个小程序,不需要多精彩,就想附件中自带的计算器这样的简单程序,但是用一个C行吗,以我们现在的知识水平能够编出一个像样的程序吗?我们编译出来的文件都是那样一个超难看的图标,我们能给我们的程序穿上好看的衣服吗?我们还在用着VC的经典版本VC++6.0,这一个看似不够强大的编辑器能够给我们编出一个强大的程序吗,答案是肯定的,一个VC++6.0足够了,虽然其中的BUG和界面设计很粗糙,但是对于我们初学者来说已经足够了,并且编出一个像模像样的应用程序也是足够的。(这让我很想带电脑去学校。。。学校规定计算机学院大一不能带电脑真的很奇怪。。。)下面我就介绍一下如何用C编写一个简单的真正意义上的窗口程序(无cmd.exe)AuxiliaryShutdown.exe辅助关机程序并且我们要给我们的exe程序加上一个漂亮的图标。先说说这个程序的作用:1.鼠标双击后运行2.弹出“系统提示”对话框,显示“你确定要关机吗?”以及是(Y)\否(N)两个button按钮3.左击是(Y)弹出二级对话框“系统提示”显示5秒钟后系统自动关机!以及一个“确定”button按钮;点击确定后,系统5秒后自动关机。左击否(N)退出程序。然后我们再分析算法,显然我们要用一个if语句来供应用户是与否的选择,那么我们如何让程序能够显示”系统提示对话框以及对话框的内容呢?我们要利用函数WinMain以及函数MessageBox,下面我用图文详解的方法,对程序做出详细步骤。一.我们目前只学习了C++SourceFile没有学习Win32控制台程序,我现在就用C++SourceFile给大家演示。首先新建一个C++SourceFile文件,明确新建的位置,取名AuxiliaryShutdown.c当然你想取什么就取什么,但最后一定要加上.c。二.输入下面大红框中的代码,即#includewindows.h#includestdlib.hintWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPreInstance,LPSTRlpCmdLine,intnShowCmd){inti;i=MessageBox(NULL,你确定要关机吗?,系统提示,MB_YESNO);if(i==IDNO){}else{MessageBox(NULL,5秒钟后系统自动关机!,系统提示,MB_OK);system(shutdown-s-t5);}return0;}点击编译,检查错误,知道改为正确为止进行下一步。三.点击组建按钮。我们会发现出现错误LNK2001,怎么会有错误呢,不要着急,我们先读取错误信息,提示没有找到main函数,我们知道一个C程序有且必须有一个main函数,那么我们的代码中到底有没有main函数呢,当然是有的,只不过我们的main函数是针对windows的WinMain函数,但是为什么会提示错误呢,我们原来的编译环境是DOS窗口,现在我们需要windows环境,那么我们就需要做出改变。四.我的VC++是中文版的,当时用的英文版的,但是其中精简了很多.h头文件,于是我就下载了这个中文完整版的,对比一下还是英文的比较好用,在编译时出错也会少,好了,废话少说,点击工程→设置就会出来ProjectSettings对话框,找到链接下的工程选项,找到console将其替换为windows,注意windows与后面/in...之间要有一个空格,点击确定,回到编译框。五.现在依次点击编译组建按钮(先不要按运行)看看是不是没有错误了~六.我们要为我们的程序加上一个漂亮的图标。点击插入→资源这时会弹出插入资源对话框,选择第一个即Accelerator后点击引入(注:我这里点击引入是引入一个我们自己想要的图标,当然你也可以自定义或者新建,不过用VC++6.0做的图标文件比较粗糙。凭个人爱好行之吧。)接上一步,弹出引入资源窗口,知道预先准备的图标文件,选定后单击引入(图标文件的制作很简单,你可以用一些专用软件制作,也可以直接用网页将图片格式的文件转化为.ico生成图标文件,本地保存。)引入后会显示出下面的窗口,如果无修改,可直接点保存,返回编译窗口AuxiliaryShutdown.c,当然也可修改后保存。单击保存后,会出现保存对话框,提示保存VC++6.0的脚本资源,随表找个位置保存就行了,但要记住你保存的地方,因为这个时候图标文件还没有正式加入程序呢。如何讲图标加入文件,我们需要找到FileView窗口,看下图即可,然后右击AuxiliaryShutdownfile弹出下拉框,选择添加文件到工程弹出插入文件到工程对话框,找到刚才保存的图标资源文件Script1.rc选择后点确定。这时我们在AuxiliaryShutdownfile里就会发现有两个文件如下图所示,这时我们依次点击编译组建按钮,确认无错后点击全保存按钮。然后退出VC++6.0就行了,我们的程序就编完了,但是我们编的AuxiliaryShutdown.exe在哪呢?往下看七.找到我们刚才新建AuxiliaryShutdown.c的文件夹,找到文件夹下的Debug文件夹,打开后,你就会发现AuxiliaryShutdown.exe文件,这个就是我们所编的程序了,你可以把它单独复制出来使用。八.程序完成。我把它拖到桌面上,运行了一下,然后点了否,不要随便点是,不然真的5秒后关机。如果你速度快的话,在开始运行中输入shutdown-a然后迅速敲击回车键即可阻止关机,不过5秒关机,对这个阻止过程的实现确实有点挑战。f(x)谨慎交流
本文标题:用C语言做一个简单的窗口程序
链接地址:https://www.777doc.com/doc-1521902 .html