坐看风起云涌,笑评IT江湖

Visual C++,开发软件就是这么简单(开关光驱的VC++实现)

上一篇 / 下一篇  2007-04-25 19:24:46 / 个人分类:《电脑爱好者》杂志资源相关

查看( 1772 ) / 评论( 13 )
其实这是我发在《电脑爱好者》2006年第6期上的一篇文章。开关光驱这一功能虽然不值得兴师动众,不过通过这一简单实例,可以附带着了解一下VC++的操作。

m2]pmx!mk,{x |0在Windows XP的“我的电脑”中,右击光驱盘符,选择“弹出”,即可弹出光驱。这一功能免去我们用手按光驱上按键的操作,可延长光驱的使用寿命。但是非常奇怪的是,Windows XP却没有提供相应的“关闭”功能,只能用手工方式按回光驱。下面我们要开发的“我的光驱精灵”软件,则可以自由地开/关光驱。我们使用是微软著名的开发套件Visual Studio.NET 2003中的Visual C++(以下简称VC++)。源工程文件及最终编译好的可执行程序,可从http://www.newhua.com/cfan/200606/CDcontrol.rar处下载。使用VC++ 6.0的朋友,同样可以借用。
_gG4V^"r LQ0
s;f"?e jWN6a0第一步:启动Visual Studio.NET 2003,执行“文件→新建→项目”菜单命令打开新建项目对话框,如图1所示,点击展开左侧的“Visual C++项目→MFC”,在右侧选中“MFC 应用程序”。接着输入项目名称(如:CDcontrol),并设置好项目的存储位置(如:E:\MyPrograms)。爱好者博墅8|IDX"U'MU
爱好者博墅;`!\N:C9IV@
第二步:单击“确定”,将打开MFC应用程序向导,如图2所示,点击左侧“应用程序类型”,在右侧选中“基于对话框”项(见图2)。爱好者博墅sE5]tP K

t,Z/}1J/p"T&A3`0Tips
★在“MFC的使用”项中,如果选择“在共享DLL中使用MFC”项,最后生成的程序会很小,但是要确保使用者的系统内已安装有MFC动态库文件;如选择“使用静态库中的MFC”项,则生成的程序会将MFC库文件一同包含到程序内,就不用担心用户的系统内是否有MFC动态库了,不过这样生成的程序文件也会大很多。
★VC++ 6.0的新建项目向导是以“下一步”的方式一步一步进行的,不过它的选项设置与VC++.NET 2003非常相似。爱好者博墅0X3G(m^oo \!i7R&t"?

$o:[ i2WW#j1b,x2n0第三步:还可以继续设置“用户界面功能”及“高级功能”等项,这里取默认值,最后单击“完成”按钮返回VC++主界面,会发现已经自动生成对话框界面(见图3)。爱好者博墅e6}"YwC~]4k

R1j5|6W[:z0第四步:显示然自动生成的界面与我们实际的要求相去甚远,下面就来修改一下,最后的效果如图4所示。爱好者博墅&t6a\/\F `x-V
爱好者博墅3^g.dbi:A
1.执行“视图→工具箱”命令调出工具箱,选择“指针”工具,用它将原界面中的“确定”和“取消”按钮拖放到对界面的右下角。点选“确定”按钮,在右下角“属性”窗口(按F4键显示)中,找到Caption(标题)项,将它的值改成“关于”,回车确定后按钮上的文字随之改变。同样方法,将“取消”改成“退出”。
#Sbq:b^ p!m u02.选择工具箱上的Button(按钮)工具,在界面左上角拖画出两个按钮,通过修改Caption的方法,将两个按钮的默认文字分别改成“弹出”和“关闭”。
qQ']2W y"m8x03.原界面中的提示“TODO:在此放置对话框控件”,实际上就是一个静态文本控件,点击它,同样修改其Caption的值,改成图4所示中的“友情提示……”。如想在静态文本控件中输入多行文字,在需要回行处要加上转义符“\n”(不含引号)。文字太多,显示不出来的时候,可拖动控件四周的节点拉大它即可。选中工具箱中的Static Text(静态文本)工具,在左下角再拖画出一个文本控件,并将其Caption的值修改成自己需要的。爱好者博墅'f})](Jd5d9x4w

bK9w+U.N zM,ZO.f0Tips
★VC++ 6.0中,控件属性是以独立的对话框形式出现,双击某控件即可打开相应的属性对话框。
爱好者博墅4G g c`+a2Y7s5E4u!U&eu
第五步:我们是通过Windows多媒体设备的程序接口MCI提供的功能来实现光驱开/关控制的,所以要加入必要的头文件及库。单击右上角窗格下的“解决方案资源管理器”选项卡(快捷键为Ctrl+Alt+L),双击“头文件”下的“CDcontrolDlg.h”,在左侧打开的文件开始处“#pragma once”之下加入以下两行代码,用来包含相应的头文件及库:
+C/f7p-{4n0
"iigbr.xl.y0#include<mmsystem.h>
'U.vA[w n0#pragma comment(lib,"winmm.lib")
'caoe0V&K/}:y,v0爱好者博墅x%|K6HXM:mv"`
Tips
★VC++ 6.0中,首先需要在你开发的项目设置“Project→Setting→Link→Object/library modules”中加入库“winmm.lib”,并在头文件中加入代码包含多媒体控制头文件:"#include mmsystem.h"。爱好者博墅7v UN IWWH;C$_w1`

e5tZE!rl0第六步:单击右上角的“资源视图”选项卡(快捷键Ctrl+Shift+E),双击Dialog下的IDD_CDCONTROL_DIALOG回到对话框主界面中。双击“弹出”按钮,将自动跳转到该按钮所属的控制函数内,本例的函数名默认为OnBnClickedButton1(),如图6所示,在注释文字之下输入以下一行代码,它的作用是弹出光驱:爱好者博墅cx}RTl#o,lK
爱好者博墅1z UN+osmr;e/fY
mciSendString("set cdaudio door open",0,0,NULL);爱好者博墅%^%G [ U"NL
爱好者博墅"n'u6p1B$F#u/SS I
Tips
★在VC++ 6.0中为按钮添加控制代码的方法稍有不同:右击按钮,选择Events,在弹出对话框中双击左侧的BN_CLICKED,又会弹出对话框,提示为响应函数取个名字,确定后,双击右上角窗格中新加入的BN_CLICKED,即可进入响应函数体内添加自己的代码了。
!Gy-Uy|$t$z0
|;].i8xv2Z J0第七步:以同样方法在“关闭”按钮的响应函数OnBnClickedButton2()内添加以下代码,它的作用是关闭弹出的光驱:爱好者博墅(p^'F%U"R&[

*`6n zF8ez3p0mciSendString("set cdaudio door closed",0,0,NULL);
!Kl^L%z{'M5b1g|0爱好者博墅]'k6R*X1ZA^md7p
至此,一个好玩又实用的工具软件就完成了,执行“调试→启动”(快捷键F5)运行程序,弹出如图7所示窗口,单击“弹出”或“关闭”按钮,就可以方便地弹出或关闭光驱了。将项目目录下“Debug”文件夹中的程序文件“CDcontrol.exe”发送给你的朋友们也试试,一定会镇他们一下的,呵呵。爱好者博墅)}9w+Zc9M#]{

3WW#TG"udZp0上面的实例,还有许多需要完善的地方,限于篇幅,等以后有机会再详细介绍吧。另外,这个实例的目的是为了打破初学者对编程的恐惧感,所以尽量描写得轻松易做,而实际上要做出一个好的软件来,绝非一朝一夕之功,对其艰难的程度一定要有足够的思想准备哦。

图1

图1

图2

图2

图3

图3

图4

图4

图5

图5

图6

图6

图7

图7

TAG:

Liangent's Liangent 发布于2007-04-26 00:21:12
直接加分~~
火星的柳絮 柳絮飞 发布于2007-04-26 09:58:45
呵呵,感谢支持,,,:huge:
Liangent's Liangent 发布于2007-04-26 23:39:25
发现我好像在你这加了很多分了~~~
火星的柳絮 柳絮飞 发布于2007-04-28 10:40:29
呵呵,让兄弟破费啦,,,:huge:
舒服点了的个人空间 舒服点了 发布于2007-04-28 13:30:15
楼主强贴,厉害!感谢:huge: 楼主分享!
Liangent's Liangent 发布于2007-04-28 23:40:50
每天的配额,不用也浪费
沧江云县发布于2007-05-21 14:08:39
值得学习,支持支持
林秀才的个人空间 林秀才 发布于2007-05-28 12:40:13
能帮忙吗
昨天 我的电脑开机后,在键入密码后,要很久才进入桌面,2到3分钟 进去后,桌面上的所有图标都没有了,好象是刚刚重新装了一下系统一样,包括我的电脑,我的文档等都没有了 只是在桌面的右下脚还有个回收站,就跟重新装了系统一样
笑一生 伤口撒盐 发布于2007-06-22 19:06:51
楼主,叫你一声飞哥,有时间一定向您学习一下
All-In-Smart allinsmart 发布于2007-07-09 00:53:24
有这么简单吗
我也想学习这个Visual C++,拜师学艺
Liangent's Liangent 发布于2007-07-15 15:04:22
回复 #11 allinsmart 的帖子
那个智能内存整理你用什么做的
Liangent's Liangent 发布于2007-07-15 15:05:44
...b2b'Dr-xvPT
怎么签名给去掉了?
→Cefly的雜貨鋪1分店← cef 发布于2007-07-18 15:35:06
最近正想研究一下VC,,有没有什么好的书可以推荐一下?
我来说两句

(可选)

Open Toolbar