⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9927.txt

📁 关于编程技术技巧的文章
💻 TXT
📖 第 1 页 / 共 4 页
字号:
================================================================

                           《编 程 技 术》

                 一份属于广大编程爱好者的电子杂志

               这是一份完全关于探讨编程的免费电子杂志
               您可以任意传播本刊,但必须保持它的完整
              本刊承诺绝不向订户发送任何形式的垃圾邮件!
================================================================
             第27期 99/09/26          本期发送数: 4397 
================================================================

◆本期栏目◆
 *刊首语*
 *网友作品*
 *技术文档*
    一例字幕效果的制作
    C++ Builder中园形、三角形按钮的实现
    如何在VC5下定制多媒体真彩封页
    Win95通用对话框函数编制原理
    Delphi 4中开发数据库控件的方法
    一劳永逸让VB自动改变控件大小
 *下载专区*
    4个编程工具和控件下载
 *有问必答*

================================================================

◆刊首语◆
    
    昨天我在整理本周的信件时,foxmail严重崩溃,导致近两周的信件
全部丢失(我是痛心之极、欲哭无泪),假如您曾在最近给我发过mail
而没有收到我的回复的话,麻烦请再发一次。我可不想落下一个不负责
的坏名声。
    21日惊闻台湾发生百年不遇的大地震并造成严重损失,深感痛心,
海峡两岸同胞骨肉相连,我想我们每个人都应该尽一份力来帮助对岸的
兄弟姐妹们。以下是一组由一位台湾的朋友提供的赈灾网站,望大家在
网上广泛传发,大家有钱出钱,有力出力。多谢!!

KIMO奇摩网
捐款帐户:http://www.kimo.com.tw/quake/moneylist.html

蕃薯藤:
徵求义工:http://kitty8.yam.com.tw/921/manpower.html
徵求救难物资:http://kitty8.yam.com.tw/921/resource.html
捐款单位:http://kitty8.yam.com.tw/921/donation.html

梦想家的媒体
捐血站:http://www.dreamer.com.tw/new2/0921_3.html

灾後自保的方式
TVBS线上灾後自保手册:http://www.eranet.net/921/921after.htm
中央气象局地震防护措施:http://deca.cwb.gov.tw/protect.htm

3.921地震新闻---------------------------------------------------
KIMO奇摩网:921集集大震专题报导:http://www.kimo.com.tw/quake/
蕃薯藤新闻网:http://news.yam.com.tw/quake/

4.其它相关消息--------------------------------------------------
报平安网站:
http://www.live.net.tw/

奇摩网
罹难者名单:http://www.kimo.com.tw/quake/namelist.html
求救热线:http://www.kimo.com.tw/quake/tellist.html

****************************************************************
****************************************************************

◆网友作品◆

                        本期无人喝彩? :-(

您自己开发过软件吗? 您有自己满意的作品吗? 您希望发布推广您的作品
吗? 本刊竭诚为您提供宣传空间。有意的朋友请把您的作品介绍以及下载
地址、您的网址、联系方法等相关信息发给我(具体格式请参照前几期)。
本刊免费为您宣传三期。如有疑问可以与我联系。
我的信箱: yaozheng@kali.com.cn       

****************************************************************
****************************************************************

◆技术文档◆

                         一例字幕效果的制作 

                            (成都 关涛)

  在影视剧中,我们常见到这样的字幕效果:在单色的背景画面下,文字
渐渐显现出来,然后又渐渐消失在背景中。要实现这个效果并不难,今天我
们就用程序来模仿一下这个文字渐入渐出的动画过程。
  进入中文版Visual FoxPro 3.0,在菜单中选择“文件—新建”,在随
后出现的窗口中选“表单—新文件”,其中主要有包含空白表单的表单设计
器、表单控制工具栏和表单属性窗口,后两项如果没有出现,可通过系统菜
单的“查看”调出。
  “表单控制”工具栏包含了很多现成的控件,可以直接在表单上使用,
而在表单属性窗口中可以重新调整设定表单中各项目的值。鉴于很多读者对
它们的使用方法都很熟悉,这里就不再罗嗦了,让我们直接进入正题。
  (一)添加控件,制作表单
  1. 在空白表单中添加一个“标签”控件并选中它,然后在其对应的
“属 性”窗口中依次进行如下设置:
  AutoSize . T. 使标签大小与文本自动吻合
  BackStyle 透明 使标签背景透明
  Caption 渐入渐出效果演示 标签中的文本
  FontBold .T. 设置文本为粗体
  FontName 幼圆 设置文本字体
  FontSize 18 设置字体大小
  FontUnderline .T. 为文本加下划线
  ForeColor 0,0,0 设置字体为黑色
  其它设置保留默认值,以下同此。
  2. 在表单中添加一个“命令按钮”控件并选中它,然后在其对应的
“属性”窗口中依次进行如下设置:
  Caption 演示开始 设置按钮名称
  FontName 仿宋_GB2312 设置按钮字体
  FontSize 14 设置字体大小
  Height 30 设置按钮高度
  Width 217 设置按钮宽度
  3. 在表单中添加一个“计时器”控件,它可以放在表单中的任何位置,
表单运行时是不可见的。选中它,然后在其对应的“属性”窗口中进行如下
设置:
  Enabled . F. 表单开始运行时计时器并不随之启动
  Interval 100(ms) 计时器所控制Timer事件的运行间隔
  经过上面的步骤,再对控件的位置做些调整后,得到如图2所示的表单。
  (二)为控件添加代码
  方法:要给控件添加代码,只需在相应控件上点鼠标右键,然后在弹出
的菜单中选“代码”就进入了代码编辑窗口,在选择需要的事件后即可进行
代码输入。
  (1) 进入“效果演示”按钮的“Click”事件代码窗,输入以下代码:
  If thisform.timer1.enabled=. F.
   thisform.timer1.enabled=. T.
   Endif
  这段代码的作用是:当用鼠标左键单击该按钮后,计时器开始运行。
  (2) 进入“计时器”的“Timer”事件代码窗,输入以下代码:
  i=i+10
  If i>=255*2
   Thisform.timer1.enabled=. F.
   i=0
  Endif
  If i>=255
  Thisform.label1.forecolor=RGB (255*2- i, 0,0)
  Else
   Thisform.label1.forecolor=RGB (i, 0,0)
  Endif
  解释一下上面的代码。首先Timer事件的作用是,当计时器开始运行时
(enabled值为.T.),以Interval所规定的值为时间间隔不断运行Timer中的
代码,直到enabled值为.F.为止,如同一个while……do循环。
  RGB()函数的意思很明显,通过其中红、绿、蓝三个参数的值(0~255)
的不同组合可得到不同颜色。上面代码的作用就是逐渐改变标签(Lable1)
中文字“淡入淡出效果演示”的颜色,使其从黑色(0,0,0)变为红色
(255,0,0),再从红色变回黑色,因为前面将标签背景设为了透明,即与
表单的颜色相同,所以如果表单的颜色为黑色的话,就实现了文字的淡入淡出
效果。具体实现的代码很简单,这里就不再一一说明了。要注意的是,如果变
量i每次循环的增量和计时器中Interval的值设置不当,会出现文字一现即逝
或半天显不出来的情况。
  (3) 在表单空白处右击鼠标进入“form1”的“Activate”事件代码窗,
为在计时器中使用的变量i进行定义:
  Public i
  i=0
  (三)最后的修改及表单的运行
   在表单中除控件外的其它位置点击鼠标,使属性窗口中显示表单form1的
属性,然后做如下修改,
  BackColor 0,0,0 将表单设为黑色,此时标签
   中的文字会因颜色相同而
   看不见
  Caption 字幕效果 设置表单标题
  现在选择系统菜单中的“表单—运行表单”,按提示存盘后出现如图3所示
窗口,单击“演示开始”按钮,会逐渐显现成如图4的窗口,然后又慢慢回到
图3窗口,快动手试试吧。
  你当然也可以选择自己喜欢的颜色,然后把它用到你的程序当中,一定会
使其锦上添花。
  该程序在中文Windows98、Visual FoxPro 3.0中文专业版中调试运行通过。

****************************************************************

                  C++ Builder 中园形、三角形按钮的实现

                    合肥电子工程学院计算中心  李 强

---- 由于Window 95增加了对窗口区域概念的支持,使得窗口区域就是所定义
的窗口看上去的形状,窗口区域作为窗口的实际边界区域,这样窗口区域不仅
定义了窗口的可画区域,而且定义了窗口下隐含区域和响应鼠标击键事件的响
应窗口区域。 

---- 按钮的各种形状是在运行时设置的而不是在设计时设置。设计时按钮的
形状仍然是长方形或正方形。 

---- 按钮形状的设计分成两个步骤。 

---- 第一步创建按钮的外形,即定义窗口区域。使用API的区域创建函数就可
达到目的。区域创建函数很多,主要有CreateEllipticRgn 、CreatePolygonRgn、 
CreateRectRgn、 CreateRoundRectRgn,用于创建不同类型的区域显示。如果
需要一个复杂区域形状,那么可以分别使用不同的区域函数创建不同的区域,
然后调用CombineRgn API函数把它们组合起来。所以说,不仅可以创建出园形、
三角形的按钮,而且还可以创建出其它各种形状的按钮。 

---- 第二步将区域显示应用到窗口上。一旦使用区域函数创建了一个新的区
域显示,就可以使用SetWindowsRgn函数将这个区域应用到窗口上。 

---- 下面给出园形、三角形按钮实现的具体代码。为了直观显示效果,将窗
体的背景色设置为了黑色(Color设置为clBtnText),并将两个按钮的Cursor设
置crCross。在窗体放置两个Button按钮,分别定义为RButton、TButton。实现
窗口区域的最佳时机是在窗体首次创建时,所以将处理程序放在OnCreate事件
中。 

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    //创建园形按钮
HRGN hRgnR = CreateEllipticRgn(0,0,RButton->
Width,RButton->Height);
SetWindowRgn(RButton->Handle,hRgnR,TRUE);

        //创建三角形按钮
TrPoint[0].x=TButton->Width/2;
TrPoint[0].y=0;

TrPoint[1].x=0;
TrPoint[1].y=TButton->Height;

TrPoint[2].x=TButton->Width;
TrPoint[2].y=TButton->Height;

HRGN hRgnT = CreatePolygonRgn(TrPoint,3,ALTERNATE);
SetWindowRgn(TButton->Handle,hRgnT,TRUE);
}
其中TrPoint在Unit.h头文件中定义如下:
private:    // User declarations
POINT TrPoint[3];
---- 上面的代码在按钮的边界内分别创建了一个园形区域和一个三角形区域,
然后作为新的窗口区域把它赋给各自的按钮。在创建园形按钮时使用了椭园形
区域创建函数,要使按钮为园形在设计时该按钮应设计为正方形。另外区域是
以按钮坐标的形式定义的,而不是用屏幕坐标。(0,0)点是按钮的最左上角,
而(宽,高)点是按钮的最右下角。 

---- 应该注意的是,一旦将区域句柄赋给按钮,就不能再对区域句柄作任何操
作。如果将区域句柄赋给按钮后,修改或删除这个句柄将导致程序崩溃。 

---- 光标只在园形和三角形区域内变为crCross形状。为了使按钮美观可以使
用BitBtn或SpeedButton按钮,在按钮上附上位图。有关API区域函数的使用请
参看Win32SDK.hlp帮助文件。

****************************************************************

                 如何在VC5下定制多媒体真彩封页

                 辽宁省铁岭市委办公室   宋立波

----在自己的应用程序定制多媒体真彩封页,可以使应用程序在显示名称和
版权特性时丰富程序界面,避免由于应用程序启动前进行大量数据初始化时
用户进行较长时间的空等待过程,在给应用程序增加了生动特性和专业特性
的同时,也起到了宣传和广告的作用。虽然VC5中具有特定的类来实现这一
功能,但通过定制自己的应用程序多媒体启动封页,还可使自己的应用程序
别具一格。VC5中的实现步骤:

----一、制作封页位图:制作应用程序多媒体启动封页真彩位图,记录位图
的高度和宽度,建立所需要的其它多媒体声音等文件;

----二、建立应用程序:利用FILE->NEW菜单建立名为START的多文档应用程
序框架,并利用类向导AppWizard增加基类为generic CWnd的新类CSplashWnd,
将新类的文件改名为splash.h和splash.cpp,并增加WM_CREATE和WM_PAINT的
消息映射函数;

----三、定义变量和函数:在splash.h中定义如下成员变量和函数:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -