我们大一上学期学习了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++ Source File 没有学习Win32控制台程序,我现在就用C++ Source File 给大家演示。
首先新建一个C++ Source File文件,明确新建的位置,取名AuxiliaryShutdown.c 当然你想取什么就取什么,但最后一定要加上.c。
二.输入下面大红框中的代码, 即
#include #include int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nShowCmd) { int i;
i=MessageBox(NULL,"你确定要关机吗?","系统提示",MB_YESNO); if (i==IDNO) {} else {
MessageBox(NULL,"5秒钟后系统自动关机!","系统提示",MB_OK); system("shutdown -s -t 5");
}
return 0; }
点击编译,检查错误,知道改为正确为止进行下一步。
三.点击组建按钮。我们会发现出现错误LNK2001,怎么会有错误呢,不要着急,我们先读取错误信息,提示没有找到main函数,我们知道一个C程序有且必须有一个main函数,
那么我们的代码中到底有没有main函数呢,当然是有的,只不过我们的main函数是针对windows的WinMain函数,但是为什么会提示错误呢,我们原来的编译环境是DOS窗口,
现在我们需要windows环境,那么我们就需要做出改变。
四.我的VC++是中文版的,当时用的英文版的,但是其中精简了很多.h头文件,于是我就下载了这个中文完整版的,对比一下还是英文的比较好用,在编译时出错也会少,好了,废话少说,点击工程→设置 就会出来Project Settings对话框,找到链接下的工程选项,找
到console将其替换为windows,注意windows与后面/in...之间要有一个空格,点击确定,
回到编译框。
五.现在依次点击 编译 组建 按钮 (先不要按 运行 )看看是不是没有错误了~
六.我们要为我们的程序加上一个漂亮的图标。点击 插入→资源 这时会弹出插入资源对话
框,选择第一个即Accelerator后点击引入
(注:我这里点击引入是引入一个我们自己想要的图标,当然你也可以自定义或者新建,
不过用VC++6.0做的图标文件比较粗糙。凭个人爱好行之吧。)
接上一步,弹出引入资源窗口 ,知道预先准备的图标文件,选定后单击引入(图标文件的制作很简单,你可以用一些专用软件制作,也可以直接用网页将图片格式的文件转化为.ico
生成图标文件,本地保存。)
引入后会显示出下面的窗口,如果无修改,可直接点保存,返回编译窗口
AuxiliaryShutdown.c,当然也可修改后保存。
单击保存后,会出现保存对话框,提示保存VC++6.0的脚本资源,随表找个位置保存就行
了,但要记住你保存的地方,因为这个时候图标文件还没有正式加入程序呢。
如何讲图标加入文件,我们需要找到FileView窗口,看下图即可,然后右击
AuxiliaryShutdown file 弹出下拉框,选择 添加文件到工程
弹出 插入文件到工程 对话框,找到刚才保存的图标资源文件Script1.rc 选择后点确
定。
这时我们在AuxiliaryShutdown file里就会发现有两个文件如下图所示,这时我们依次点击 编译 组建 按钮,确认无错后点击 全保存 按钮。然后退出VC++6.0就行了,我们的
程序就编完了,但是我们编的AuxiliaryShutdown.exe在哪呢 ?往下看
七.找到我们刚才新建AuxiliaryShutdown.c的文件夹,找到文件夹下的Debug文件夹,打开后,你就会发现AuxiliaryShutdown.exe文件,这个就是我们所编的程序了,你可
以把它单独复制出来使用。
八.程序完成。我把它拖到桌面上,运行了一下,然后点了否,不要随便点 是 ,不然真的5秒后关机。如果你速度快的话,在开始 运行 中输入 shutdown -a 然后迅速敲击回车
键即可阻止关机,不过5秒关机,对这个阻止过程的实现确实有点挑战。
我们大一上学期学习了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++ Source File 没有学习Win32控制台程序,我现在就用C++ Source File 给大家演示。
首先新建一个C++ Source File文件,明确新建的位置,取名AuxiliaryShutdown.c 当然你想取什么就取什么,但最后一定要加上.c。
二.输入下面大红框中的代码, 即
#include #include int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nShowCmd) { int i;
i=MessageBox(NULL,"你确定要关机吗?","系统提示",MB_YESNO); if (i==IDNO) {} else {
MessageBox(NULL,"5秒钟后系统自动关机!","系统提示",MB_OK); system("shutdown -s -t 5");
}
return 0; }
点击编译,检查错误,知道改为正确为止进行下一步。
三.点击组建按钮。我们会发现出现错误LNK2001,怎么会有错误呢,不要着急,我们先读取错误信息,提示没有找到main函数,我们知道一个C程序有且必须有一个main函数,
那么我们的代码中到底有没有main函数呢,当然是有的,只不过我们的main函数是针对windows的WinMain函数,但是为什么会提示错误呢,我们原来的编译环境是DOS窗口,
现在我们需要windows环境,那么我们就需要做出改变。
四.我的VC++是中文版的,当时用的英文版的,但是其中精简了很多.h头文件,于是我就下载了这个中文完整版的,对比一下还是英文的比较好用,在编译时出错也会少,好了,废话少说,点击工程→设置 就会出来Project Settings对话框,找到链接下的工程选项,找
到console将其替换为windows,注意windows与后面/in...之间要有一个空格,点击确定,
回到编译框。
五.现在依次点击 编译 组建 按钮 (先不要按 运行 )看看是不是没有错误了~
六.我们要为我们的程序加上一个漂亮的图标。点击 插入→资源 这时会弹出插入资源对话
框,选择第一个即Accelerator后点击引入
(注:我这里点击引入是引入一个我们自己想要的图标,当然你也可以自定义或者新建,
不过用VC++6.0做的图标文件比较粗糙。凭个人爱好行之吧。)
接上一步,弹出引入资源窗口 ,知道预先准备的图标文件,选定后单击引入(图标文件的制作很简单,你可以用一些专用软件制作,也可以直接用网页将图片格式的文件转化为.ico
生成图标文件,本地保存。)
引入后会显示出下面的窗口,如果无修改,可直接点保存,返回编译窗口
AuxiliaryShutdown.c,当然也可修改后保存。
单击保存后,会出现保存对话框,提示保存VC++6.0的脚本资源,随表找个位置保存就行
了,但要记住你保存的地方,因为这个时候图标文件还没有正式加入程序呢。
如何讲图标加入文件,我们需要找到FileView窗口,看下图即可,然后右击
AuxiliaryShutdown file 弹出下拉框,选择 添加文件到工程
弹出 插入文件到工程 对话框,找到刚才保存的图标资源文件Script1.rc 选择后点确
定。
这时我们在AuxiliaryShutdown file里就会发现有两个文件如下图所示,这时我们依次点击 编译 组建 按钮,确认无错后点击 全保存 按钮。然后退出VC++6.0就行了,我们的
程序就编完了,但是我们编的AuxiliaryShutdown.exe在哪呢 ?往下看
七.找到我们刚才新建AuxiliaryShutdown.c的文件夹,找到文件夹下的Debug文件夹,打开后,你就会发现AuxiliaryShutdown.exe文件,这个就是我们所编的程序了,你可
以把它单独复制出来使用。
八.程序完成。我把它拖到桌面上,运行了一下,然后点了否,不要随便点 是 ,不然真的5秒后关机。如果你速度快的话,在开始 运行 中输入 shutdown -a 然后迅速敲击回车
键即可阻止关机,不过5秒关机,对这个阻止过程的实现确实有点挑战。