论文部分内容阅读
上网冲浪的乐趣之一,就是下载各种各样的共享、免费软件试用,在惊叹软件作者的奇思妙想之余,你是否也想加入到软件开发者的行列?在一般人的眼中,程序员是一群拿着高工资的深不可测的人,想像着他们在0和1的数字世界中穿梭,似乎无所不知无所不能。其实,只要有兴趣并且有耐心,你同样也可以成为令人尊崇的程序员。怎么,你不相信?那就试着随我一起开发一款实用的工具软件吧,非常简单,没有多少编程基础也不要紧。
实例:我的光驱精灵—实用的光驱开/关软件
在Windows XP的“我的电脑”中,右击光驱盘符,选择“弹出”,即可弹出光驱。这一功能免去我们用手按光驱上按键的操作,可延长光驱的使用寿命。但是非常奇怪的是,Windows XP却没有提供相应的“关闭”功能,只能用手工方式按回光驱。下面我们要开发的“我的光驱精灵”软件,则可以自由地开/关光驱。我们使用是微软著名的开发套件Visual Studio.NET 2003中的Visual C++(以下简称VC++)。源项目文件及最终编译好的可执行程序,可从http://www.newhua.com/cfan/200606/CDcontrol.rar处下载。使用VC++ 6.0的朋友,同样可以借鉴。
STEP1
启动Visual Studio.NET 2003,执行“文件→新建→项目”菜单命令打开新建项目对话框,如图1所示,点击展开左侧的“Visual C++项目→MFC”,在右侧选中“MFC 应用程序”。接着输入项目名称(如:CDcontrol),并设置好项目的存储位置(如:E:\MyPrograms)。
STEP2
单击“确定”,将打开MFC应用程序向导,如图2所示,点击左侧“应用程序类型”,在右侧选中“基于对话框”项(见图2)。
★在“MFC的使用”项中,如果选择“在共享DLL中使用MFC”项,最后生成的程序会很小,但是要确保使用者的系统内已安装有MFC动态库文件;如选择“使用静态库中的MFC”项,则生成的程序会将MFC库文件一同包含到程序内,就不用担心用户的系统内是否有MFC动态库了,不过这样生成的程序文件也会大很多。
★VC++ 6.0的新建项目向导是以“下一步”的方式一步一步进行的,不过它的选项设置与VC++.NET 2003非常相似。
★在“MFC的使用”项中,如果选择“在共享DLL中使用MFC”项,最后生成的程序会很小,但是要确保使用者的系统内已安装有MFC动态库文件;如选择“使用静态库中的MFC”项,则生成的程序会将MFC库文件一同包含到程序内,就不用担心用户的系统内是否有MFC动态库了,不过这样生成的程序文件也会大很多。
STEP3
还可以继续设置“用户界面功能”及“高级功能”等项,这里取默认值,最后单击“完成”按钮返回VC++主界面,会发现已经自动生成对话框界面(见图3)。
STEP4
显然自动生成的界面与我们实际的要求相去甚远,下面就来修改一下,最后的效果如图4所示。
1.执行“视图→工具箱”命令调出工具箱,选择“指针”工具,用它将原界面中的“确定”和“取消”按钮拖放到对界面的右下角。点选“确定”按钮,在右下角“属性”窗口(按F4键显示)中,找到Caption(标题)项,将它的值改成“关于”,回车确定后按钮上的文字随之改变。同样方法,将“取消”改成“退出”。
2.选择工具箱上的Button(按钮)工具,在界面左上角拖画出两个按钮,通过修改Caption的方法,将两个按钮的默认文字分别改成“弹出”和“关闭”。
3.原界面中的提示“TODO:在此放置对话框控件”,实际上就是一个静态文本控件,点击它,同样修改其Caption的值,改成图4所示中的“友情提示……”。如想在静态文本控件中输入多行文字,在需要回行处要加上转义符“\n”(不含引号)。文字太多,显示不出来的时候,可拖动控件四周的节点拉大它即可。选中工具箱中的Static Text(静态文本)工具,在左下角再拖画出一个文本控件,并将其Caption的值修改成自己需要的。
★VC++ 6.0中,控件属性是以独立的对话框形式出现,双击某控件即可打开相应的属性对话框。
STEP5
我们是通过Windows多媒体设备的程序接口MCI提供的功能来实现光驱开/关控制的,所以要加入必要的头文件及库。单击右上角窗格下的“解决方案资源管理器”选项卡(快捷键为Ctrl+Alt+L),双击“头文件”下的“CDcontrolDlg.h”,在左侧打开的文件开始处“#pragma once”之下加入以下两行代码,用来包含相应的头文件及库(见图5):
#include
#pragma comment(lib,"winmm.lib")
★VC++ 6.0中,首先需要在你开发的项目设置“Project→Setting→Link→Object/library modules”中加入库“winmm.lib”,并在头文件中加入代码包含多媒体控制头文件:"#include mmsystem.h"。
STEP6
单击右上角的“资源视图”选项卡(快捷键Ctrl+Shift+E),双击Dialog下的IDD_CDCONTROL_DIALOG回到对话框主界面中。双击“弹出”按钮,将自动跳转到该按钮所属的控制函数内,本例的函数名默认为OnBnClickedButton1(),如图6所示,在注释文字之下输入以下一行代码,它的作用是弹出光驱:
mciSendString("set cdaudio door open",0,0,NULL);
★在VC++ 6.0中为按钮添加控制代码的方法稍有不同:右击按钮,选择Events,在弹出对话框中双击左侧的BN_CLICKED,又会弹出对话框,提示为响应函数取个名字,确定后,双击右上角窗格中新加入的BN_CLICKED,即可进入响应函数体内添加自己的代码了。
STEP7
以同样方法在“关闭”按钮的响应函数OnBnClickedButton2()内添加以下代码,它的作用是关闭弹出的光驱:
mciSendString("set cdaudio door closed",0,0,NULL);
至此,一个好玩又实用的工具软件就完成了,执行“调试→启动”(快捷键F5)运行程序,弹出如图7所示窗口,单击“弹出”或“关闭”按钮,就可以方便地弹出或关闭光驱了。将项目目录下“Debug”文件夹中的程序文件“CDcontrol.exe”发送给你的朋友们也试试,一定会镇他们一下的,呵呵。
上面的实例,还有许多需要完善的地方,比如添加快捷键操作等,限于篇幅,等以后有机会再详细介绍吧。另外,这个实例的目的是为了打破初学者对编程的恐惧感,所以尽量描写得轻松易做,而实际上要做出一个好的软件来,绝非一朝一夕之功,对其艰难的程度一定要有足够的思想准备哦。
职场论坛
关于Visual C++前途的讨论
网上关于VC++的争论很多,有人说“真正的程序员用VC”,也有人说,VC已是明日黄花,在它上面下工夫将会得不偿失。个人认为,VC作为微软最重要的开发工具之一,是不可能轻易被抛弃的,如果决意追随Windows平台搞开发,VC是一个相当重要的选择。以下摘自一位网名为iron的网友的话,我个人觉得很有道理:
我们知道,在DOS时代,市面上固然有MS C/C++、Quick Basic等微软公司的开发工具,同时也有许多诸如:Turbo C/C++、Turbo Pascal、Foxbase、FoxPro之类的第三方开发工具,并且后者更出名、使用得更广泛!当从DOS时代升迁到Windows时代后,固然微软的MS C/C++、Quick Basic等开发工具被淘汰了,然而同属于那个时代的其他第三方开发工具不也同时被淘汰了?覆巢之下岂有完卵!因此,我们完全有理由相信,将来如果有一天,由于技术进步的原因导致VC被淘汰了,那么与VC同一时代的、只能在Windows平台上搞开发的这许多开发工具,如:VB、BCB、Delphi等等都逃脱不了被淘汰的命运!如果你是由于怕技术的进步而不想学VC,那你最好不要学编程,并且你干脆什么都不要去学!因为任何一种开发工具、任何一种技术最终都会过时、都会被淘汰的,这是客观规律。
实例:我的光驱精灵—实用的光驱开/关软件
在Windows XP的“我的电脑”中,右击光驱盘符,选择“弹出”,即可弹出光驱。这一功能免去我们用手按光驱上按键的操作,可延长光驱的使用寿命。但是非常奇怪的是,Windows XP却没有提供相应的“关闭”功能,只能用手工方式按回光驱。下面我们要开发的“我的光驱精灵”软件,则可以自由地开/关光驱。我们使用是微软著名的开发套件Visual Studio.NET 2003中的Visual C++(以下简称VC++)。源项目文件及最终编译好的可执行程序,可从http://www.newhua.com/cfan/200606/CDcontrol.rar处下载。使用VC++ 6.0的朋友,同样可以借鉴。
STEP1
启动Visual Studio.NET 2003,执行“文件→新建→项目”菜单命令打开新建项目对话框,如图1所示,点击展开左侧的“Visual C++项目→MFC”,在右侧选中“MFC 应用程序”。接着输入项目名称(如:CDcontrol),并设置好项目的存储位置(如:E:\MyPrograms)。
STEP2
单击“确定”,将打开MFC应用程序向导,如图2所示,点击左侧“应用程序类型”,在右侧选中“基于对话框”项(见图2)。
★在“MFC的使用”项中,如果选择“在共享DLL中使用MFC”项,最后生成的程序会很小,但是要确保使用者的系统内已安装有MFC动态库文件;如选择“使用静态库中的MFC”项,则生成的程序会将MFC库文件一同包含到程序内,就不用担心用户的系统内是否有MFC动态库了,不过这样生成的程序文件也会大很多。
★VC++ 6.0的新建项目向导是以“下一步”的方式一步一步进行的,不过它的选项设置与VC++.NET 2003非常相似。
★在“MFC的使用”项中,如果选择“在共享DLL中使用MFC”项,最后生成的程序会很小,但是要确保使用者的系统内已安装有MFC动态库文件;如选择“使用静态库中的MFC”项,则生成的程序会将MFC库文件一同包含到程序内,就不用担心用户的系统内是否有MFC动态库了,不过这样生成的程序文件也会大很多。
STEP3
还可以继续设置“用户界面功能”及“高级功能”等项,这里取默认值,最后单击“完成”按钮返回VC++主界面,会发现已经自动生成对话框界面(见图3)。
STEP4
显然自动生成的界面与我们实际的要求相去甚远,下面就来修改一下,最后的效果如图4所示。
1.执行“视图→工具箱”命令调出工具箱,选择“指针”工具,用它将原界面中的“确定”和“取消”按钮拖放到对界面的右下角。点选“确定”按钮,在右下角“属性”窗口(按F4键显示)中,找到Caption(标题)项,将它的值改成“关于”,回车确定后按钮上的文字随之改变。同样方法,将“取消”改成“退出”。
2.选择工具箱上的Button(按钮)工具,在界面左上角拖画出两个按钮,通过修改Caption的方法,将两个按钮的默认文字分别改成“弹出”和“关闭”。
3.原界面中的提示“TODO:在此放置对话框控件”,实际上就是一个静态文本控件,点击它,同样修改其Caption的值,改成图4所示中的“友情提示……”。如想在静态文本控件中输入多行文字,在需要回行处要加上转义符“\n”(不含引号)。文字太多,显示不出来的时候,可拖动控件四周的节点拉大它即可。选中工具箱中的Static Text(静态文本)工具,在左下角再拖画出一个文本控件,并将其Caption的值修改成自己需要的。
★VC++ 6.0中,控件属性是以独立的对话框形式出现,双击某控件即可打开相应的属性对话框。
STEP5
我们是通过Windows多媒体设备的程序接口MCI提供的功能来实现光驱开/关控制的,所以要加入必要的头文件及库。单击右上角窗格下的“解决方案资源管理器”选项卡(快捷键为Ctrl+Alt+L),双击“头文件”下的“CDcontrolDlg.h”,在左侧打开的文件开始处“#pragma once”之下加入以下两行代码,用来包含相应的头文件及库(见图5):
#include
#pragma comment(lib,"winmm.lib")
★VC++ 6.0中,首先需要在你开发的项目设置“Project→Setting→Link→Object/library modules”中加入库“winmm.lib”,并在头文件中加入代码包含多媒体控制头文件:"#include mmsystem.h"。
STEP6
单击右上角的“资源视图”选项卡(快捷键Ctrl+Shift+E),双击Dialog下的IDD_CDCONTROL_DIALOG回到对话框主界面中。双击“弹出”按钮,将自动跳转到该按钮所属的控制函数内,本例的函数名默认为OnBnClickedButton1(),如图6所示,在注释文字之下输入以下一行代码,它的作用是弹出光驱:
mciSendString("set cdaudio door open",0,0,NULL);
★在VC++ 6.0中为按钮添加控制代码的方法稍有不同:右击按钮,选择Events,在弹出对话框中双击左侧的BN_CLICKED,又会弹出对话框,提示为响应函数取个名字,确定后,双击右上角窗格中新加入的BN_CLICKED,即可进入响应函数体内添加自己的代码了。
STEP7
以同样方法在“关闭”按钮的响应函数OnBnClickedButton2()内添加以下代码,它的作用是关闭弹出的光驱:
mciSendString("set cdaudio door closed",0,0,NULL);
至此,一个好玩又实用的工具软件就完成了,执行“调试→启动”(快捷键F5)运行程序,弹出如图7所示窗口,单击“弹出”或“关闭”按钮,就可以方便地弹出或关闭光驱了。将项目目录下“Debug”文件夹中的程序文件“CDcontrol.exe”发送给你的朋友们也试试,一定会镇他们一下的,呵呵。
上面的实例,还有许多需要完善的地方,比如添加快捷键操作等,限于篇幅,等以后有机会再详细介绍吧。另外,这个实例的目的是为了打破初学者对编程的恐惧感,所以尽量描写得轻松易做,而实际上要做出一个好的软件来,绝非一朝一夕之功,对其艰难的程度一定要有足够的思想准备哦。
职场论坛
关于Visual C++前途的讨论
网上关于VC++的争论很多,有人说“真正的程序员用VC”,也有人说,VC已是明日黄花,在它上面下工夫将会得不偿失。个人认为,VC作为微软最重要的开发工具之一,是不可能轻易被抛弃的,如果决意追随Windows平台搞开发,VC是一个相当重要的选择。以下摘自一位网名为iron的网友的话,我个人觉得很有道理:
我们知道,在DOS时代,市面上固然有MS C/C++、Quick Basic等微软公司的开发工具,同时也有许多诸如:Turbo C/C++、Turbo Pascal、Foxbase、FoxPro之类的第三方开发工具,并且后者更出名、使用得更广泛!当从DOS时代升迁到Windows时代后,固然微软的MS C/C++、Quick Basic等开发工具被淘汰了,然而同属于那个时代的其他第三方开发工具不也同时被淘汰了?覆巢之下岂有完卵!因此,我们完全有理由相信,将来如果有一天,由于技术进步的原因导致VC被淘汰了,那么与VC同一时代的、只能在Windows平台上搞开发的这许多开发工具,如:VB、BCB、Delphi等等都逃脱不了被淘汰的命运!如果你是由于怕技术的进步而不想学VC,那你最好不要学编程,并且你干脆什么都不要去学!因为任何一种开发工具、任何一种技术最终都会过时、都会被淘汰的,这是客观规律。