新浪首页免费邮件用户注册网站地图
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 硬件 > > 正文
在VB中实现文字的图片填充效果

http://www.sina.com.cn 2001/09/11 12:39 中国电脑教育报 刘雄伟

  在功能强大的图形图像处理软件中,基本上对于文字的操作都具有图片填充的功能,在VB中,借助于一定的API函数,也能实现图片填充文字的特殊效果,以下就是其具体的实现方法:

  启动VB,新建一“标准EXE”文件,点击菜单“工程/部件”打开部件列表框,勾选“Microsoft Common Dialog Control 6.0”选项,然后点击“确定”按钮,将通用对话框控件
添加到控件工具箱中,并双击该控件按钮,在窗体上添加一通用对话框控件(CommonDialog1)。

  然后在窗体上添加一组合框(Combo1)和四个命令按钮(Command1.Caption=“输入文字”,Command2.Caption=“字体大小”,Command3.Caption=“更改图片”,Command4.Caption=“退出”)。添加一个图片框(Picture1),然后利用图片框控件在Picture1中添加一个图片框(Picture2),并将Picture2的Picture属性设置为自己希望填充文字的图片。并设置窗体的启动位置(StartUpstation为“2-屏幕中心”)。

  最后,打开代码输入窗口,输入以下的源代码:

  Option Explicit

  Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long

  Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long

  Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long

  Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hrgn As Long, ByVal bRedraw As Boolean) As Long

  Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

  Dim Outtext As String '定义显示的文字变量

  Private Sub TextFill() '将图片框2文字转化为路径,并设置为图片框2的显示区域

  Dim hrgn As Long

  BeginPath Picture2.hdc

  '文字显示位置

  Picture2.CurrentX = (Picture1.Width - Picture2.TextWidth(Outtext)) / 2

  Picture2.CurrentY = (Picture1.Height - Picture2.TextHeight(Outtext)) / 2

  Picture2.Print Outtext

  EndPath Picture2.hdc

  hrgn = PathToRegion(Picture2.hdc)

  SetWindowRgn Picture2.hWnd, hrgn, 1

  '设置文字为显示区域

  DeleteObject hrgn

  Picture1.Cls

  '显示当前文字的字体和大小信息

  Picture1.CurrentX = 0

  Picture1.CurrentY = 0

  Picture1.Print "当前字体为:" && Combo1.Text && "字体大小为:" && Round(Picture2.FontSize)

  End Sub

  Private Sub Combo1_Click() '设置字体

  If Left(Combo1.Text, 1) = "@" Then

  '因为字体名前有“@”文字将横向显示,以下避免这种情况发生

  Picture2.FontName = Right(Combo1.Text, Len(Combo1.Text) - 1)

  Else

  Picture2.FontName = Combo1.Text

  End If

  TextFill

  End Sub

  Private Sub Command1_Click() '改变显示的文字

  Outtext = InputBox("请输入预填充背景的文字", "输入文字", "实例")

  TextFill

  End Sub

  Private Sub Command2_Click() '设置字体大小

  Picture2.FontSize = CInt(InputBox("请输入文字大小,最好大于50", "设置大小", "100"))

  TextFill

  End Sub

  Private Sub Command3_Click() '选择填充图片

  CommonDialog1.Filter = "JPEG File(*.jpg)|*.jpg|BMP File(*.bmp)|*.bmp|All file(*.*)|*.*"

  CommonDialog1.ShowOpen

  Picture2.Picture = LoadPicture(CommonDialog1.FileName)

  TextFill

  End Sub

  Private Sub Command4_Click( ) '结束程序

  End

  End Sub

  Private Sub Form_Load( )

  Dim I As Integer

  Picture2.Left = 0

  Picture2.Top = 0

  Picture2.AutoSize = True

  Form1.Caption = "图片填充效果"

  '初始化字体列表

  For I = 0 To Screen.FontCount - 1

  Combo1.AddItem Screen.Fonts(I)

  Next I

  Picture2.FontSize = 100

  Picture2.FontName = Combo1.Text

  Outtext = "填充"

  TextFill

  End Sub

  按下F5键运行程序,即可在Picture1中看到填充有Picture2默认图片的文字显示(如图),点击组合框,可以设置文字字体,点击“输入文字”按钮可以打开文字输入框修改显示的文字,点击“字体大小”可以利用输入框设置字体大小,点击“更改图片”则可以选择不同的图片来填充文字,并且以上功能是马上生效,及时看到变化效果,最后点击“退出”按钮可以退出程序。以上程序在Windows 98/Me/2000+VB6.0中文版调试通过。



发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询

 相关链接
【学园专题】Visual Basic编程技巧
用VB编程让文本滚动更平滑 (2001/09/07 09:13)
利用VB制作MP3播放列表 (2001/08/20 15:27)
用VB设计自己的E-mail系统 (2001/08/09 14:25)
利用VB实现对IE的调用与控制 (2000/10/27 16:48)
用VisualBasic编写进度栏时钟 (2001/08/27 13:51)
用Visual Basic自编小游戏 (2001/04/24 15:01)
用Visual Basic编程建立自己的回收站 (2000/09/29 11:23)
用Visual Basic设计E-mail程序 (2000/05/26 11:44)
VisualBasic中用户界面的设计原则 (2000/05/25 10:41)
Visual Basic 6中发送邮件的新方法 (2000/04/13 21:34)


科技时代意见反馈留言板 电话:010-82612286 或 010-82628888-3361   欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网