📄 9937.txt
字号:
================================================================
《编 程 技 术》
一份属于广大编程爱好者的电子杂志
这是一份完全关于探讨编程的免费电子杂志
您可以任意传播本刊,但必须保持它的完整
本刊承诺绝不向订户发送任何形式的垃圾邮件!
================================================================
第37期 99/12/19 本期发送数: 6693
================================================================
★ 祝贺澳门回到祖国的怀抱 ★
◆本期栏目◆
*重要通告*
*特别推荐*
【编程爱好者讨论组】
【终·极·指·南】免费电脑网络杂志
*网友作品*
远程控制工具
Caller 1.0 Beta 1 (提醒者)
生物节律 1.2
定时关机程序
密码杀手
码码通1.00
*技术文档*
VC++5.0下MIDI、WAV及CD的播放
WINDOWS9x的后台进程
在VB中建立可旋转的文本特效
在VB中动态建立控件
VFP下汉字输入法的编程
*有问必答*
****************************************************************
****************************************************************
◆重要通告◆
迎接千禧年,本刊将有大动作
本刊从2000年开始将正式更名为《编程爱好者》电子杂志。并将满足
部分读者的要求,采用html格式和文本格式两种形式发送,您可以任选一
种。
另外明年本刊将不再采用博大邮件列表系统发送,而改用新的发送系
统,可以告诉大家的是,新系统的服务将更完善更体贴。这里先给大家卖
个关子。在系统过渡过程中,可能会有一些问题,可能在月底会进行几次
测试,如果给您添麻烦的话,也请谅解。另外请想要订阅的朋友暂时使用
E-mail方式订阅,以免在系统过渡中漏掉您。当然如果您觉得我的杂志还
不错的话,别忘了给您的亲朋好友(当然要对编程感兴趣哦)也订上一份。
算是千禧年的一份小礼吧。
E-mail订阅: yaozheng@kali.com.cn?subject=subscribe 内容填订阅者的email
****************************************************************
****************************************************************
◆特别推荐◆
【编程爱好者讨论组】
订阅方法:Email方式进行订阅
订阅:发一封email到 programmerfan-request@list.bentium.net
在正文里填subscribe。然后您会收到一封确认信,只要再回复这
封确认信就正式加入了了。
退订:操作方法同上,在正文里填unsubscribe。
当您完成了上面的订阅步骤后,您就已经加入了本讨论组邮件列表,
可以通过Email参加讨论了!您只要向地址 programmerfan@list.bentium.net
发送信件,该邮件列表的订阅者都会收到您发出的信件。这样,订阅者之
间就可以互相交流了。
本邮件列表是为大家讨论编程的问题而设立的。由于您所发的信件所
有的订阅者都能收到,所以请您务必为别的订阅者着想,千万不要发垃圾
邮件或者是长度很长但又无用的信件。谢谢您的合作。
【终·极·指·南】免费电脑网络杂志
刊物介绍:
【IT新闻】:搜索IT界重大新闻。
【复活节彩蛋】:向你介绍各种软件、电影及游戏等鲜为人知的小秘密。
【技巧园地】:奉送流行软件的使用技巧。
【工具锦囊】:向你介绍最新的好用的软件。
【网络快递】:各种免费资源快速提供。
【交流天地】:提供完全自由的主页介绍、交友、问答的空间。
本刊物订阅方法:
在线订阅:
http://ponlines.my169.com/ 或 http://rondec.126.com/
E-MAIL订阅:
majordomo@ms1.e-lists.com.cn 正文为subscribe ultimateguide
****************************************************************
****************************************************************
◆网友作品◆
017.
远程控制工具
作者主页: http://liusiwei.csw.cnshare.net
下载地址: ftp://csw.cnshare.net/pub/csw/liusiwei/cc.zip
可以提供源程序。
此工具能控制别人的计算机,只要此程序在别人的计算机上运行一次的
话。 可以执行查看、修改、删除等操作。甚至重新启动别人的计算机,
适当的参数即可使对方的计算机瘫痪!
016.
Caller 1.0 Beta 1 (提醒者)
作者:浮云
Email: fuyunmail@163.net
下载地址: http://mmy.163.net/caller.htm
软件介绍:
1、 全中文软件,使用方便;
2、 界面采用标准的Windows窗口,易于使用;
3、 支持多时间提醒,互不干扰;
4、 提醒方式有多种选项包括“仅仅一次”、“每天”、“每周”、
“每月”、“每年”、 “系统启动时”;
5、 提醒可以使用声音提示,弹出窗体;
6、 可以定时运行程序、连接或断开拨号网络,注销Windows、重新启
动计算机、关闭计算机;
7、 正点报时;
8、 系统启动时自动载入;
015.
名称:<<生物节律>>
版本:1.20
作者:王昕
Email: marsboy@126.com
主页: http://marsboy.163.net
运行平台: Win95/98/NT
性质:免费软件
下载地址: http://marsboy.163.net/programs/swjl/swjl.zip (22KB)
功能简介:
从很早科学家就发现了人从一生下来便开始了体力、情绪、智力三方面
的“生物节律”运行曲线,从此以后人的这三项指标便按照各自的周期
循环变化。您可以使用本程序方便的实现以下功能:
1.查询您当天的情况
2.搜索一百年内您的“特殊日期”(如三个指标都在最高潮等)
3.方便地设置快捷菜单,使您方便地查询多人的情况。
014.
软件名称: 定时关机程序
姓名: 张洪涛
Email: coolblue@china.com
软件类型: 免费软件
软件分类: 办公管理
大小: 52K
使用环境1: WIN95
使用环境1: WIN98
使用环境1: WINNT/WIN2000
下载地址: http://extend.hk.hi.cn/~kehubu/files/coolTm2.exe
是否提供源代码: 是
软件网站: http://extend.hk.hi.cn/~kehubu
其它说明: 无
功能简介: 可以定时或延时关机!
013.
软件名称: 密码杀手
软件类型: 免费软件
软件分类: 加密解密
大小: 25K
使用环境1: WIN95
使用环境1: WIN98
使用环境1: WINNT/WIN2000
下载地址: http://topgold.163.net/CVPW.exe
是否提供源代码: 是
软件网站: http://www.topgold.163.net
其它说明: 无
功能简介: 可以动态查看所有 ****** 只须轻轻一点密码显露无遗,
最大特点只有 25K
012.
名称:<<码码通>>
版本:1.10
作者:林建克
Email: jancelin@263.net
主页: http://jance.363.net
运行平台: Windows3X&Windows9X
性质:免费软件
下载地址: http://goldengulf.swatou.com/jance/cm110.zip (147KB)
功能简介:
最新1.10版功能如下:
1.自动识别GB、BIG5和ASCII三种内码,从而正确地同屏显示。
2.强制系统内码为BIG5或GB模式。
3.提供BIG5内码文件和GB内码文件之间的相互转换。
1.10版主要有一点改进和增加了一项功能:
改进:兼容IE5的BIG5码自动识别。现在在IE5下启动<<码码通>>玩<<大
富翁四>>你会发现本来繁体的字变成了简体的了。不过还不完全,对
<<曹操传>>还会出现乱码。我会在后继版本中改进。
新功能:提供BIG5内码文件和GB内码文件之间的相互转换。 利用本功
能你就可以把BIG5的文档转换为GB的,或者反之。
您自己开发过软件吗? 您有自己满意的作品吗? 您希望发布推广您的作品
吗? 本刊竭诚为您提供宣传空间。有意的朋友请把您的作品介绍以及下载
地址、您的网址、联系方法等相关信息发给我(具体格式请参照上面)。
本刊免费为您宣传三期。如有疑问可以与我联系。
我的信箱: yaozheng@kali.com.cn 信件主题(subject)填"发布作品"
****************************************************************
****************************************************************
◆技术文档◆
VC++5.0下MIDI、WAV及CD的播放
武汉石化设计院电算室 周红汉
---- 加入音乐是增强应用程序功能的所有方法中最简单的一个。几乎
每个计算机游戏或多媒体程序都以某种MIDI或CD音乐为背景。音乐可以
使用户心情愉快;在合适的场合播放恰当的音乐能够使程序员和他的
VC++程序焕发光彩。
第一部分 MIDI的播放
---- 乐器数字化接口(MIDI)是由音乐界的一些大公司(包括生产电
子音乐合成器的公司)制订的一项协议,后来被计算机产业所采用并成
为多媒体音乐文件的标准格式。MIDI文件一般较小,对硬件设备的要求
高。
---- 一、 原理
---- 虽然MicroSoft支持MIDI文件,然而Visual C++或MFC并没有创建
任何组件来实现这种支持,但是MicroSoft API提供了三种不同的方法
来实现MIDI的播放:
MCI(The Media Control Interface)。这是最基本的方法,本文将
详细讨论这种方法。
流缓冲器。这种格式允许应用程序为MIDI数据分配缓冲器。在需要精
确控制MIDI播放的时候,流缓冲器将很有用处。
低级MIDI设备。需要完全控制MIDI数据的应用程序可以使用这种方法。
---- MCI可以通过mciSendCommand()和mciSendString()来完成,
本文仅使用mciSendCommand()函数。
---- 原型:DWORD mciSendCommand(UINT wDeviceID,UINT wMessage,
DWORD dwParam1,DWORD dwParam2);
参数: wDeviceID:接受消息的设备ID
wMessage:MCI命令消息
dwParam1:命令的标志位
dwParam2:所使用参数块的指针
---- 返值:调用成功,返回零;否则,返回双字中的低字存放有错误
信息。
二MIDI的播放控制
---- 1. 打开设备
MCI_OPEN_PARMS OpenParms;
OpenParms.lpstrDeviceType =
(LPCSTR) MCI_DEVTYPE_SEQUENCER;//MIDI类型
OpenParms.lpstrElementName = (LPCSTR) Filename;
OpenParms.wDeviceID = 0;
mciSendCommand (NULL, MCI_OPEN,
MCI_WAIT | MCI_OPEN_TYPE |
MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT,
(DWORD)(LPVOID) &OpenParms)
---- MCI设备ID指明打开了哪个设备,当发送了MCI_OPEN命令时,这
个值在参数块中返回——应被保存备用。
---- 2. 关闭设备
mciSendCommand (m_wDeviceID, MCI_CLOSE, NULL, NULL);
---- 3. 播放
MCI_PLAY_PARMS PlayParms;
PlayParms.dwFrom = 0;
// 指定从什么地方(时间)播放
mciSendCommand (m_wDeviceID, MCI_PLAY,
MCI_FROM, (DWORD)(LPVOID)
&PlayParms));
---- 4. 暂停
MCI_PLAY_PARMS PlayParms;
mciSendCommand (m_wDeviceID, MCI_PAUSE, 0,
(DWORD)(LPVOID) &PlayParms);
---- 5. 停止
mciSendCommand (m_wDeviceID, MCI_STOP, NULL, NULL);
---- 6. 跳跃
* 跳转到任意地方
MCI_SEEK_PARMS SeekParms;
SeekParms.dwTo = (nMinute * 60 + nSecond) * 1000;
//跳转的目标时间,时间单位为毫秒
mciSendCommand (m_wDeviceID, MCI_SEEK, MCI_TO
| MCI_WAIT,(DWORD)(LPVOID)
&SeekParms);
* 跳到文件头
mciSendCommand (m_wDeviceID, MCI_SEEK,
MCI_SEEK_TO_START, NULL);
* 跳到文件尾
mciSendCommand (m_wDeviceID, MCI_SEEK,
MCI_SEEK_TO_END, NULL);
---- 7. 查询当前信息
MCI_STATUS_PARMS StatusParms;
StatusParms.dwItem = MCI_SEQ_STATUS_DIVTYPE;
mciSendCommand (m_wDeviceID, MCI_STATUS,
MCI_WAIT | MCI_STATUS_ITEM,
(DWORD)(LPVOID) &StatusParms);
返回信息存放于StatusParms.dwReturn中。
MCI_STATUS标志
MCI_STATUS_LENGTH 获得文件长度
MCI_STATUS_MODE 获得文件播放的当前状态
MCI_STATUS_POSITION 获得文件播放的当前位置
MCI_STATUS_TIME_FORMAT 获得当前的时间格式
MCI_SEQ_STATUS_DIVTYPE 判断文件是PPQN类型还是SMPTE类型
MCI_SEQ_STATUS_TEMPO 获得当前播放速度,PQRN类型,
此值为节拍/分,SMPTE类型,此值为祯/秒
---- 8. 设置时间格式及播放速度
MCI_SET_PARMS SetParms;
SetParms.dwTimeFormat = MCI_FORMAT_MILLISECONDS;
//设置时间单位为毫秒
mciSendCommand (m_wDeviceID,
MCI_SET, MCI_SET_TIME_FORMAT,
(DWORD)(LPVOID) &SetParms);
MCI_SEQ_SET_TEMPO 设置播放速度,
PQRN类型,此值为节拍/分,
SMPTE类型,此值为祯/秒
第二部分 WAV文件的播放
---- 一、原理
---- MicroSoft API提供了三种不同的方法来实现WAV的播放:
PlaySound()函数。它可以通过单行编码来播放Wave格式的声音。
此函数有两个限制:必须将声音数据完整地载入物理内存;数据格
式必须被所配置的某一音频驱动器支持。根据经验,PlaySound()
适用于100K以下的文件。
MCI(The Media Control Interface),与上一章播放MIDI文件相
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -