有个问题想要请教大家 看看VB的窗口向导做出的启动窗体如果要更COOL一点的例程,请发邮件给我![email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 发信人: leearnold (arnold), 信区: VBVC 标 题: VB中软件封面技术探秘 发信站: 网易虚拟社区北京站 (Thu Jan 27 08:50:29 2000), 站内信件 封面技术在软件开发中越来越成为一种标准,无论你在DOS或WINDOWS的环境下 进 行软件开发,一个漂亮而醒目的封面总会使你的软件更加充满魅力。 对于WINDOWS环境下的应用软件,封面技术更是必不可少。微软公司的OFFICE套件 ,如WORD,其简洁美观,具有真实三维效果的封面给所有OFFICE的用户留下了深 刻的印象。其封面的设计完全可以作为WINDOWS应用程序的标准。从WORD的封面设 计我们可以看出WINDOWS环境下的应用软件的封面设计应遵循以下原则: 在主界面载入的同时载入,封面应该清楚的显示软件名称及版本信息,在主界面 载入完毕后自动卸出内存,让出所占用的WINDOWS系统资源。 使用微软公司的Visual Basic进行软件开发是WINDOWS环境下应用程序开发的捷径 ,同样,使用Visual Basic制作应用程序封面也是相当方便的。在开发过程中, 主要应该解决的问题有: 1. 封面的制作。 这不是一个纯技术性的问题。开发者必须有一定的美术知识和功底,制作出的封 面也可以具有个人的不同的风格。在VB中,封面也是一个窗体,开发者可以在窗 体上使用VB的绘图工具Line和Shape绘制出图形,甚至可以绘制出类似WORD的三维 效果,也可以在窗体内载入一个图片框(Picture Box)或图象控制(Image Con trol),利用图片框或图象控制载入自己所喜欢的图片来制作封面,在图形之上, 可以使用文本框(Text Box)或标签框(Label)来显示版本信息。为了使这样的 一个窗体更加象一个封面,应该去除窗体的控制框,标题栏和最大最小化按钮, 同时窗体的大小也不允许用户改变。因而在封面窗体的属性中,属性Control Bo x应设为False,Caption应设为空,MaxButton和MinButton应设为False,Border Styler属性设为1,即固定的单线边界,这样就实现了一个具有专业水准的封面。 2. 浮动窗体的实现。 由于主窗体先载入,然后激发封面的事件(event),使封面窗体成为当前活动窗体 ,所以必须保证窗体总是浮在主窗体的上面,在VB中,这个问题主要依靠调用WI NDOWS的API函数SetWindowpos来实现。SetWindowpos函数的声明如下: Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer, ByVal hWnd InsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) 其中: hWnd为作为封面窗体的句柄; hWndInsertAfter 指示为封面窗体前载入的窗体; X为封面窗体左上角的X坐标; Y为封面窗体左上角的Y坐标; cx为窗体新宽度; cy为窗体新高度; wFlags影响窗体大小和位置的16位值。 其中,hWndInsertAfter设为HWND_TOPMOST,wFlags设为SWP_NOMOVE (不移动窗 体,即忽略cx和cy)或SWP_NOSIZE(不改变窗体大小,即忽略X和Y),就可以实 现将HWND标识的窗体置于所有非最顶窗体之上。 3. 还要保证主窗体载入完毕后,封面窗体自动卸出。这主要靠在主窗体中使用定 时器控件,在激活主窗体的Activate事件中激活定时器,设置定时器属性,在定 时器控件的事件Timer中,关闭定时器,卸出封面。 下面给出的程序实例是一个完整的封面设计,供VB程序开发者参考。 假设封面窗体名为frmcover,主窗体名为frmmain,其中封面窗体可以用绘图指令 绘出,下 面的程序给出了绘制三维窗体的方法,在封面窗体载入过程中,窗体上 可根据用户需要绘制三维面板或图片框等。 Sub Form_Load () Dim fWidth As Integer Dim i As Integer, t As Integer, l As Integer Dim w As Integer, h As Integer frmcover.BackColor = &HC0C0C0 frmcover.Left = (screen.Width - Width) / 2 frmcover.Top = (screen.Height - Height) / 2 frmcover.ScaleMode = 3: fWidth = 4 frmcover.AutoRedraw = -1 For i = 1 To fWidth t = i l = i h = scaleheight w = scalewidth Line (l, t)-(l, h - i), RGB(255, 255, 255) Line (l, t)-(w - i, t), RGB(255, 255, 255) Line (w - l, t)-(w - l, h - t), RGB(64, 64, 64) Line (l, h - l)-(w - l, h - l), RGB(64, 64, 64) Next i End Sub 在主窗体的激活过程中激活定时器,并设置定时器的Interval属性,程序如下: Sub Form_Activate () Timer1.Interval = 3000 ’封面存在时间为3秒 Timer1.Enabled = True ’打开定时器 End Sub 载入封面的代码放在主窗体的Load事件中,可以改变鼠标形状以示用户等待。首 先在通用过程中声明常量: Const HWND_TOPMOST = -1 Const SWP_NOMOVE = &H10 Const SWP_NOSIZE = &H40 Const flags = SWP_NOMOVE Or SWP_NOSIZE 程序中使用SetWindowPos 函数实现浮动效果: Sub Form_Load () screen.MousePointer = 11 ’鼠标呈沙漏状 frmcover.Show ’显示封面 frmcover.Refresh SetWindowPos frmcover.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags End Sub 定时器时间到后关闭定时器,同时卸载封面窗体,使用户可以继续操作主窗体。 程序如下: Sub Timer1_Timer () frmmain.Timer1.Enabled = False ‘关闭定时器 Unload frmcover ‘卸载封面 screen.MousePointer = 0 ‘鼠标恢复原样 End Sub 这样就实现了一个标准的软件封面,整个程序设计思路简单清晰,较好的解决了 上述三个问题。它也充分体现了使用VB开发WINDOWS应用程序的方便和高效性,希 望对VB程序员和爱好者有所启发。 -- -- ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' `--'_..-_/ /--'_.' ,' (ll).-'' (((!.' ((!.-' ※ 来源:.网易虚拟社区北京站 http://bj.netease.com.[FROM: 203.93.7.45] 伸手党求个VB6读写一个注册表键代码 语句在命名空间中无效 是什么错误?吾初试vb不懂啊! 怎么才能将自己定义的方法加到Excel的菜单上去?急!!!! 很简单的一个问题,在线等答案加分拉 请问VB的ComboBox控件可以设置不可见值吗? 高手解决问题:什么方法是最好的(显示记录) vb开发MS outlook问题:如何在outlook的contact form中加一个button,按了这个button后可以执行一段程序? 關于COMBOBOX 如何让DBGrid控件显示指定的数据 请问哪里有漂亮界面的选项卡控件呀? 如何知道自己的动态IP? 关于时间控件的问题。
标 题: VB中软件封面技术探秘
发信站: 网易虚拟社区北京站 (Thu Jan 27 08:50:29 2000), 站内信件 封面技术在软件开发中越来越成为一种标准,无论你在DOS或WINDOWS的环境下 进
行软件开发,一个漂亮而醒目的封面总会使你的软件更加充满魅力。 对于WINDOWS环境下的应用软件,封面技术更是必不可少。微软公司的OFFICE套件
,如WORD,其简洁美观,具有真实三维效果的封面给所有OFFICE的用户留下了深
刻的印象。其封面的设计完全可以作为WINDOWS应用程序的标准。从WORD的封面设
计我们可以看出WINDOWS环境下的应用软件的封面设计应遵循以下原则: 在主界面载入的同时载入,封面应该清楚的显示软件名称及版本信息,在主界面
载入完毕后自动卸出内存,让出所占用的WINDOWS系统资源。 使用微软公司的Visual Basic进行软件开发是WINDOWS环境下应用程序开发的捷径
,同样,使用Visual Basic制作应用程序封面也是相当方便的。在开发过程中,
主要应该解决的问题有: 1. 封面的制作。 这不是一个纯技术性的问题。开发者必须有一定的美术知识和功底,制作出的封
面也可以具有个人的不同的风格。在VB中,封面也是一个窗体,开发者可以在窗
体上使用VB的绘图工具Line和Shape绘制出图形,甚至可以绘制出类似WORD的三维
效果,也可以在窗体内载入一个图片框(Picture Box)或图象控制(Image Con
trol),利用图片框或图象控制载入自己所喜欢的图片来制作封面,在图形之上,
可以使用文本框(Text Box)或标签框(Label)来显示版本信息。为了使这样的
一个窗体更加象一个封面,应该去除窗体的控制框,标题栏和最大最小化按钮,
同时窗体的大小也不允许用户改变。因而在封面窗体的属性中,属性Control Bo
x应设为False,Caption应设为空,MaxButton和MinButton应设为False,Border
Styler属性设为1,即固定的单线边界,这样就实现了一个具有专业水准的封面。
2. 浮动窗体的实现。 由于主窗体先载入,然后激发封面的事件(event),使封面窗体成为当前活动窗体
,所以必须保证窗体总是浮在主窗体的上面,在VB中,这个问题主要依靠调用WI
NDOWS的API函数SetWindowpos来实现。SetWindowpos函数的声明如下: Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer, ByVal hWnd
InsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal
cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) 其中: hWnd为作为封面窗体的句柄; hWndInsertAfter 指示为封面窗体前载入的窗体; X为封面窗体左上角的X坐标; Y为封面窗体左上角的Y坐标; cx为窗体新宽度; cy为窗体新高度; wFlags影响窗体大小和位置的16位值。 其中,hWndInsertAfter设为HWND_TOPMOST,wFlags设为SWP_NOMOVE (不移动窗
体,即忽略cx和cy)或SWP_NOSIZE(不改变窗体大小,即忽略X和Y),就可以实
现将HWND标识的窗体置于所有非最顶窗体之上。 3. 还要保证主窗体载入完毕后,封面窗体自动卸出。这主要靠在主窗体中使用定
时器控件,在激活主窗体的Activate事件中激活定时器,设置定时器属性,在定
时器控件的事件Timer中,关闭定时器,卸出封面。 下面给出的程序实例是一个完整的封面设计,供VB程序开发者参考。 假设封面窗体名为frmcover,主窗体名为frmmain,其中封面窗体可以用绘图指令
绘出,下 面的程序给出了绘制三维窗体的方法,在封面窗体载入过程中,窗体上
可根据用户需要绘制三维面板或图片框等。 Sub Form_Load () Dim fWidth As Integer Dim i As Integer, t As Integer, l As Integer Dim w As Integer, h As Integer frmcover.BackColor = &HC0C0C0 frmcover.Left = (screen.Width - Width) / 2 frmcover.Top = (screen.Height - Height) / 2 frmcover.ScaleMode = 3: fWidth = 4 frmcover.AutoRedraw = -1 For i = 1 To fWidth t = i l = i h = scaleheight w = scalewidth Line (l, t)-(l, h - i), RGB(255, 255, 255) Line (l, t)-(w - i, t), RGB(255, 255, 255) Line (w - l, t)-(w - l, h - t), RGB(64, 64, 64) Line (l, h - l)-(w - l, h - l), RGB(64, 64, 64) Next i End Sub 在主窗体的激活过程中激活定时器,并设置定时器的Interval属性,程序如下:
Sub Form_Activate () Timer1.Interval = 3000 ’封面存在时间为3秒 Timer1.Enabled = True ’打开定时器 End Sub 载入封面的代码放在主窗体的Load事件中,可以改变鼠标形状以示用户等待。首
先在通用过程中声明常量: Const HWND_TOPMOST = -1 Const SWP_NOMOVE = &H10 Const SWP_NOSIZE = &H40 Const flags = SWP_NOMOVE Or SWP_NOSIZE 程序中使用SetWindowPos 函数实现浮动效果: Sub Form_Load () screen.MousePointer = 11 ’鼠标呈沙漏状 frmcover.Show ’显示封面 frmcover.Refresh SetWindowPos frmcover.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags End Sub 定时器时间到后关闭定时器,同时卸载封面窗体,使用户可以继续操作主窗体。
程序如下: Sub Timer1_Timer () frmmain.Timer1.Enabled = False ‘关闭定时器 Unload frmcover ‘卸载封面 screen.MousePointer = 0 ‘鼠标恢复原样 End Sub 这样就实现了一个标准的软件封面,整个程序设计思路简单清晰,较好的解决了
上述三个问题。它也充分体现了使用VB开发WINDOWS应用程序的方便和高效性,希
望对VB程序员和爱好者有所启发。
--
--
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
`--'_..-_/ /--'_.' ,'
(ll).-'' (((!.' ((!.-' ※ 来源:.网易虚拟社区北京站 http://bj.netease.com.[FROM: 203.93.7.45]