VB 是拿来玩玩的.

ikey 2003-05-19 06:42:41
本人初中毕业,自学 VB ,由于工作需要曾用 VB 编写过用于资料统计的小程序,不过一直认为 VB 是用来娱乐的,没事打发时间到是满好的,有同感的交个朋友.
QQ:86264427
...全文
50 59 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
fullor2000 2003-05-23
  • 打赏
  • 举报
回复
API函数就好像是DOS下的INT21这类的中断指令。
只不过在DOS下这条指令执行时可以直接面向计算机的硬件设备,
而WINDOWS下调用API则面向他的虚拟机(VMM)。
要想了解WINDOWS到底是怎么样工作的,就要去学习虚拟机编程。
CIH病毒就是一个典型列子,能对硬件进行破坏。
sikeen 2003-05-22
  • 打赏
  • 举报
回复
嘿嘿,那就不用無邊框的窗體嘛。
我的客戶大部分不理解運行效率,而是更關心價錢。
我如果告訴他我要多花幾個月的時間和幾萬塊去幫他把這個軟件的效率提高了20%,他會立即槍斃俺的產品!
就目前主流的開發工具來說,並沒有哪個是絕對完美或絕對臭屁的,而應該根據你實際的需求選擇相應的工具!
ikey 2003-05-22
  • 打赏
  • 举报
回复
回:sikeen(阿土) ( )您说:
:)沒誰否認API的用處呀,不過等你搞完這一大堆後,俺早把程序編完啦。軟件開發時間就是金錢吶!

我不赞成您的观点,如果您不使用 API 实现对无边框的窗体延八个不同方向进行操作,并拖动,会减少多少代码?(会不会增多呢!),先不要考虑这段代码是否有用.程序运行效率如何?
hjmeteor 2003-05-22
  • 打赏
  • 举报
回复
我不苟同这个观点,虽然VB同VC、DELPHI等比,可能是有区别,但不代表VB就没用。我就是用VB编了几个工作中很实用的程序,而且还在使用VB。不过搞专业开发的话,尽量不要使用VB.
道素 2003-05-22
  • 打赏
  • 举报
回复
我认为vb表面很简单,但是在简单的内部确实很复杂,因为他封装的太多,用C++很容易知道它实现的机制,但是vb的很动东西内部是怎么实现,机制是什么,它的winmain在哪里如何处理,怎样处理消息等等,并不是很容易看出的

( ">
)(
// )
shannon--//""--
-/------ch21st@hotmail.com
sikeen 2003-05-22
  • 打赏
  • 举报
回复
:)沒誰否認API的用處呀,不過等你搞完這一大堆後,俺早把程序編完啦。軟件開發時間就是金錢吶!
ikey 2003-05-22
  • 打赏
  • 举报
回复
使用 API 函数很复杂吗?
看一下这个简单的例子.对无边框窗体的操作.

Option Explicit
'用于计时
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
'用于发送消息
Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Private Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Private Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String)
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2

Private Const HTBOTTOM = 15
Private Const HTBOTTOMLEFT = 16
Private Const HTBOTTOMRIGHT = 17

Private Const HTTOP = 12
Private Const HTTOPLEFT = 13
Private Const HTTOPRIGHT = 14

Private Const HTLEFT = 10
Private Const HTRIGHT = 11

'为当前的应用程序释放鼠标捕获
Private Declare Function ReleaseCapture Lib "user32" () As Long

'取得窗体位置的函数
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

'取得鼠标位置的函数
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type

'用于如何操纵窗体大小及其位置
Dim Action As String
'停止计时
Private ExitApp As Boolean

Private Sub Form_Load()
Me.Show
GetTime
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then

ReleaseCapture

Select Case Action
Case "Left"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTLEFT, 0&
Case "Right"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTRIGHT, 0&
Case "Up"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTTOP, 0&
Case "LeftUp"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTTOPLEFT, 0&
Case "RightUp"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTTOPRIGHT, 0&
Case "Down"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTBOTTOM, 0&
Case "LeftDown"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTBOTTOMLEFT, 0&
Case "RightDown"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTBOTTOMRIGHT, 0&
Case "Move"
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Select

End If
End Sub

Private Sub frmSize()
Dim MyRect As RECT
Dim MyPoint As POINTAPI

' MyRect返回当前窗口位置
Call GetWindowRect(Me.hwnd, MyRect)

' MyPoint返回当前鼠标位置
Call GetCursorPos(MyPoint)

Select Case True
Case MyPoint.X < MyRect.Left + 5 And MyPoint.Y < MyRect.Top + 5
Screen.MousePointer = vbSizeNWSE
Action = "LeftUp"
Case MyPoint.X > MyRect.Right - 5 And MyPoint.Y > MyRect.Bottom - 5
Screen.MousePointer = vbSizeNWSE
Action = "RightDown"
Case MyPoint.X > MyRect.Right - 5 And MyPoint.Y < MyRect.Top + 5
Screen.MousePointer = vbSizeNESW
Action = "RightUp"
Case MyPoint.X < MyRect.Left + 5 And MyPoint.Y > MyRect.Bottom - 5
Screen.MousePointer = vbSizeNESW
Action = "LeftDown"
Case MyPoint.X < MyRect.Left + 5
Screen.MousePointer = vbSizeWE
Action = "Left"
Case MyPoint.X > MyRect.Right - 5
Screen.MousePointer = vbSizeWE
Action = "Right"
Case MyPoint.Y < MyRect.Top + 5
Screen.MousePointer = vbSizeNS
Action = "Up"
Case MyPoint.Y > MyRect.Bottom - 5
Screen.MousePointer = vbSizeNS
Action = "Down"
Case Else
Screen.MousePointer = 0
Action = "Move"
End Select
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
ExitApp = True
End Sub

Public Sub GetTime()

Dim NextTick As Long
Do Until ExitApp
DoEvents
Do Until GetTickCount > NextTick
DoEvents
Loop: NextTick = GetTickCount + 50
frmSize
Loop
End

End Sub
xayzmb 2003-05-22
  • 打赏
  • 举报
回复
所有的工具
其目的是将一项复杂的工作简单化
如果有人以自已能够以一种复杂的方法来完成一项简单的工作以荣的话
我不知该说什么了
只能建议大家都去学汇编吧(不好意思,我不知比汇编更....是什么 :p)
..............
zhumb 2003-05-22
  • 打赏
  • 举报
回复
存在就有他的道理
sikeen 2003-05-22
  • 打赏
  • 举报
回复
:)
純粹玩玩,那是為了寫代碼而寫代碼,真正做一個產品要考慮其成本的
chenyu5188 2003-05-22
  • 打赏
  • 举报
回复
UP
fraser01 2003-05-22
  • 打赏
  • 举报
回复
当然不是,都是一些最基本的VB编程。任何语言深了都很复杂的。
而且VB不是用在游戏编程的。这个对象要搞清楚。
基础的东西远比API要重要的多。
ikey 2003-05-22
  • 打赏
  • 举报
回复
今天刚来公司,多谢各位老哥来捧场!

我虽不是作为真正程序员,但我也知道作为程序员的的辛苦,为什么不能够苦中作乐呢?
当您解决了一直困惑你的设计难题时,是不是比玩任何游戏都会兴奋呢!会另你欣喜若狂!
所以说"玩玩"有什么不好呢,为什么让自己那么累呢?就当玩游戏赚钱吧!一点阿 Q 精神会使自己更轻松.
关于涉及到的关于 API 的话题,个人认为 VB 如果不借助 WIN32 API ,只是针对有限的控件进行程序设计,他的功能将是很有限的.简单的就编写游戏来说,如果不借助 WIN32 API 是没有办法写出像样的游戏.
对于 ecivilian(抽象青年) 提到的《VB6 高级编程》,我随没有看过,或许也看不董,但我认为很多更深层次内容是涉及到 WIN32 API 函数的.
多向大家学习,多指教!
ydzqw 2003-05-22
  • 打赏
  • 举报
回复
你丫的欠骂
裸男 2003-05-22
  • 打赏
  • 举报
回复
不是说使用API函数不好,只是每次调用API 我都有一种知其然而不知其所以然的感觉,API函数就像一个黑盒子,只有入口和出口,至于盒子里面到底是什么东西,我们都不知道。

同感!
litaoa 2003-05-22
  • 打赏
  • 举报
回复
哈哈。应该是看用的人怎么用吧。 其实上厕所也有很多种上法的,哈哈。
ikey 2003-05-22
  • 打赏
  • 举报
回复
回: wingchi(国家农民),
老哥,听有人说 windows 是用批处理做的,那么您就用 VB 也写一个吧!玩笑了.

不过象您这么自信的我到是第一次见过,佩服.

学无止境,祝前途一片光明.
wingchi 2003-05-22
  • 打赏
  • 举报
回复
玩玩的?把你不能实现东西拿给我,我用vb给你实现。

































这话不是我说的,好像是比尔盖茨说的
Amaza 2003-05-22
  • 打赏
  • 举报
回复
我的软件在同类软件中是最快的,当然我用VB,速度完全不是VB的问题了!如果你不是半瓢水的话,VB的缺陷在于面向对象上!
kmzs 2003-05-22
  • 打赏
  • 举报
回复
什么工具好——要看你要做什么——更要看你能怎么做……
加载更多回复(39)
前 言 visual basic继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了使用户在繁忙的日程工作中得到放松,于是出现了各种各样的休闲软件,如聊天工具,游戏等等。于是我们小组着手设计开始一个这样的游戏软件。通过这学期来Visual Basic的学习,我初步掌握了Visual Basic语言的最基本的知识,于是在化希耀张兵等老师的指导下动手用Visual Basic编写俄罗斯方块游戏。 无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当中最杂乱无章的人也要把事情整理妥当。 在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。 为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用VB语言开发一个经典的俄罗斯方块游戏。 工程概况 1.1 项目名称 俄罗斯方块游戏 1.2 设计平台 VB 全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。 Vb是microsoft公司于1991年退出的windows应用程序开发工具visual意思是“可视化的”。在它刚推出来时,自身还存在一些缺陷,功能也相对少一些。但是经过多年的开发研究。最近microsoft公司又推出了VB6.0版本 VB6.0运行环境:硬件,要求486以上的处理器、16MB以上内存,50MB 以上的硬盘,cd-rom驱动器,鼠标。软件:要求windows 95以上版本。 1.3程序设计思想 游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以我们在游戏中添加了漂亮的场景和动听的音乐,设置了过关升级的功能,激发大家的娱乐激情。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,然后将展示的形状复制到游戏窗体中进行摆放,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句对分数判断,达到一定的积分就可以升级到下一个档次。 俄罗斯方块游戏设计的主要步骤为以下10个方面: (1)游戏界面的设计。 (2)俄罗斯方块的造型。 (3)俄罗斯方块的旋转。 (4)俄罗斯方块的运动情况(包括向左,向右和向下)。 (5)俄罗斯方块的自动消行功能。 (6)游戏级别的自由选择。 (7)游戏速度的自由选择。 (8)游戏得分的计算。 (9)游戏菜单选项的设计及功能实现。 (10)游戏的背景音乐。 1.4运用的控件和主要对象 我们在设计过程中主要用到的控件有:command控件,image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等。 1.5主要实现的功能 我们开发的俄罗斯方块游戏,主要实现了以下几种功能: 1.可以灵活控制方块在图形框中运动。 2.游戏过程中方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。 4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。 5.游戏的得分支持积分,并且按照公式: 得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1) 这样,你同一时间消除

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧